@databolsa/sdk 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.d.ts CHANGED
@@ -896,6 +896,57 @@ export interface paths {
896
896
  patch?: never;
897
897
  trace?: never;
898
898
  };
899
+ "/v1/crypto": {
900
+ parameters: {
901
+ query?: never;
902
+ header?: never;
903
+ path?: never;
904
+ cookie?: never;
905
+ };
906
+ /** Catálogo de criptoativos (velas diárias em BRL) */
907
+ get: operations["listCrypto"];
908
+ put?: never;
909
+ post?: never;
910
+ delete?: never;
911
+ options?: never;
912
+ head?: never;
913
+ patch?: never;
914
+ trace?: never;
915
+ };
916
+ "/v1/crypto/live": {
917
+ parameters: {
918
+ query?: never;
919
+ header?: never;
920
+ path?: never;
921
+ cookie?: never;
922
+ };
923
+ /** Cotações quase-live de cripto (snapshot ~1 min, 24/7) */
924
+ get: operations["listCryptoLive"];
925
+ put?: never;
926
+ post?: never;
927
+ delete?: never;
928
+ options?: never;
929
+ head?: never;
930
+ patch?: never;
931
+ trace?: never;
932
+ };
933
+ "/v1/crypto/{symbol}": {
934
+ parameters: {
935
+ query?: never;
936
+ header?: never;
937
+ path?: never;
938
+ cookie?: never;
939
+ };
940
+ /** Perfil de um criptoativo */
941
+ get: operations["getCrypto"];
942
+ put?: never;
943
+ post?: never;
944
+ delete?: never;
945
+ options?: never;
946
+ head?: never;
947
+ patch?: never;
948
+ trace?: never;
949
+ };
899
950
  "/v1/crypto/{symbol}/quotes": {
900
951
  parameters: {
901
952
  query?: never;
@@ -913,6 +964,80 @@ export interface paths {
913
964
  patch?: never;
914
965
  trace?: never;
915
966
  };
967
+ "/v1/us/assets": {
968
+ parameters: {
969
+ query?: never;
970
+ header?: never;
971
+ path?: never;
972
+ cookie?: never;
973
+ };
974
+ /** Catálogo de ativos dos EUA (ações S&P 500/Nasdaq-100 + ETFs) */
975
+ get: operations["listUsAssets"];
976
+ put?: never;
977
+ post?: never;
978
+ delete?: never;
979
+ options?: never;
980
+ head?: never;
981
+ patch?: never;
982
+ trace?: never;
983
+ };
984
+ "/v1/us/assets/{ticker}": {
985
+ parameters: {
986
+ query?: never;
987
+ header?: never;
988
+ path?: never;
989
+ cookie?: never;
990
+ };
991
+ /** Perfil de um ativo dos EUA (com fundamentos SEC inline) */
992
+ get: operations["getUsAsset"];
993
+ put?: never;
994
+ post?: never;
995
+ delete?: never;
996
+ options?: never;
997
+ head?: never;
998
+ patch?: never;
999
+ trace?: never;
1000
+ };
1001
+ "/v1/us/assets/{ticker}/quotes": {
1002
+ parameters: {
1003
+ query?: never;
1004
+ header?: never;
1005
+ path?: never;
1006
+ cookie?: never;
1007
+ };
1008
+ /**
1009
+ * Cotações EOD de um ativo dos EUA (USD)
1010
+ * @description Preços diários em USD, ajustados por desdobramento na fonte.
1011
+ */
1012
+ get: operations["listUsAssetQuotes"];
1013
+ put?: never;
1014
+ post?: never;
1015
+ delete?: never;
1016
+ options?: never;
1017
+ head?: never;
1018
+ patch?: never;
1019
+ trace?: never;
1020
+ };
1021
+ "/v1/us/assets/{ticker}/filings": {
1022
+ parameters: {
1023
+ query?: never;
1024
+ header?: never;
1025
+ path?: never;
1026
+ cookie?: never;
1027
+ };
1028
+ /**
1029
+ * Filings SEC de uma empresa dos EUA (10-K, 10-Q, 8-K…)
1030
+ * @description Metadados e link do documento oficial no EDGAR (SEC).
1031
+ */
1032
+ get: operations["listUsFilings"];
1033
+ put?: never;
1034
+ post?: never;
1035
+ delete?: never;
1036
+ options?: never;
1037
+ head?: never;
1038
+ patch?: never;
1039
+ trace?: never;
1040
+ };
916
1041
  "/v1/search": {
917
1042
  parameters: {
918
1043
  query?: never;
@@ -1087,7 +1212,7 @@ export interface paths {
1087
1212
  patch?: never;
1088
1213
  trace?: never;
1089
1214
  };
1090
- "/v1/suitability": {
1215
+ "/v1/portfolio/history": {
1091
1216
  parameters: {
1092
1217
  query?: never;
1093
1218
  header?: never;
@@ -1095,10 +1220,10 @@ export interface paths {
1095
1220
  cookie?: never;
1096
1221
  };
1097
1222
  /**
1098
- * Seu perfil de investidor
1099
- * @description Retorna o perfil de investidor (suitability) do dono da chave: nível (Conservador/Moderado/Arrojado), a posição na régua 0–100 (não é uma nota) e as respostas do questionário. `profile` é nulo se o usuário ainda não definiu o perfil.
1223
+ * Histórico mensal consolidado
1224
+ * @description Série mensal do patrimônio consolidado do dono da chave: valor de mercado, aporte acumulado, proventos recebidos e resultado realizado, mês a mês. Exclui carteiras marcadas como simulação.
1100
1225
  */
1101
- get: operations["getSuitability"];
1226
+ get: operations["getPortfolioHistory"];
1102
1227
  put?: never;
1103
1228
  post?: never;
1104
1229
  delete?: never;
@@ -1107,7 +1232,7 @@ export interface paths {
1107
1232
  patch?: never;
1108
1233
  trace?: never;
1109
1234
  };
1110
- "/v1/documents/search": {
1235
+ "/v1/portfolios": {
1111
1236
  parameters: {
1112
1237
  query?: never;
1113
1238
  header?: never;
@@ -1115,10 +1240,34 @@ export interface paths {
1115
1240
  cookie?: never;
1116
1241
  };
1117
1242
  /**
1118
- * Busca semântica em documentos
1119
- * @description Busca semântica no TEXTO de documentos CVM/B3 (fatos relevantes, releases de resultado, balanços, relatórios gerenciais de FII, atas de assembleia). Ideal para perguntas qualitativas que os dados estruturados não respondem. Filtre por papel, categoria e ano quando souber.
1243
+ * Suas carteiras
1244
+ * @description Lista as carteiras do dono da chave (id, nome, de ativos, flag de simulação). Use o `id` nas demais operações de carteira.
1120
1245
  */
1121
- get: operations["searchDocuments"];
1246
+ get: operations["listPortfolios"];
1247
+ put?: never;
1248
+ /**
1249
+ * Criar carteira
1250
+ * @description CRIA uma carteira REAL na conta do dono da chave. O número de carteiras é limitado pelo plano (resposta 402 quando o teto é atingido). Nome único por conta (409 em duplicidade).
1251
+ */
1252
+ post: operations["createPortfolio"];
1253
+ delete?: never;
1254
+ options?: never;
1255
+ head?: never;
1256
+ patch?: never;
1257
+ trace?: never;
1258
+ };
1259
+ "/v1/portfolios/import-template": {
1260
+ parameters: {
1261
+ query?: never;
1262
+ header?: never;
1263
+ path?: never;
1264
+ cookie?: never;
1265
+ };
1266
+ /**
1267
+ * Template CSV de import manual
1268
+ * @description Baixa o template CSV de preenchimento manual (colunas: ticker, operacao, data, quantidade, preco) aceito pelo import de planilha.
1269
+ */
1270
+ get: operations["getPortfolioImportTemplate"];
1122
1271
  put?: never;
1123
1272
  post?: never;
1124
1273
  delete?: never;
@@ -1127,7 +1276,7 @@ export interface paths {
1127
1276
  patch?: never;
1128
1277
  trace?: never;
1129
1278
  };
1130
- "/v1/community/bots": {
1279
+ "/v1/portfolios/{id}": {
1131
1280
  parameters: {
1132
1281
  query?: never;
1133
1282
  header?: never;
@@ -1135,23 +1284,47 @@ export interface paths {
1135
1284
  cookie?: never;
1136
1285
  };
1137
1286
  /**
1138
- * Seus bots registrados
1139
- * @description Lista os bots de comunidade registrados pela sua conta, com handle, status e data de criação.
1287
+ * Detalhe de uma carteira
1288
+ * @description Carteira computada: posições com preço médio, quantidade, valor de mercado, P&L, proventos e alocação, além dos totais. A posição é derivada do ledger de transações.
1140
1289
  */
1141
- get: operations["listCommunityBots"];
1290
+ get: operations["getPortfolioDetail"];
1142
1291
  put?: never;
1292
+ post?: never;
1143
1293
  /**
1144
- * Registrar um bot
1145
- * @description Registra um bot de comunidade na sua conta. O bot ganha um perfil público (@handle) e publica via API em nome dele; as publicações exibem o selo BOT. O número de bots por conta depende do plano.
1294
+ * Apagar carteira
1295
+ * @description APAGA a carteira REAL do dono da chave, com TODOS os ativos e transações (cascata, irreversível). Confirme com o usuário antes de chamar.
1146
1296
  */
1147
- post: operations["registerCommunityBot"];
1297
+ delete: operations["deletePortfolio"];
1298
+ options?: never;
1299
+ head?: never;
1300
+ /**
1301
+ * Editar carteira
1302
+ * @description ALTERA a carteira REAL do dono da chave: renomeia (`name`), muda a visibilidade (`visibility`) e/ou marca como simulação (`exclude_from_consolidated`, fora do consolidado). Informe ao menos um campo.
1303
+ */
1304
+ patch: operations["updatePortfolio"];
1305
+ trace?: never;
1306
+ };
1307
+ "/v1/portfolios/{id}/history": {
1308
+ parameters: {
1309
+ query?: never;
1310
+ header?: never;
1311
+ path?: never;
1312
+ cookie?: never;
1313
+ };
1314
+ /**
1315
+ * Histórico mensal de uma carteira
1316
+ * @description Série mensal (patrimônio, aporte, proventos, realizado) de UMA carteira específica.
1317
+ */
1318
+ get: operations["getPortfolioHistoryById"];
1319
+ put?: never;
1320
+ post?: never;
1148
1321
  delete?: never;
1149
1322
  options?: never;
1150
1323
  head?: never;
1151
1324
  patch?: never;
1152
1325
  trace?: never;
1153
1326
  };
1154
- "/v1/community/bots/{handle}": {
1327
+ "/v1/portfolios/{id}/assets": {
1155
1328
  parameters: {
1156
1329
  query?: never;
1157
1330
  header?: never;
@@ -1160,18 +1333,50 @@ export interface paths {
1160
1333
  };
1161
1334
  get?: never;
1162
1335
  put?: never;
1163
- post?: never;
1164
1336
  /**
1165
- * Desativar um bot
1166
- * @description Desativa um bot da sua conta (as publicações antigas permanecem, rotuladas como BOT).
1337
+ * Adicionar ativo à carteira
1338
+ * @description ADICIONA um ativo à carteira REAL do dono da chave (idempotente repetir não duplica). Ativo sem transações funciona como watchlist; lance transações para rastrear posição. Para Tesouro Direto use o nome oficial do título (ex.: TESOURO SELIC 2029).
1167
1339
  */
1168
- delete: operations["deleteCommunityBot"];
1340
+ post: operations["addPortfolioAsset"];
1341
+ /**
1342
+ * Remover ativo da carteira
1343
+ * @description REMOVE um ativo da carteira REAL do dono da chave, APAGANDO o ledger de transações dele nesta carteira (cascata, irreversível). Confirme com o usuário antes de chamar.
1344
+ */
1345
+ delete: operations["removePortfolioAsset"];
1346
+ options?: never;
1347
+ head?: never;
1348
+ /**
1349
+ * Taxa contratada de renda fixa
1350
+ * @description DEFINE a taxa contratada de uma posição de renda fixa (para o cálculo de rendimento): `rf_indexer` (cdi = % do CDI, prefixado = % a.a., ipca = IPCA + % a.a.) e `rf_rate`. Use `rf_indexer: none` para limpar.
1351
+ */
1352
+ patch: operations["updatePortfolioAsset"];
1353
+ trace?: never;
1354
+ };
1355
+ "/v1/portfolios/{id}/transactions": {
1356
+ parameters: {
1357
+ query?: never;
1358
+ header?: never;
1359
+ path?: never;
1360
+ cookie?: never;
1361
+ };
1362
+ /**
1363
+ * Ledger de um ativo
1364
+ * @description Lista as transações (compras, vendas, splits, ajustes) de um ativo da carteira, em ordem cronológica.
1365
+ */
1366
+ get: operations["listPortfolioTransactions"];
1367
+ put?: never;
1368
+ /**
1369
+ * Lançar transação
1370
+ * @description LANÇA uma transação na carteira REAL do dono da chave. Se o ativo ainda não está na carteira, ele é adicionado automaticamente — "compra de 100 PETR4" é uma única chamada. buy/sell exigem `quantity`; `price` é opcional (custo desconhecido); split usa `ratio` (2 = 2:1). Confirme valores com o usuário.
1371
+ */
1372
+ post: operations["addPortfolioTransaction"];
1373
+ delete?: never;
1169
1374
  options?: never;
1170
1375
  head?: never;
1171
1376
  patch?: never;
1172
1377
  trace?: never;
1173
1378
  };
1174
- "/v1/community/bots/{handle}/posts": {
1379
+ "/v1/portfolios/{id}/transactions/{txId}": {
1175
1380
  parameters: {
1176
1381
  query?: never;
1177
1382
  header?: never;
@@ -1180,18 +1385,66 @@ export interface paths {
1180
1385
  };
1181
1386
  get?: never;
1182
1387
  put?: never;
1388
+ post?: never;
1183
1389
  /**
1184
- * Publicar como bot
1185
- * @description Publica um post na comunidade EM NOME do bot informado (público, com selo BOT). Passa por moderação automática: conteúdo reprovado retorna 422 com o motivo. Sujeito a limite diário por bot conforme o plano. Cashtags ($PETR4) viram links.
1390
+ * Remover transação
1391
+ * @description REMOVE uma transação do ledger da carteira REAL do dono da chave (irreversível). Confirme com o usuário antes de chamar.
1186
1392
  */
1187
- post: operations["createCommunityBotPost"];
1393
+ delete: operations["deletePortfolioTransaction"];
1394
+ options?: never;
1395
+ head?: never;
1396
+ /**
1397
+ * Editar transação
1398
+ * @description ALTERA uma transação existente da carteira REAL do dono da chave (patch parcial: informe só os campos a mudar). Confirme com o usuário antes de chamar.
1399
+ */
1400
+ patch: operations["updatePortfolioTransaction"];
1401
+ trace?: never;
1402
+ };
1403
+ "/v1/portfolios/{id}/imports": {
1404
+ parameters: {
1405
+ query?: never;
1406
+ header?: never;
1407
+ path?: never;
1408
+ cookie?: never;
1409
+ };
1410
+ /**
1411
+ * Histórico de imports
1412
+ * @description Lista os imports já feitos nesta carteira (arquivo, fonte, data e resumo persistido).
1413
+ */
1414
+ get: operations["listPortfolioImports"];
1415
+ put?: never;
1416
+ /**
1417
+ * Importar planilha (B3 ou template manual)
1418
+ * @description IMPORTA uma planilha para a carteira REAL do dono da chave: Negociação ou Movimentação da B3 (.xlsx) ou o template manual (.csv/.xlsx) — o formato é detectado automaticamente. Envie o arquivo em `content_base64` (máx. 8 MB). Idempotente: reenviar o mesmo arquivo não duplica lançamentos. A resposta resume o que entrou (importadas, duplicadas, ignoradas) e traz avisos.
1419
+ */
1420
+ post: operations["importPortfolioFile"];
1188
1421
  delete?: never;
1189
1422
  options?: never;
1190
1423
  head?: never;
1191
1424
  patch?: never;
1192
1425
  trace?: never;
1193
1426
  };
1194
- "/v1/community/bots/{handle}/replies": {
1427
+ "/v1/portfolios/{id}/imports/{importId}/rows": {
1428
+ parameters: {
1429
+ query?: never;
1430
+ header?: never;
1431
+ path?: never;
1432
+ cookie?: never;
1433
+ };
1434
+ /**
1435
+ * Linhas de um import
1436
+ * @description Drill-down de um import: cada linha do arquivo com status (imported, ignored, duplicate, error) e motivo.
1437
+ */
1438
+ get: operations["listPortfolioImportRows"];
1439
+ put?: never;
1440
+ post?: never;
1441
+ delete?: never;
1442
+ options?: never;
1443
+ head?: never;
1444
+ patch?: never;
1445
+ trace?: never;
1446
+ };
1447
+ "/v1/portfolios/{id}/reconcile": {
1195
1448
  parameters: {
1196
1449
  query?: never;
1197
1450
  header?: never;
@@ -1201,17 +1454,17 @@ export interface paths {
1201
1454
  get?: never;
1202
1455
  put?: never;
1203
1456
  /**
1204
- * Responder como bot
1205
- * @description Publica uma resposta EM NOME do bot num post existente da comunidade (pública, com selo BOT). Mesma moderação automática e limites diários por bot do plano.
1457
+ * Reconciliar posição à B3
1458
+ * @description AJUSTA a posição calculada de um ativo à quantidade declarada pela B3 (`target_qty` na data `as_of`), inserindo um ajuste idempotente — útil quando um evento (ex.: subscrição) não veio no extrato. Confirme a quantidade com o usuário antes de chamar.
1206
1459
  */
1207
- post: operations["createCommunityBotReply"];
1460
+ post: operations["reconcilePortfolioAsset"];
1208
1461
  delete?: never;
1209
1462
  options?: never;
1210
1463
  head?: never;
1211
1464
  patch?: never;
1212
1465
  trace?: never;
1213
1466
  };
1214
- "/v1/community/feed": {
1467
+ "/v1/suitability": {
1215
1468
  parameters: {
1216
1469
  query?: never;
1217
1470
  header?: never;
@@ -1219,10 +1472,10 @@ export interface paths {
1219
1472
  cookie?: never;
1220
1473
  };
1221
1474
  /**
1222
- * Feed da comunidade
1223
- * @description Feed público da comunidade (posts e perguntas), paginado por cursor. Filtre por ticker ou busque por texto.
1475
+ * Seu perfil de investidor
1476
+ * @description Retorna o perfil de investidor (suitability) do dono da chave: nível (Conservador/Moderado/Arrojado), a posição na régua 0–100 (não é uma nota) e as respostas do questionário. `profile` é nulo se o usuário ainda não definiu o perfil.
1224
1477
  */
1225
- get: operations["getCommunityFeed"];
1478
+ get: operations["getSuitability"];
1226
1479
  put?: never;
1227
1480
  post?: never;
1228
1481
  delete?: never;
@@ -1231,7 +1484,7 @@ export interface paths {
1231
1484
  patch?: never;
1232
1485
  trace?: never;
1233
1486
  };
1234
- "/v1/community/posts/{id}": {
1487
+ "/v1/documents/search": {
1235
1488
  parameters: {
1236
1489
  query?: never;
1237
1490
  header?: never;
@@ -1239,10 +1492,10 @@ export interface paths {
1239
1492
  cookie?: never;
1240
1493
  };
1241
1494
  /**
1242
- * Um post com a discussão completa
1243
- * @description Retorna um post da comunidade com todas as respostas (thread completa).
1495
+ * Busca semântica em documentos
1496
+ * @description Busca semântica no TEXTO de documentos CVM/B3 (fatos relevantes, releases de resultado, balanços, relatórios gerenciais de FII, atas de assembleia). Ideal para perguntas qualitativas que os dados estruturados não respondem. Filtre por papel, categoria e ano quando souber.
1244
1497
  */
1245
- get: operations["getCommunityPost"];
1498
+ get: operations["searchDocuments"];
1246
1499
  put?: never;
1247
1500
  post?: never;
1248
1501
  delete?: never;
@@ -1251,23 +1504,147 @@ export interface paths {
1251
1504
  patch?: never;
1252
1505
  trace?: never;
1253
1506
  };
1254
- }
1255
- export type webhooks = Record<string, never>;
1256
- export interface components {
1257
- schemas: {
1258
- Health: {
1259
- /** @enum {string} */
1260
- status: "ok" | "degraded";
1261
- version: string;
1262
- data_freshness: {
1263
- [key: string]: string;
1264
- };
1507
+ "/v1/community/bots": {
1508
+ parameters: {
1509
+ query?: never;
1510
+ header?: never;
1511
+ path?: never;
1512
+ cookie?: never;
1265
1513
  };
1266
- Problem: {
1267
- type: string;
1268
- title: string;
1269
- status: number;
1270
- detail?: string;
1514
+ /**
1515
+ * Seus bots registrados
1516
+ * @description Lista os bots de comunidade registrados pela sua conta, com handle, status e data de criação.
1517
+ */
1518
+ get: operations["listCommunityBots"];
1519
+ put?: never;
1520
+ /**
1521
+ * Registrar um bot
1522
+ * @description Registra um bot de comunidade na sua conta. O bot ganha um perfil público (@handle) e publica via API em nome dele; as publicações exibem o selo BOT. O número de bots por conta depende do plano.
1523
+ */
1524
+ post: operations["registerCommunityBot"];
1525
+ delete?: never;
1526
+ options?: never;
1527
+ head?: never;
1528
+ patch?: never;
1529
+ trace?: never;
1530
+ };
1531
+ "/v1/community/bots/{handle}": {
1532
+ parameters: {
1533
+ query?: never;
1534
+ header?: never;
1535
+ path?: never;
1536
+ cookie?: never;
1537
+ };
1538
+ get?: never;
1539
+ put?: never;
1540
+ post?: never;
1541
+ /**
1542
+ * Desativar um bot
1543
+ * @description Desativa um bot da sua conta (as publicações antigas permanecem, rotuladas como BOT).
1544
+ */
1545
+ delete: operations["deleteCommunityBot"];
1546
+ options?: never;
1547
+ head?: never;
1548
+ patch?: never;
1549
+ trace?: never;
1550
+ };
1551
+ "/v1/community/bots/{handle}/posts": {
1552
+ parameters: {
1553
+ query?: never;
1554
+ header?: never;
1555
+ path?: never;
1556
+ cookie?: never;
1557
+ };
1558
+ get?: never;
1559
+ put?: never;
1560
+ /**
1561
+ * Publicar como bot
1562
+ * @description Publica um post na comunidade EM NOME do bot informado (público, com selo BOT). Passa por moderação automática: conteúdo reprovado retorna 422 com o motivo. Sujeito a limite diário por bot conforme o plano. Cashtags ($PETR4) viram links.
1563
+ */
1564
+ post: operations["createCommunityBotPost"];
1565
+ delete?: never;
1566
+ options?: never;
1567
+ head?: never;
1568
+ patch?: never;
1569
+ trace?: never;
1570
+ };
1571
+ "/v1/community/bots/{handle}/replies": {
1572
+ parameters: {
1573
+ query?: never;
1574
+ header?: never;
1575
+ path?: never;
1576
+ cookie?: never;
1577
+ };
1578
+ get?: never;
1579
+ put?: never;
1580
+ /**
1581
+ * Responder como bot
1582
+ * @description Publica uma resposta EM NOME do bot num post existente da comunidade (pública, com selo BOT). Mesma moderação automática e limites diários por bot do plano.
1583
+ */
1584
+ post: operations["createCommunityBotReply"];
1585
+ delete?: never;
1586
+ options?: never;
1587
+ head?: never;
1588
+ patch?: never;
1589
+ trace?: never;
1590
+ };
1591
+ "/v1/community/feed": {
1592
+ parameters: {
1593
+ query?: never;
1594
+ header?: never;
1595
+ path?: never;
1596
+ cookie?: never;
1597
+ };
1598
+ /**
1599
+ * Feed da comunidade
1600
+ * @description Feed público da comunidade (posts e perguntas), paginado por cursor. Filtre por ticker ou busque por texto.
1601
+ */
1602
+ get: operations["getCommunityFeed"];
1603
+ put?: never;
1604
+ post?: never;
1605
+ delete?: never;
1606
+ options?: never;
1607
+ head?: never;
1608
+ patch?: never;
1609
+ trace?: never;
1610
+ };
1611
+ "/v1/community/posts/{id}": {
1612
+ parameters: {
1613
+ query?: never;
1614
+ header?: never;
1615
+ path?: never;
1616
+ cookie?: never;
1617
+ };
1618
+ /**
1619
+ * Um post com a discussão completa
1620
+ * @description Retorna um post da comunidade com todas as respostas (thread completa).
1621
+ */
1622
+ get: operations["getCommunityPost"];
1623
+ put?: never;
1624
+ post?: never;
1625
+ delete?: never;
1626
+ options?: never;
1627
+ head?: never;
1628
+ patch?: never;
1629
+ trace?: never;
1630
+ };
1631
+ }
1632
+ export type webhooks = Record<string, never>;
1633
+ export interface components {
1634
+ schemas: {
1635
+ Health: {
1636
+ /** @enum {string} */
1637
+ status: "ok" | "degraded";
1638
+ version: string;
1639
+ data_freshness: {
1640
+ [key: string]: string;
1641
+ };
1642
+ };
1643
+ Problem: {
1644
+ type: string;
1645
+ title: string;
1646
+ status: number;
1647
+ detail?: string;
1271
1648
  instance?: string;
1272
1649
  };
1273
1650
  Company: {
@@ -1786,6 +2163,36 @@ export interface components {
1786
2163
  vega: number | null;
1787
2164
  theta: number | null;
1788
2165
  };
2166
+ CryptoAsset: {
2167
+ /** @description Ativo-base canônico, ex.: BTC */
2168
+ symbol: string;
2169
+ name: string | null;
2170
+ /** @description Ordem curada por relevância/market cap */
2171
+ rank: number | null;
2172
+ first_date: string | null;
2173
+ last_date: string | null;
2174
+ close_brl: number | null;
2175
+ close_usd: number | null;
2176
+ change_pct_1d: number | null;
2177
+ change_pct_7d: number | null;
2178
+ /** @description Volume negociado em BRL na última vela diária */
2179
+ volume_brl_1d: number | null;
2180
+ };
2181
+ CryptoLiveResponse: {
2182
+ data: components["schemas"]["CryptoLiveQuote"][];
2183
+ /** @description Timestamp mais recente do lote */
2184
+ as_of: string | null;
2185
+ };
2186
+ CryptoLiveQuote: {
2187
+ symbol: string;
2188
+ price_brl: number;
2189
+ price_usd: number | null;
2190
+ /** @description Variação % em 24h rolantes */
2191
+ change_pct_24h: number | null;
2192
+ volume_usd_24h: number | null;
2193
+ /** @description Timestamp do snapshot (UTC) */
2194
+ ts: string;
2195
+ };
1789
2196
  CryptoCandle: {
1790
2197
  open_time: string;
1791
2198
  close_time: string;
@@ -1798,10 +2205,67 @@ export interface components {
1798
2205
  /** @description Volume em BRL */
1799
2206
  quote_volume: number | null;
1800
2207
  trades: number | null;
2208
+ /** @description Fechamento em USD */
2209
+ close_usd: number | null;
2210
+ };
2211
+ UsAsset: {
2212
+ ticker: string;
2213
+ name: string | null;
2214
+ /** @enum {string} */
2215
+ type: "stock" | "etf";
2216
+ in_sp500: boolean | null;
2217
+ in_ndx100: boolean | null;
2218
+ /** @description BDR correspondente na B3, quando mapeado */
2219
+ bdr_ticker: string | null;
2220
+ first_date: string | null;
2221
+ last_date: string | null;
2222
+ close_usd: number | null;
2223
+ change_pct_1d: number | null;
2224
+ change_pct_1m: number | null;
2225
+ change_pct_1y: number | null;
2226
+ high_52w: number | null;
2227
+ low_52w: number | null;
2228
+ volume_1d: number | null;
2229
+ };
2230
+ UsAssetDetail: {
2231
+ fundamentals: components["schemas"]["UsFundamental"][];
2232
+ } & components["schemas"]["UsAsset"];
2233
+ UsFundamental: {
2234
+ /** @enum {string} */
2235
+ metric: "revenue" | "net_income" | "eps_diluted";
2236
+ unit: string | null;
2237
+ /** @description Ano fiscal */
2238
+ fy: number | null;
2239
+ /** @description Período fiscal (FY, Q1..Q4) */
2240
+ fp: string | null;
2241
+ period_start: string | null;
2242
+ period_end: string | null;
2243
+ value: number | null;
2244
+ /** @description Formulário de origem (10-K, 10-Q…) */
2245
+ form: string | null;
2246
+ filed: string | null;
2247
+ };
2248
+ UsQuote: {
2249
+ date: string;
2250
+ open: number | null;
2251
+ high: number | null;
2252
+ low: number | null;
2253
+ close: number | null;
2254
+ volume: number | null;
2255
+ };
2256
+ UsFiling: {
2257
+ accession: string;
2258
+ /** @description 10-K, 10-Q, 8-K, 20-F, 6-K, DEF 14A */
2259
+ form: string;
2260
+ filed_at: string;
2261
+ report_date: string | null;
2262
+ description: string | null;
2263
+ /** @description Documento principal no site da SEC (EDGAR) */
2264
+ url: string;
1801
2265
  };
1802
2266
  SearchResult: {
1803
2267
  /** @enum {string} */
1804
- kind: "stock" | "fii" | "index" | "bond" | "macro";
2268
+ kind: "stock" | "fii" | "index" | "bond" | "macro" | "crypto" | "us";
1805
2269
  ticker: string;
1806
2270
  title: string;
1807
2271
  subtitle: string | null;
@@ -1878,6 +2342,90 @@ export interface components {
1878
2342
  unrealizedPct: number;
1879
2343
  assets: number;
1880
2344
  };
2345
+ PortfolioListItem: {
2346
+ id: string;
2347
+ name: string;
2348
+ /** @description Nº de ativos na carteira. */
2349
+ count?: number;
2350
+ /** Format: date-time */
2351
+ created_at?: string;
2352
+ /** @description true = carteira de simulação. */
2353
+ exclude_from_consolidated?: boolean;
2354
+ };
2355
+ /** @description Carteira computada: posições derivadas do ledger + métricas agregadas. */
2356
+ PortfolioDetail: {
2357
+ id?: string;
2358
+ name?: string;
2359
+ patrimonio?: number;
2360
+ invested?: number;
2361
+ unrealizedPL?: number;
2362
+ unrealizedPct?: number;
2363
+ realizedPL?: number;
2364
+ /** @description Posições com qty, preço médio, valor de mercado, P&L, proventos e peso. */
2365
+ holdings?: Record<string, never>[];
2366
+ };
2367
+ PortfolioTransaction: {
2368
+ id: string;
2369
+ /** @description buy | sell | split | adjust */
2370
+ kind: string;
2371
+ /** @description AAAA-MM-DD */
2372
+ trade_date: string;
2373
+ quantity: number;
2374
+ /** @description Preço unitário (null = custo desconhecido). */
2375
+ price?: number | null;
2376
+ fees?: number;
2377
+ /** @description Fator do split (só kind=split). */
2378
+ ratio?: number | null;
2379
+ currency?: string;
2380
+ note?: string | null;
2381
+ };
2382
+ PortfolioHistoryResponse: {
2383
+ /** @description Um ponto por mês: patrimônio, aporte acumulado, proventos e realizado. */
2384
+ points?: Record<string, never>[];
2385
+ };
2386
+ /** @description Resumo de um import de planilha (o detalhe linha a linha fica em listPortfolioImportRows). */
2387
+ PortfolioImportSummary: {
2388
+ import_id: string;
2389
+ /** @description negociacao | movimentacao | manual (detectado pelo cabeçalho). */
2390
+ source: string;
2391
+ /** @description Linhas entendidas no arquivo. */
2392
+ parsed?: number;
2393
+ /** @description Lançamentos novos gravados. */
2394
+ imported: number;
2395
+ /** @description Lançamentos já existentes (reimport) pulados. */
2396
+ duplicates_skipped?: number;
2397
+ rows_ignored?: number;
2398
+ /** @description Trades pulados por já estarem cobertos por outra fonte. */
2399
+ cross_source_skipped?: number;
2400
+ symbols?: number;
2401
+ period?: {
2402
+ from?: string | null;
2403
+ to?: string | null;
2404
+ };
2405
+ /** @description Até 10 avisos. */
2406
+ warnings?: string[];
2407
+ /** @description Nº de avisos omitidos além dos 10 primeiros. */
2408
+ warnings_truncated?: number;
2409
+ };
2410
+ PortfolioImportListItem: {
2411
+ id: string;
2412
+ filename?: string | null;
2413
+ source: string;
2414
+ /** Format: date-time */
2415
+ createdAt?: string;
2416
+ summary?: Record<string, never>;
2417
+ warnings?: string[];
2418
+ };
2419
+ PortfolioImportRow: {
2420
+ row_index: number;
2421
+ /** @description imported | ignored | duplicate | error */
2422
+ status: string;
2423
+ kind?: string | null;
2424
+ label?: string | null;
2425
+ reason?: string | null;
2426
+ external_id?: string | null;
2427
+ raw?: unknown;
2428
+ };
1881
2429
  /** @description Carteira consolidada do usuário (mesmo resumo que o agente de IA usa). */
1882
2430
  PortfolioContext: {
1883
2431
  hasPortfolio: boolean;
@@ -3091,7 +3639,7 @@ export interface operations {
3091
3639
  query?: {
3092
3640
  cursor?: string;
3093
3641
  limit?: number;
3094
- source?: "bcb_sgs" | "bcb_focus" | "ibge_sidra" | "fred" | "ipeadata" | "tesouro_direto";
3642
+ source?: "bcb_sgs" | "bcb_focus" | "ibge_sidra" | "fred" | "ipeadata" | "tesouro_direto" | "world_bank";
3095
3643
  search?: string;
3096
3644
  };
3097
3645
  header?: never;
@@ -3799,24 +4347,917 @@ export interface operations {
3799
4347
  to?: string;
3800
4348
  };
3801
4349
  header?: never;
3802
- path?: never;
4350
+ path?: never;
4351
+ cookie?: never;
4352
+ };
4353
+ requestBody?: never;
4354
+ responses: {
4355
+ /** @description Página de ofertas */
4356
+ 200: {
4357
+ headers: {
4358
+ [name: string]: unknown;
4359
+ };
4360
+ content: {
4361
+ "application/json": {
4362
+ data: components["schemas"]["PublicOffering"][];
4363
+ meta: {
4364
+ next_cursor: string | null;
4365
+ /** @description Itens nesta página */
4366
+ count: number;
4367
+ };
4368
+ };
4369
+ };
4370
+ };
4371
+ /** @description Erro (RFC 9457 application/problem+json) */
4372
+ default: {
4373
+ headers: {
4374
+ [name: string]: unknown;
4375
+ };
4376
+ content: {
4377
+ "application/problem+json": components["schemas"]["Problem"];
4378
+ };
4379
+ };
4380
+ };
4381
+ };
4382
+ getOptionsChain: {
4383
+ parameters: {
4384
+ query?: {
4385
+ expiry?: string;
4386
+ type?: "call" | "put";
4387
+ };
4388
+ header?: never;
4389
+ path: {
4390
+ ticker: string;
4391
+ };
4392
+ cookie?: never;
4393
+ };
4394
+ requestBody?: never;
4395
+ responses: {
4396
+ /** @description Cadeia de opções */
4397
+ 200: {
4398
+ headers: {
4399
+ [name: string]: unknown;
4400
+ };
4401
+ content: {
4402
+ "application/json": components["schemas"]["OptionsChain"];
4403
+ };
4404
+ };
4405
+ /** @description Erro (RFC 9457 application/problem+json) */
4406
+ default: {
4407
+ headers: {
4408
+ [name: string]: unknown;
4409
+ };
4410
+ content: {
4411
+ "application/problem+json": components["schemas"]["Problem"];
4412
+ };
4413
+ };
4414
+ };
4415
+ };
4416
+ listOptionExpiries: {
4417
+ parameters: {
4418
+ query?: never;
4419
+ header?: never;
4420
+ path: {
4421
+ ticker: string;
4422
+ };
4423
+ cookie?: never;
4424
+ };
4425
+ requestBody?: never;
4426
+ responses: {
4427
+ /** @description Vencimentos */
4428
+ 200: {
4429
+ headers: {
4430
+ [name: string]: unknown;
4431
+ };
4432
+ content: {
4433
+ "application/json": components["schemas"]["OptionExpiries"];
4434
+ };
4435
+ };
4436
+ /** @description Erro (RFC 9457 application/problem+json) */
4437
+ default: {
4438
+ headers: {
4439
+ [name: string]: unknown;
4440
+ };
4441
+ content: {
4442
+ "application/problem+json": components["schemas"]["Problem"];
4443
+ };
4444
+ };
4445
+ };
4446
+ };
4447
+ listOptionQuotes: {
4448
+ parameters: {
4449
+ query?: {
4450
+ cursor?: string;
4451
+ limit?: number;
4452
+ from?: string;
4453
+ to?: string;
4454
+ };
4455
+ header?: never;
4456
+ path: {
4457
+ option: string;
4458
+ };
4459
+ cookie?: never;
4460
+ };
4461
+ requestBody?: never;
4462
+ responses: {
4463
+ /** @description Página de cotações */
4464
+ 200: {
4465
+ headers: {
4466
+ [name: string]: unknown;
4467
+ };
4468
+ content: {
4469
+ "application/json": {
4470
+ data: components["schemas"]["OptionQuote"][];
4471
+ meta: {
4472
+ next_cursor: string | null;
4473
+ /** @description Itens nesta página */
4474
+ count: number;
4475
+ };
4476
+ };
4477
+ };
4478
+ };
4479
+ /** @description Erro (RFC 9457 application/problem+json) */
4480
+ default: {
4481
+ headers: {
4482
+ [name: string]: unknown;
4483
+ };
4484
+ content: {
4485
+ "application/problem+json": components["schemas"]["Problem"];
4486
+ };
4487
+ };
4488
+ };
4489
+ };
4490
+ listCrypto: {
4491
+ parameters: {
4492
+ query?: {
4493
+ cursor?: string;
4494
+ limit?: number;
4495
+ search?: string;
4496
+ };
4497
+ header?: never;
4498
+ path?: never;
4499
+ cookie?: never;
4500
+ };
4501
+ requestBody?: never;
4502
+ responses: {
4503
+ /** @description Página de criptoativos */
4504
+ 200: {
4505
+ headers: {
4506
+ [name: string]: unknown;
4507
+ };
4508
+ content: {
4509
+ "application/json": {
4510
+ data: components["schemas"]["CryptoAsset"][];
4511
+ meta: {
4512
+ next_cursor: string | null;
4513
+ /** @description Itens nesta página */
4514
+ count: number;
4515
+ };
4516
+ };
4517
+ };
4518
+ };
4519
+ /** @description Erro (RFC 9457 application/problem+json) */
4520
+ default: {
4521
+ headers: {
4522
+ [name: string]: unknown;
4523
+ };
4524
+ content: {
4525
+ "application/problem+json": components["schemas"]["Problem"];
4526
+ };
4527
+ };
4528
+ };
4529
+ };
4530
+ listCryptoLive: {
4531
+ parameters: {
4532
+ query?: never;
4533
+ header?: never;
4534
+ path?: never;
4535
+ cookie?: never;
4536
+ };
4537
+ requestBody?: never;
4538
+ responses: {
4539
+ /** @description Snapshot de cotações */
4540
+ 200: {
4541
+ headers: {
4542
+ [name: string]: unknown;
4543
+ };
4544
+ content: {
4545
+ "application/json": components["schemas"]["CryptoLiveResponse"];
4546
+ };
4547
+ };
4548
+ /** @description Erro (RFC 9457 application/problem+json) */
4549
+ default: {
4550
+ headers: {
4551
+ [name: string]: unknown;
4552
+ };
4553
+ content: {
4554
+ "application/problem+json": components["schemas"]["Problem"];
4555
+ };
4556
+ };
4557
+ };
4558
+ };
4559
+ getCrypto: {
4560
+ parameters: {
4561
+ query?: never;
4562
+ header?: never;
4563
+ path: {
4564
+ symbol: string;
4565
+ };
4566
+ cookie?: never;
4567
+ };
4568
+ requestBody?: never;
4569
+ responses: {
4570
+ /** @description Criptoativo */
4571
+ 200: {
4572
+ headers: {
4573
+ [name: string]: unknown;
4574
+ };
4575
+ content: {
4576
+ "application/json": components["schemas"]["CryptoAsset"];
4577
+ };
4578
+ };
4579
+ /** @description Erro (RFC 9457 application/problem+json) */
4580
+ default: {
4581
+ headers: {
4582
+ [name: string]: unknown;
4583
+ };
4584
+ content: {
4585
+ "application/problem+json": components["schemas"]["Problem"];
4586
+ };
4587
+ };
4588
+ };
4589
+ };
4590
+ listCryptoQuotes: {
4591
+ parameters: {
4592
+ query?: {
4593
+ cursor?: string;
4594
+ limit?: number;
4595
+ interval?: "1d" | "1h";
4596
+ from?: string;
4597
+ to?: string;
4598
+ };
4599
+ header?: never;
4600
+ path: {
4601
+ symbol: string;
4602
+ };
4603
+ cookie?: never;
4604
+ };
4605
+ requestBody?: never;
4606
+ responses: {
4607
+ /** @description Página de candles */
4608
+ 200: {
4609
+ headers: {
4610
+ [name: string]: unknown;
4611
+ };
4612
+ content: {
4613
+ "application/json": {
4614
+ data: components["schemas"]["CryptoCandle"][];
4615
+ meta: {
4616
+ next_cursor: string | null;
4617
+ /** @description Itens nesta página */
4618
+ count: number;
4619
+ };
4620
+ };
4621
+ };
4622
+ };
4623
+ /** @description Erro (RFC 9457 application/problem+json) */
4624
+ default: {
4625
+ headers: {
4626
+ [name: string]: unknown;
4627
+ };
4628
+ content: {
4629
+ "application/problem+json": components["schemas"]["Problem"];
4630
+ };
4631
+ };
4632
+ };
4633
+ };
4634
+ listUsAssets: {
4635
+ parameters: {
4636
+ query?: {
4637
+ cursor?: string;
4638
+ limit?: number;
4639
+ search?: string;
4640
+ type?: "stock" | "etf";
4641
+ bdr?: string;
4642
+ };
4643
+ header?: never;
4644
+ path?: never;
4645
+ cookie?: never;
4646
+ };
4647
+ requestBody?: never;
4648
+ responses: {
4649
+ /** @description Página de ativos */
4650
+ 200: {
4651
+ headers: {
4652
+ [name: string]: unknown;
4653
+ };
4654
+ content: {
4655
+ "application/json": {
4656
+ data: components["schemas"]["UsAsset"][];
4657
+ meta: {
4658
+ next_cursor: string | null;
4659
+ /** @description Itens nesta página */
4660
+ count: number;
4661
+ };
4662
+ };
4663
+ };
4664
+ };
4665
+ /** @description Erro (RFC 9457 application/problem+json) */
4666
+ default: {
4667
+ headers: {
4668
+ [name: string]: unknown;
4669
+ };
4670
+ content: {
4671
+ "application/problem+json": components["schemas"]["Problem"];
4672
+ };
4673
+ };
4674
+ };
4675
+ };
4676
+ getUsAsset: {
4677
+ parameters: {
4678
+ query?: never;
4679
+ header?: never;
4680
+ path: {
4681
+ ticker: string;
4682
+ };
4683
+ cookie?: never;
4684
+ };
4685
+ requestBody?: never;
4686
+ responses: {
4687
+ /** @description Ativo */
4688
+ 200: {
4689
+ headers: {
4690
+ [name: string]: unknown;
4691
+ };
4692
+ content: {
4693
+ "application/json": components["schemas"]["UsAssetDetail"];
4694
+ };
4695
+ };
4696
+ /** @description Erro (RFC 9457 application/problem+json) */
4697
+ default: {
4698
+ headers: {
4699
+ [name: string]: unknown;
4700
+ };
4701
+ content: {
4702
+ "application/problem+json": components["schemas"]["Problem"];
4703
+ };
4704
+ };
4705
+ };
4706
+ };
4707
+ listUsAssetQuotes: {
4708
+ parameters: {
4709
+ query?: {
4710
+ cursor?: string;
4711
+ limit?: number;
4712
+ from?: string;
4713
+ to?: string;
4714
+ };
4715
+ header?: never;
4716
+ path: {
4717
+ ticker: string;
4718
+ };
4719
+ cookie?: never;
4720
+ };
4721
+ requestBody?: never;
4722
+ responses: {
4723
+ /** @description Página de cotações */
4724
+ 200: {
4725
+ headers: {
4726
+ [name: string]: unknown;
4727
+ };
4728
+ content: {
4729
+ "application/json": {
4730
+ data: components["schemas"]["UsQuote"][];
4731
+ meta: {
4732
+ next_cursor: string | null;
4733
+ /** @description Itens nesta página */
4734
+ count: number;
4735
+ };
4736
+ };
4737
+ };
4738
+ };
4739
+ /** @description Erro (RFC 9457 application/problem+json) */
4740
+ default: {
4741
+ headers: {
4742
+ [name: string]: unknown;
4743
+ };
4744
+ content: {
4745
+ "application/problem+json": components["schemas"]["Problem"];
4746
+ };
4747
+ };
4748
+ };
4749
+ };
4750
+ listUsFilings: {
4751
+ parameters: {
4752
+ query?: {
4753
+ cursor?: string;
4754
+ limit?: number;
4755
+ form?: string;
4756
+ };
4757
+ header?: never;
4758
+ path: {
4759
+ ticker: string;
4760
+ };
4761
+ cookie?: never;
4762
+ };
4763
+ requestBody?: never;
4764
+ responses: {
4765
+ /** @description Página de filings */
4766
+ 200: {
4767
+ headers: {
4768
+ [name: string]: unknown;
4769
+ };
4770
+ content: {
4771
+ "application/json": {
4772
+ data: components["schemas"]["UsFiling"][];
4773
+ meta: {
4774
+ next_cursor: string | null;
4775
+ /** @description Itens nesta página */
4776
+ count: number;
4777
+ };
4778
+ };
4779
+ };
4780
+ };
4781
+ /** @description Erro (RFC 9457 application/problem+json) */
4782
+ default: {
4783
+ headers: {
4784
+ [name: string]: unknown;
4785
+ };
4786
+ content: {
4787
+ "application/problem+json": components["schemas"]["Problem"];
4788
+ };
4789
+ };
4790
+ };
4791
+ };
4792
+ search: {
4793
+ parameters: {
4794
+ query: {
4795
+ q: string;
4796
+ limit?: number;
4797
+ };
4798
+ header?: never;
4799
+ path?: never;
4800
+ cookie?: never;
4801
+ };
4802
+ requestBody?: never;
4803
+ responses: {
4804
+ /** @description Resultados ranqueados */
4805
+ 200: {
4806
+ headers: {
4807
+ [name: string]: unknown;
4808
+ };
4809
+ content: {
4810
+ "application/json": components["schemas"]["SearchResult"][];
4811
+ };
4812
+ };
4813
+ /** @description Erro (RFC 9457 application/problem+json) */
4814
+ default: {
4815
+ headers: {
4816
+ [name: string]: unknown;
4817
+ };
4818
+ content: {
4819
+ "application/problem+json": components["schemas"]["Problem"];
4820
+ };
4821
+ };
4822
+ };
4823
+ };
4824
+ getIngestHealth: {
4825
+ parameters: {
4826
+ query?: never;
4827
+ header?: never;
4828
+ path?: never;
4829
+ cookie?: never;
4830
+ };
4831
+ requestBody?: never;
4832
+ responses: {
4833
+ /** @description Saúde da ingestão */
4834
+ 200: {
4835
+ headers: {
4836
+ [name: string]: unknown;
4837
+ };
4838
+ content: {
4839
+ "application/json": {
4840
+ latest: ({
4841
+ errors: string[];
4842
+ } & components["schemas"]["IngestRunSummary"]) | null;
4843
+ sources: components["schemas"]["IngestSourceHealth"][];
4844
+ recent_runs: components["schemas"]["IngestRunSummary"][];
4845
+ };
4846
+ };
4847
+ };
4848
+ /** @description Erro (RFC 9457 application/problem+json) */
4849
+ default: {
4850
+ headers: {
4851
+ [name: string]: unknown;
4852
+ };
4853
+ content: {
4854
+ "application/problem+json": components["schemas"]["Problem"];
4855
+ };
4856
+ };
4857
+ };
4858
+ };
4859
+ getNewsEdition: {
4860
+ parameters: {
4861
+ query?: {
4862
+ /** @description Data da edição (AAAA-MM-DD). Omita p/ a mais recente. */
4863
+ date?: string;
4864
+ };
4865
+ header?: never;
4866
+ path?: never;
4867
+ cookie?: never;
4868
+ };
4869
+ requestBody?: never;
4870
+ responses: {
4871
+ /** @description Edição publicada + itens. */
4872
+ 200: {
4873
+ headers: {
4874
+ [name: string]: unknown;
4875
+ };
4876
+ content: {
4877
+ "application/json": components["schemas"]["NewsEditionEnvelope"];
4878
+ };
4879
+ };
4880
+ /** @description Erro (RFC 9457 application/problem+json) */
4881
+ default: {
4882
+ headers: {
4883
+ [name: string]: unknown;
4884
+ };
4885
+ content: {
4886
+ "application/problem+json": Record<string, never>;
4887
+ };
4888
+ };
4889
+ };
4890
+ };
4891
+ listNewsDates: {
4892
+ parameters: {
4893
+ query?: never;
4894
+ header?: never;
4895
+ path?: never;
4896
+ cookie?: never;
4897
+ };
4898
+ requestBody?: never;
4899
+ responses: {
4900
+ /** @description Datas + slots. */
4901
+ 200: {
4902
+ headers: {
4903
+ [name: string]: unknown;
4904
+ };
4905
+ content: {
4906
+ "application/json": components["schemas"]["NewsDatesResponse"];
4907
+ };
4908
+ };
4909
+ /** @description Erro (RFC 9457 application/problem+json) */
4910
+ default: {
4911
+ headers: {
4912
+ [name: string]: unknown;
4913
+ };
4914
+ content: {
4915
+ "application/problem+json": Record<string, never>;
4916
+ };
4917
+ };
4918
+ };
4919
+ };
4920
+ listNewsFeed: {
4921
+ parameters: {
4922
+ query?: {
4923
+ /** @description Itens por página (1–50, default 20). */
4924
+ limit?: number;
4925
+ /** @description Offset de paginação (do `nextCursor` anterior). */
4926
+ cursor?: string;
4927
+ /** @description Filtra por categoria/linha editorial. */
4928
+ category?: string;
4929
+ };
4930
+ header?: never;
4931
+ path?: never;
4932
+ cookie?: never;
4933
+ };
4934
+ requestBody?: never;
4935
+ responses: {
4936
+ /** @description Página de itens + `nextCursor`. */
4937
+ 200: {
4938
+ headers: {
4939
+ [name: string]: unknown;
4940
+ };
4941
+ content: {
4942
+ "application/json": components["schemas"]["NewsFeedResponse"];
4943
+ };
4944
+ };
4945
+ /** @description Erro (RFC 9457 application/problem+json) */
4946
+ default: {
4947
+ headers: {
4948
+ [name: string]: unknown;
4949
+ };
4950
+ content: {
4951
+ "application/problem+json": Record<string, never>;
4952
+ };
4953
+ };
4954
+ };
4955
+ };
4956
+ getNewsItem: {
4957
+ parameters: {
4958
+ query?: never;
4959
+ header?: never;
4960
+ path: {
4961
+ /** @description Slug do item (do campo `slug` do feed/edição). */
4962
+ slug: string;
4963
+ };
4964
+ cookie?: never;
4965
+ };
4966
+ requestBody?: never;
4967
+ responses: {
4968
+ /** @description Item + relacionadas. */
4969
+ 200: {
4970
+ headers: {
4971
+ [name: string]: unknown;
4972
+ };
4973
+ content: {
4974
+ "application/json": components["schemas"]["NewsItemEnvelope"];
4975
+ };
4976
+ };
4977
+ /** @description Erro (RFC 9457 application/problem+json) */
4978
+ default: {
4979
+ headers: {
4980
+ [name: string]: unknown;
4981
+ };
4982
+ content: {
4983
+ "application/problem+json": Record<string, never>;
4984
+ };
4985
+ };
4986
+ };
4987
+ };
4988
+ listNewsStories: {
4989
+ parameters: {
4990
+ query?: never;
4991
+ header?: never;
4992
+ path?: never;
4993
+ cookie?: never;
4994
+ };
4995
+ requestBody?: never;
4996
+ responses: {
4997
+ /** @description Stories do dia. */
4998
+ 200: {
4999
+ headers: {
5000
+ [name: string]: unknown;
5001
+ };
5002
+ content: {
5003
+ "application/json": components["schemas"]["NewsStoriesResponse"];
5004
+ };
5005
+ };
5006
+ /** @description Erro (RFC 9457 application/problem+json) */
5007
+ default: {
5008
+ headers: {
5009
+ [name: string]: unknown;
5010
+ };
5011
+ content: {
5012
+ "application/problem+json": Record<string, never>;
5013
+ };
5014
+ };
5015
+ };
5016
+ };
5017
+ getNewsAgenda: {
5018
+ parameters: {
5019
+ query?: {
5020
+ /** @description Janela em dias (1–90, default 30). */
5021
+ days?: number;
5022
+ };
5023
+ header?: never;
5024
+ path?: never;
5025
+ cookie?: never;
5026
+ };
5027
+ requestBody?: never;
5028
+ responses: {
5029
+ /** @description Agenda consolidada. */
5030
+ 200: {
5031
+ headers: {
5032
+ [name: string]: unknown;
5033
+ };
5034
+ content: {
5035
+ "application/json": components["schemas"]["NewsAgendaResponse"];
5036
+ };
5037
+ };
5038
+ /** @description Erro (RFC 9457 application/problem+json) */
5039
+ default: {
5040
+ headers: {
5041
+ [name: string]: unknown;
5042
+ };
5043
+ content: {
5044
+ "application/problem+json": Record<string, never>;
5045
+ };
5046
+ };
5047
+ };
5048
+ };
5049
+ getPortfolio: {
5050
+ parameters: {
5051
+ query?: never;
5052
+ header?: never;
5053
+ path?: never;
5054
+ cookie?: never;
5055
+ };
5056
+ requestBody?: never;
5057
+ responses: {
5058
+ /** @description Carteira consolidada do usuário. */
5059
+ 200: {
5060
+ headers: {
5061
+ [name: string]: unknown;
5062
+ };
5063
+ content: {
5064
+ "application/json": components["schemas"]["PortfolioContext"];
5065
+ };
5066
+ };
5067
+ /** @description Erro (RFC 9457 application/problem+json) */
5068
+ default: {
5069
+ headers: {
5070
+ [name: string]: unknown;
5071
+ };
5072
+ content: {
5073
+ "application/problem+json": Record<string, never>;
5074
+ };
5075
+ };
5076
+ };
5077
+ };
5078
+ getPortfolioHistory: {
5079
+ parameters: {
5080
+ query?: never;
5081
+ header?: never;
5082
+ path?: never;
5083
+ cookie?: never;
5084
+ };
5085
+ requestBody?: never;
5086
+ responses: {
5087
+ /** @description Pontos mensais. */
5088
+ 200: {
5089
+ headers: {
5090
+ [name: string]: unknown;
5091
+ };
5092
+ content: {
5093
+ "application/json": components["schemas"]["PortfolioHistoryResponse"];
5094
+ };
5095
+ };
5096
+ /** @description Erro (RFC 9457 application/problem+json) */
5097
+ default: {
5098
+ headers: {
5099
+ [name: string]: unknown;
5100
+ };
5101
+ content: {
5102
+ "application/problem+json": Record<string, never>;
5103
+ };
5104
+ };
5105
+ };
5106
+ };
5107
+ listPortfolios: {
5108
+ parameters: {
5109
+ query?: never;
5110
+ header?: never;
5111
+ path?: never;
5112
+ cookie?: never;
5113
+ };
5114
+ requestBody?: never;
5115
+ responses: {
5116
+ /** @description Carteiras da conta. */
5117
+ 200: {
5118
+ headers: {
5119
+ [name: string]: unknown;
5120
+ };
5121
+ content: {
5122
+ "application/json": {
5123
+ portfolios?: components["schemas"]["PortfolioListItem"][];
5124
+ };
5125
+ };
5126
+ };
5127
+ /** @description Erro (RFC 9457 application/problem+json) */
5128
+ default: {
5129
+ headers: {
5130
+ [name: string]: unknown;
5131
+ };
5132
+ content: {
5133
+ "application/problem+json": Record<string, never>;
5134
+ };
5135
+ };
5136
+ };
5137
+ };
5138
+ createPortfolio: {
5139
+ parameters: {
5140
+ query?: never;
5141
+ header?: never;
5142
+ path?: never;
5143
+ cookie?: never;
5144
+ };
5145
+ requestBody: {
5146
+ content: {
5147
+ "application/json": {
5148
+ /** @description Nome da carteira (até 60 caracteres, único na conta). */
5149
+ name: string;
5150
+ /**
5151
+ * @description Visibilidade (default private).
5152
+ * @enum {string}
5153
+ */
5154
+ visibility?: "private" | "unlisted" | "public";
5155
+ };
5156
+ };
5157
+ };
5158
+ responses: {
5159
+ /** @description Carteira criada. */
5160
+ 201: {
5161
+ headers: {
5162
+ [name: string]: unknown;
5163
+ };
5164
+ content: {
5165
+ "application/json": components["schemas"]["PortfolioListItem"];
5166
+ };
5167
+ };
5168
+ /** @description Erro (RFC 9457 application/problem+json) */
5169
+ default: {
5170
+ headers: {
5171
+ [name: string]: unknown;
5172
+ };
5173
+ content: {
5174
+ "application/problem+json": Record<string, never>;
5175
+ };
5176
+ };
5177
+ };
5178
+ };
5179
+ getPortfolioImportTemplate: {
5180
+ parameters: {
5181
+ query?: never;
5182
+ header?: never;
5183
+ path?: never;
5184
+ cookie?: never;
5185
+ };
5186
+ requestBody?: never;
5187
+ responses: {
5188
+ /** @description Arquivo CSV. */
5189
+ 200: {
5190
+ headers: {
5191
+ [name: string]: unknown;
5192
+ };
5193
+ content: {
5194
+ "text/csv": string;
5195
+ };
5196
+ };
5197
+ /** @description Erro (RFC 9457 application/problem+json) */
5198
+ default: {
5199
+ headers: {
5200
+ [name: string]: unknown;
5201
+ };
5202
+ content: {
5203
+ "application/problem+json": Record<string, never>;
5204
+ };
5205
+ };
5206
+ };
5207
+ };
5208
+ getPortfolioDetail: {
5209
+ parameters: {
5210
+ query?: never;
5211
+ header?: never;
5212
+ path: {
5213
+ /** @description Id da carteira (de listPortfolios). */
5214
+ id: string;
5215
+ };
5216
+ cookie?: never;
5217
+ };
5218
+ requestBody?: never;
5219
+ responses: {
5220
+ /** @description Carteira computada. */
5221
+ 200: {
5222
+ headers: {
5223
+ [name: string]: unknown;
5224
+ };
5225
+ content: {
5226
+ "application/json": components["schemas"]["PortfolioDetail"];
5227
+ };
5228
+ };
5229
+ /** @description Erro (RFC 9457 application/problem+json) */
5230
+ default: {
5231
+ headers: {
5232
+ [name: string]: unknown;
5233
+ };
5234
+ content: {
5235
+ "application/problem+json": Record<string, never>;
5236
+ };
5237
+ };
5238
+ };
5239
+ };
5240
+ deletePortfolio: {
5241
+ parameters: {
5242
+ query?: never;
5243
+ header?: never;
5244
+ path: {
5245
+ /** @description Id da carteira. */
5246
+ id: string;
5247
+ };
3803
5248
  cookie?: never;
3804
5249
  };
3805
5250
  requestBody?: never;
3806
5251
  responses: {
3807
- /** @description Página de ofertas */
5252
+ /** @description Carteira apagada. */
3808
5253
  200: {
3809
5254
  headers: {
3810
5255
  [name: string]: unknown;
3811
5256
  };
3812
5257
  content: {
3813
5258
  "application/json": {
3814
- data: components["schemas"]["PublicOffering"][];
3815
- meta: {
3816
- next_cursor: string | null;
3817
- /** @description Itens nesta página */
3818
- count: number;
3819
- };
5259
+ deleted?: boolean;
5260
+ id?: string;
3820
5261
  };
3821
5262
  };
3822
5263
  };
@@ -3826,32 +5267,44 @@ export interface operations {
3826
5267
  [name: string]: unknown;
3827
5268
  };
3828
5269
  content: {
3829
- "application/problem+json": components["schemas"]["Problem"];
5270
+ "application/problem+json": Record<string, never>;
3830
5271
  };
3831
5272
  };
3832
5273
  };
3833
5274
  };
3834
- getOptionsChain: {
5275
+ updatePortfolio: {
3835
5276
  parameters: {
3836
- query?: {
3837
- expiry?: string;
3838
- type?: "call" | "put";
3839
- };
5277
+ query?: never;
3840
5278
  header?: never;
3841
5279
  path: {
3842
- ticker: string;
5280
+ /** @description Id da carteira. */
5281
+ id: string;
3843
5282
  };
3844
5283
  cookie?: never;
3845
5284
  };
3846
- requestBody?: never;
5285
+ requestBody: {
5286
+ content: {
5287
+ "application/json": {
5288
+ /** @description Novo nome (até 60 caracteres, único na conta). */
5289
+ name?: string;
5290
+ /**
5291
+ * @description Nova visibilidade.
5292
+ * @enum {string}
5293
+ */
5294
+ visibility?: "private" | "unlisted" | "public";
5295
+ /** @description true = carteira de simulação (fora do consolidado). */
5296
+ exclude_from_consolidated?: boolean;
5297
+ };
5298
+ };
5299
+ };
3847
5300
  responses: {
3848
- /** @description Cadeia de opções */
5301
+ /** @description Campos alterados. */
3849
5302
  200: {
3850
5303
  headers: {
3851
5304
  [name: string]: unknown;
3852
5305
  };
3853
5306
  content: {
3854
- "application/json": components["schemas"]["OptionsChain"];
5307
+ "application/json": Record<string, never>;
3855
5308
  };
3856
5309
  };
3857
5310
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -3860,29 +5313,30 @@ export interface operations {
3860
5313
  [name: string]: unknown;
3861
5314
  };
3862
5315
  content: {
3863
- "application/problem+json": components["schemas"]["Problem"];
5316
+ "application/problem+json": Record<string, never>;
3864
5317
  };
3865
5318
  };
3866
5319
  };
3867
5320
  };
3868
- listOptionExpiries: {
5321
+ getPortfolioHistoryById: {
3869
5322
  parameters: {
3870
5323
  query?: never;
3871
5324
  header?: never;
3872
5325
  path: {
3873
- ticker: string;
5326
+ /** @description Id da carteira. */
5327
+ id: string;
3874
5328
  };
3875
5329
  cookie?: never;
3876
5330
  };
3877
5331
  requestBody?: never;
3878
5332
  responses: {
3879
- /** @description Vencimentos */
5333
+ /** @description Pontos mensais. */
3880
5334
  200: {
3881
5335
  headers: {
3882
5336
  [name: string]: unknown;
3883
5337
  };
3884
5338
  content: {
3885
- "application/json": components["schemas"]["OptionExpiries"];
5339
+ "application/json": components["schemas"]["PortfolioHistoryResponse"];
3886
5340
  };
3887
5341
  };
3888
5342
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -3891,41 +5345,42 @@ export interface operations {
3891
5345
  [name: string]: unknown;
3892
5346
  };
3893
5347
  content: {
3894
- "application/problem+json": components["schemas"]["Problem"];
5348
+ "application/problem+json": Record<string, never>;
3895
5349
  };
3896
5350
  };
3897
5351
  };
3898
5352
  };
3899
- listOptionQuotes: {
5353
+ addPortfolioAsset: {
3900
5354
  parameters: {
3901
- query?: {
3902
- cursor?: string;
3903
- limit?: number;
3904
- from?: string;
3905
- to?: string;
3906
- };
5355
+ query?: never;
3907
5356
  header?: never;
3908
5357
  path: {
3909
- option: string;
5358
+ /** @description Id da carteira. */
5359
+ id: string;
3910
5360
  };
3911
5361
  cookie?: never;
3912
5362
  };
3913
- requestBody?: never;
5363
+ requestBody: {
5364
+ content: {
5365
+ "application/json": {
5366
+ /**
5367
+ * @description Tipo do ativo.
5368
+ * @enum {string}
5369
+ */
5370
+ asset_type: "stock" | "fii" | "bdr" | "index" | "tesouro" | "crypto" | "option" | "renda_fixa";
5371
+ /** @description Ticker (ex.: PETR4) ou nome oficial do título do Tesouro. */
5372
+ symbol: string;
5373
+ };
5374
+ };
5375
+ };
3914
5376
  responses: {
3915
- /** @description Página de cotações */
3916
- 200: {
5377
+ /** @description Ativo na carteira. */
5378
+ 201: {
3917
5379
  headers: {
3918
5380
  [name: string]: unknown;
3919
5381
  };
3920
5382
  content: {
3921
- "application/json": {
3922
- data: components["schemas"]["OptionQuote"][];
3923
- meta: {
3924
- next_cursor: string | null;
3925
- /** @description Itens nesta página */
3926
- count: number;
3927
- };
3928
- };
5383
+ "application/json": Record<string, never>;
3929
5384
  };
3930
5385
  };
3931
5386
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -3934,42 +5389,35 @@ export interface operations {
3934
5389
  [name: string]: unknown;
3935
5390
  };
3936
5391
  content: {
3937
- "application/problem+json": components["schemas"]["Problem"];
5392
+ "application/problem+json": Record<string, never>;
3938
5393
  };
3939
5394
  };
3940
5395
  };
3941
5396
  };
3942
- listCryptoQuotes: {
5397
+ removePortfolioAsset: {
3943
5398
  parameters: {
3944
- query?: {
3945
- cursor?: string;
3946
- limit?: number;
3947
- interval?: "1d" | "1h";
3948
- from?: string;
3949
- to?: string;
5399
+ query: {
5400
+ /** @description Tipo do ativo. */
5401
+ asset_type: "stock" | "fii" | "bdr" | "index" | "tesouro" | "crypto" | "option" | "renda_fixa";
5402
+ /** @description Ticker ou nome do título. */
5403
+ symbol: string;
3950
5404
  };
3951
5405
  header?: never;
3952
5406
  path: {
3953
- symbol: string;
5407
+ /** @description Id da carteira. */
5408
+ id: string;
3954
5409
  };
3955
5410
  cookie?: never;
3956
5411
  };
3957
5412
  requestBody?: never;
3958
5413
  responses: {
3959
- /** @description Página de candles */
5414
+ /** @description Ativo removido. */
3960
5415
  200: {
3961
5416
  headers: {
3962
5417
  [name: string]: unknown;
3963
5418
  };
3964
5419
  content: {
3965
- "application/json": {
3966
- data: components["schemas"]["CryptoCandle"][];
3967
- meta: {
3968
- next_cursor: string | null;
3969
- /** @description Itens nesta página */
3970
- count: number;
3971
- };
3972
- };
5420
+ "application/json": Record<string, never>;
3973
5421
  };
3974
5422
  };
3975
5423
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -3978,30 +5426,47 @@ export interface operations {
3978
5426
  [name: string]: unknown;
3979
5427
  };
3980
5428
  content: {
3981
- "application/problem+json": components["schemas"]["Problem"];
5429
+ "application/problem+json": Record<string, never>;
3982
5430
  };
3983
5431
  };
3984
5432
  };
3985
5433
  };
3986
- search: {
5434
+ updatePortfolioAsset: {
3987
5435
  parameters: {
3988
5436
  query: {
3989
- q: string;
3990
- limit?: number;
5437
+ /** @description Tipo do ativo (renda_fixa/tesouro). */
5438
+ asset_type: string;
5439
+ /** @description Código do papel. */
5440
+ symbol: string;
3991
5441
  };
3992
5442
  header?: never;
3993
- path?: never;
5443
+ path: {
5444
+ /** @description Id da carteira. */
5445
+ id: string;
5446
+ };
3994
5447
  cookie?: never;
3995
5448
  };
3996
- requestBody?: never;
5449
+ requestBody: {
5450
+ content: {
5451
+ "application/json": {
5452
+ /**
5453
+ * @description Indexador (none limpa a taxa).
5454
+ * @enum {string}
5455
+ */
5456
+ rf_indexer: "cdi" | "prefixado" | "ipca" | "none";
5457
+ /** @description Taxa (ex.: 110 = 110% do CDI; 6.2 = IPCA+6,2%). */
5458
+ rf_rate?: number;
5459
+ };
5460
+ };
5461
+ };
3997
5462
  responses: {
3998
- /** @description Resultados ranqueados */
5463
+ /** @description Meta da posição. */
3999
5464
  200: {
4000
5465
  headers: {
4001
5466
  [name: string]: unknown;
4002
5467
  };
4003
5468
  content: {
4004
- "application/json": components["schemas"]["SearchResult"][];
5469
+ "application/json": Record<string, never>;
4005
5470
  };
4006
5471
  };
4007
5472
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4010,32 +5475,36 @@ export interface operations {
4010
5475
  [name: string]: unknown;
4011
5476
  };
4012
5477
  content: {
4013
- "application/problem+json": components["schemas"]["Problem"];
5478
+ "application/problem+json": Record<string, never>;
4014
5479
  };
4015
5480
  };
4016
5481
  };
4017
5482
  };
4018
- getIngestHealth: {
5483
+ listPortfolioTransactions: {
4019
5484
  parameters: {
4020
- query?: never;
5485
+ query: {
5486
+ /** @description Tipo do ativo. */
5487
+ asset_type: string;
5488
+ /** @description Ticker ou nome do título. */
5489
+ symbol: string;
5490
+ };
4021
5491
  header?: never;
4022
- path?: never;
5492
+ path: {
5493
+ /** @description Id da carteira. */
5494
+ id: string;
5495
+ };
4023
5496
  cookie?: never;
4024
5497
  };
4025
5498
  requestBody?: never;
4026
5499
  responses: {
4027
- /** @description Saúde da ingestão */
5500
+ /** @description Transações do ativo. */
4028
5501
  200: {
4029
5502
  headers: {
4030
5503
  [name: string]: unknown;
4031
5504
  };
4032
5505
  content: {
4033
5506
  "application/json": {
4034
- latest: ({
4035
- errors: string[];
4036
- } & components["schemas"]["IngestRunSummary"]) | null;
4037
- sources: components["schemas"]["IngestSourceHealth"][];
4038
- recent_runs: components["schemas"]["IngestRunSummary"][];
5507
+ transactions?: components["schemas"]["PortfolioTransaction"][];
4039
5508
  };
4040
5509
  };
4041
5510
  };
@@ -4045,30 +5514,61 @@ export interface operations {
4045
5514
  [name: string]: unknown;
4046
5515
  };
4047
5516
  content: {
4048
- "application/problem+json": components["schemas"]["Problem"];
5517
+ "application/problem+json": Record<string, never>;
4049
5518
  };
4050
5519
  };
4051
5520
  };
4052
5521
  };
4053
- getNewsEdition: {
5522
+ addPortfolioTransaction: {
4054
5523
  parameters: {
4055
- query?: {
4056
- /** @description Data da edição (AAAA-MM-DD). Omita p/ a mais recente. */
4057
- date?: string;
4058
- };
5524
+ query?: never;
4059
5525
  header?: never;
4060
- path?: never;
5526
+ path: {
5527
+ /** @description Id da carteira. */
5528
+ id: string;
5529
+ };
4061
5530
  cookie?: never;
4062
5531
  };
4063
- requestBody?: never;
5532
+ requestBody: {
5533
+ content: {
5534
+ "application/json": {
5535
+ /**
5536
+ * @description Tipo do ativo.
5537
+ * @enum {string}
5538
+ */
5539
+ asset_type: "stock" | "fii" | "bdr" | "index" | "tesouro" | "crypto" | "option" | "renda_fixa";
5540
+ /** @description Ticker (ex.: PETR4) ou nome oficial do título do Tesouro. */
5541
+ symbol: string;
5542
+ /**
5543
+ * @description Tipo da transação.
5544
+ * @enum {string}
5545
+ */
5546
+ kind: "buy" | "sell" | "split";
5547
+ /** @description Data do negócio (AAAA-MM-DD). */
5548
+ trade_date: string;
5549
+ /** @description Quantidade (> 0; obrigatória em buy/sell). */
5550
+ quantity?: number;
5551
+ /** @description Preço unitário em BRL (omita se desconhecido). */
5552
+ price?: number;
5553
+ /** @description Custos/corretagem em BRL (default 0). */
5554
+ fees?: number;
5555
+ /** @description Fator do split (2 = 2:1; 0.5 = grupamento 1:2). */
5556
+ ratio?: number;
5557
+ /** @description Observação livre (até 280 caracteres). */
5558
+ note?: string;
5559
+ };
5560
+ };
5561
+ };
4064
5562
  responses: {
4065
- /** @description Edição publicada + itens. */
4066
- 200: {
5563
+ /** @description Transação lançada. */
5564
+ 201: {
4067
5565
  headers: {
4068
5566
  [name: string]: unknown;
4069
5567
  };
4070
5568
  content: {
4071
- "application/json": components["schemas"]["NewsEditionEnvelope"];
5569
+ "application/json": {
5570
+ transaction?: components["schemas"]["PortfolioTransaction"];
5571
+ };
4072
5572
  };
4073
5573
  };
4074
5574
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4082,22 +5582,30 @@ export interface operations {
4082
5582
  };
4083
5583
  };
4084
5584
  };
4085
- listNewsDates: {
5585
+ deletePortfolioTransaction: {
4086
5586
  parameters: {
4087
5587
  query?: never;
4088
5588
  header?: never;
4089
- path?: never;
5589
+ path: {
5590
+ /** @description Id da carteira. */
5591
+ id: string;
5592
+ /** @description Id da transação. */
5593
+ txId: string;
5594
+ };
4090
5595
  cookie?: never;
4091
5596
  };
4092
5597
  requestBody?: never;
4093
5598
  responses: {
4094
- /** @description Datas + slots. */
5599
+ /** @description Transação removida. */
4095
5600
  200: {
4096
5601
  headers: {
4097
5602
  [name: string]: unknown;
4098
5603
  };
4099
5604
  content: {
4100
- "application/json": components["schemas"]["NewsDatesResponse"];
5605
+ "application/json": {
5606
+ deleted?: boolean;
5607
+ id?: string;
5608
+ };
4101
5609
  };
4102
5610
  };
4103
5611
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4111,29 +5619,49 @@ export interface operations {
4111
5619
  };
4112
5620
  };
4113
5621
  };
4114
- listNewsFeed: {
5622
+ updatePortfolioTransaction: {
4115
5623
  parameters: {
4116
- query?: {
4117
- /** @description Itens por página (1–50, default 20). */
4118
- limit?: number;
4119
- /** @description Offset de paginação (do `nextCursor` anterior). */
4120
- cursor?: string;
4121
- /** @description Filtra por categoria/linha editorial. */
4122
- category?: string;
4123
- };
5624
+ query?: never;
4124
5625
  header?: never;
4125
- path?: never;
5626
+ path: {
5627
+ /** @description Id da carteira. */
5628
+ id: string;
5629
+ /** @description Id da transação (de listPortfolioTransactions). */
5630
+ txId: string;
5631
+ };
4126
5632
  cookie?: never;
4127
5633
  };
4128
- requestBody?: never;
5634
+ requestBody: {
5635
+ content: {
5636
+ "application/json": {
5637
+ /**
5638
+ * @description Tipo da transação.
5639
+ * @enum {string}
5640
+ */
5641
+ kind?: "buy" | "sell" | "split";
5642
+ /** @description Data do negócio (AAAA-MM-DD). */
5643
+ trade_date?: string;
5644
+ /** @description Quantidade. */
5645
+ quantity?: number;
5646
+ /** @description Preço unitário em BRL. */
5647
+ price?: number;
5648
+ /** @description Custos em BRL. */
5649
+ fees?: number;
5650
+ /** @description Fator do split. */
5651
+ ratio?: number;
5652
+ /** @description Observação. */
5653
+ note?: string;
5654
+ };
5655
+ };
5656
+ };
4129
5657
  responses: {
4130
- /** @description Página de itens + `nextCursor`. */
5658
+ /** @description Transação atualizada. */
4131
5659
  200: {
4132
5660
  headers: {
4133
5661
  [name: string]: unknown;
4134
5662
  };
4135
5663
  content: {
4136
- "application/json": components["schemas"]["NewsFeedResponse"];
5664
+ "application/json": components["schemas"]["PortfolioTransaction"];
4137
5665
  };
4138
5666
  };
4139
5667
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4147,25 +5675,27 @@ export interface operations {
4147
5675
  };
4148
5676
  };
4149
5677
  };
4150
- getNewsItem: {
5678
+ listPortfolioImports: {
4151
5679
  parameters: {
4152
5680
  query?: never;
4153
5681
  header?: never;
4154
5682
  path: {
4155
- /** @description Slug do item (do campo `slug` do feed/edição). */
4156
- slug: string;
5683
+ /** @description Id da carteira. */
5684
+ id: string;
4157
5685
  };
4158
5686
  cookie?: never;
4159
5687
  };
4160
5688
  requestBody?: never;
4161
5689
  responses: {
4162
- /** @description Item + relacionadas. */
5690
+ /** @description Imports da carteira. */
4163
5691
  200: {
4164
5692
  headers: {
4165
5693
  [name: string]: unknown;
4166
5694
  };
4167
5695
  content: {
4168
- "application/json": components["schemas"]["NewsItemEnvelope"];
5696
+ "application/json": {
5697
+ imports?: components["schemas"]["PortfolioImportListItem"][];
5698
+ };
4169
5699
  };
4170
5700
  };
4171
5701
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4179,22 +5709,34 @@ export interface operations {
4179
5709
  };
4180
5710
  };
4181
5711
  };
4182
- listNewsStories: {
5712
+ importPortfolioFile: {
4183
5713
  parameters: {
4184
5714
  query?: never;
4185
5715
  header?: never;
4186
- path?: never;
5716
+ path: {
5717
+ /** @description Id da carteira. */
5718
+ id: string;
5719
+ };
4187
5720
  cookie?: never;
4188
5721
  };
4189
- requestBody?: never;
5722
+ requestBody: {
5723
+ content: {
5724
+ "application/json": {
5725
+ /** @description Conteúdo do arquivo em base64. */
5726
+ content_base64: string;
5727
+ /** @description Nome do arquivo (ajuda a trilha de auditoria). */
5728
+ filename?: string;
5729
+ };
5730
+ };
5731
+ };
4190
5732
  responses: {
4191
- /** @description Stories do dia. */
4192
- 200: {
5733
+ /** @description Resumo do import. */
5734
+ 201: {
4193
5735
  headers: {
4194
5736
  [name: string]: unknown;
4195
5737
  };
4196
5738
  content: {
4197
- "application/json": components["schemas"]["NewsStoriesResponse"];
5739
+ "application/json": components["schemas"]["PortfolioImportSummary"];
4198
5740
  };
4199
5741
  };
4200
5742
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4208,25 +5750,37 @@ export interface operations {
4208
5750
  };
4209
5751
  };
4210
5752
  };
4211
- getNewsAgenda: {
5753
+ listPortfolioImportRows: {
4212
5754
  parameters: {
4213
5755
  query?: {
4214
- /** @description Janela em dias (1–90, default 30). */
4215
- days?: number;
5756
+ /** @description Filtra por status. */
5757
+ status?: "imported" | "ignored" | "duplicate" | "error";
5758
+ /** @description Linhas por página (1–500, default 100). */
5759
+ limit?: number;
5760
+ /** @description Offset de paginação. */
5761
+ offset?: number;
4216
5762
  };
4217
5763
  header?: never;
4218
- path?: never;
5764
+ path: {
5765
+ /** @description Id da carteira. */
5766
+ id: string;
5767
+ /** @description Id do import (de listPortfolioImports). */
5768
+ importId: string;
5769
+ };
4219
5770
  cookie?: never;
4220
5771
  };
4221
5772
  requestBody?: never;
4222
5773
  responses: {
4223
- /** @description Agenda consolidada. */
5774
+ /** @description Linhas do import. */
4224
5775
  200: {
4225
5776
  headers: {
4226
5777
  [name: string]: unknown;
4227
5778
  };
4228
5779
  content: {
4229
- "application/json": components["schemas"]["NewsAgendaResponse"];
5780
+ "application/json": {
5781
+ total?: number;
5782
+ rows?: components["schemas"]["PortfolioImportRow"][];
5783
+ };
4230
5784
  };
4231
5785
  };
4232
5786
  /** @description Erro (RFC 9457 application/problem+json) */
@@ -4240,22 +5794,38 @@ export interface operations {
4240
5794
  };
4241
5795
  };
4242
5796
  };
4243
- getPortfolio: {
5797
+ reconcilePortfolioAsset: {
4244
5798
  parameters: {
4245
5799
  query?: never;
4246
5800
  header?: never;
4247
- path?: never;
5801
+ path: {
5802
+ /** @description Id da carteira. */
5803
+ id: string;
5804
+ };
4248
5805
  cookie?: never;
4249
5806
  };
4250
- requestBody?: never;
5807
+ requestBody: {
5808
+ content: {
5809
+ "application/json": {
5810
+ /** @description Tipo do ativo. */
5811
+ asset_type: string;
5812
+ /** @description Ticker. */
5813
+ symbol: string;
5814
+ /** @description Quantidade declarada pela B3 (>= 0). */
5815
+ target_qty: number;
5816
+ /** @description Data de referência (AAAA-MM-DD). */
5817
+ as_of: string;
5818
+ };
5819
+ };
5820
+ };
4251
5821
  responses: {
4252
- /** @description Carteira consolidada do usuário. */
5822
+ /** @description Resultado do ajuste (delta aplicado). */
4253
5823
  200: {
4254
5824
  headers: {
4255
5825
  [name: string]: unknown;
4256
5826
  };
4257
5827
  content: {
4258
- "application/json": components["schemas"]["PortfolioContext"];
5828
+ "application/json": Record<string, never>;
4259
5829
  };
4260
5830
  };
4261
5831
  /** @description Erro (RFC 9457 application/problem+json) */