Protocolo FIX da plataforma TradeMate
Resumo técnico da conectividade FIX da B3 para a nova plataforma de negociação eletrônica de renda fixa. Sessões, autenticação, portas e o catálogo completo de mensagens — organizado a partir da documentação oficial.
01 Visão geral
O TradeMate é a plataforma de negociação eletrônica de produtos de renda fixa da B3, nativa em nuvem. Toda a interface é integrada via protocolo FIX (Financial Information eXchange), versão 4.4 — um padrão aberto mantido pela FIX Trading Community. As sessões conectam as aplicações do participante à plataforma de negociação e ao market data da bolsa.
O que dá para negociar
- Títulos públicos: NTNB, LFT, NTNC, LTN, NTNF
- Operações casadas: Futuros de DI e DAP (auto)
- CBIO (crédito de descarbonização)
- Títulos privados: CRA, CRI, CFF, Debêntures
Horários de negociação
| Tela | 09:00 | 18:00 |
| RFQ | 09:00 | 17:50 |
| Voice | 08:00 | 19:15 |
Modalidades de negociação suportadas pela plataforma.
Fundamentos do protocolo
- Base FIX.4.4, mensagens ASCII com tags
chave=valor - Header + corpo + trailer (
CheckSum) - Sequenciamento por sessão, resetado no início do dia
- Conexão sobre TLS 1.2 (Stunnel ou
SocketUseSSL=Y)
02 Tipos de sessão FIX
A B3 disponibiliza três tipos de sessão, cada uma com propósito e porta próprios.
Entrada de ordens
Submissão, gestão e execução de ordens. Envie compras/vendas, acompanhe status e receba execution reports.
Cotações em tempo real
Disseminação de dados de mercado: preços, volumes, book, spreads e status dos instrumentos.
Cópia de execuções
Relatórios de execução do participante ao longo do dia — para confirmação de trades e gestão de risco.
03 Conectividade & Portas
O participante escolhe a camada física/link entre as opções abaixo. O canal é sempre criptografado com TLS 1.2.
RTM
Interconexão via acordo B3–RTM: liga as infraestruturas tecnológicas mantidas por B3 e RTM, permitindo acesso mútuo de participantes.
RCB — Rede de Comunicação B3
Rede de alta performance que dá acesso direto aos sistemas de negociação, pós-negociação, market data e B3 Bank, com níveis otimizados de latência e suporte.
Portas por tipo de sessão
| Tipo | Range de portas | Porta em uso |
|---|---|---|
| Order Entry | 32001–32010 | 32001 |
| Market Data | 31001–31010 | 31001 |
| Drop Copy | 30001–30010 | 30001 |
04 IPs e ambientes
Endereços FIX por rede e ambiente (todos usam os mesmos ranges de porta por tipo de sessão). Detalhes completos em Trademate - IPs e Portas.pdf.
Produção
| Rede | Host FIX | IP |
|---|---|---|
| RCB | b3fi-fix.netb3.com.br | PROD 179.127.215.237 · DR 179.127.218.237 |
| RTM | b3fi-fix.rtm.netb3.com.br | 10.0.48.153/32 |
Certificação (homologação)
| Rede | Host FIX | IP |
|---|---|---|
| RCB | b3fi-fix.cert.netb3.com.br | 200.19.60.182 |
| RTM | b3fi-fix-cert.rtm.netb3.com.br | 10.0.48.149/32 |
A plataforma web (b3fi) e a API CAU usam a porta 443 e range 10001–10020. A conexão FIX sempre usa os ranges 30001/31001/32001.
05 Autenticação & Logon
Canal seguro (TLS)
Antes do FIX, é preciso estabelecer um túnel seguro. Duas formas:
- Serviço de tunneling TLS/SSL (ex.: Stunnel) para o handshake
- Ou
SocketUseSSL=Yno arquivo de configuração (QuickFIX/J)
Sem TLS habilitado na rede, a conexão não é estabelecida (exige TLS 1.2).
Credenciais
A autenticação usa usuário/senha do CAU no Logon (35=A):
553 Username— usuário CAU554 Password— senha CAU
A partir da v1.1 das guidelines, a senha vai na tag 544/554 Password (substituiu 96 RawData).
Mensagem Logon (35=A)
| Tag | Nome | Req | Descrição |
|---|---|---|---|
98 | EncryptMethod | Y | Deve ser 0 |
108 | HeartBtInt | Y | Recomendado 30 (segundos) |
141 | ResetSeqNumFlag | N | Reset de sequência em ambos os lados |
553 | Username | N | Usuário CAU |
554 | Password | N | Senha CAU |
35002 | CancelOnDisconnectType | N | 0 = não cancela na queda · 1 = cancela |
35003 | CancelOnDisconnectTimeoutWindow | N | Timeout (s) para acionar o cancelamento |
Business Message Reject
(“Throttle limit has been reached”); se configurado non-reject, o excedente é
retido até o fim do segundo (com maior latência).
06 Gestão de sessão
Início do dia
O número de sequência da sessão é resetado para 1 a cada dia. Fazer logon com sequência diferente de 1 no início do dia faz o pedido ser rejeitado.
Durante o dia, não reinicie a sequência — isso força a retransmissão de todas as mensagens desde o início do dia.
Logout (35=5)
Inicia ou confirma o término da sessão. Desconexão sem troca de logout é tratada como condição anormal (ex.: queda de rede).
Tag 58 Text traz a explicação do motivo, quando houver.
07 Mensagens administrativas
Comuns às três sessões, cuidam do nível de sessão (session level).
| MsgType | Mensagem | Função |
|---|---|---|
0 | Heartbeat | Mantém a sessão viva; corpo vazio (só header) |
1 | TestRequest | Solicita heartbeat de verificação (112 TestReqID) |
2 | ResendRequest | Pede reenvio de faixa (7/17 BeginSeqNo, 16 EndSeqNo) |
3 | Reject | Rejeição de nível de sessão (373 SessionRejectReason) |
4 | SequenceReset | Reset/GapFill de sequência (36 NewSeqNo, 123 GapFillFlag) |
A | Logon | Autenticação e abertura da sessão |
5 | Logout | Encerramento da sessão |
Códigos de SessionRejectReason (373)
08 Order Entry Message Reference v2.7
Sessão dedicada à submissão, gestão e execução de ordens. MsgType válidos no header: 8, 9, D, F, G, j (e mensagens Voice s, t, u, BN).
| MsgType | Mensagem | Direção | Uso |
|---|---|---|---|
D | NewOrderSingle | → B3 | Envia nova ordem |
8 | ExecutionReport | ← B3 | Estado/execução da ordem |
G | OrderCancelReplaceRequest | → B3 | Altera ordem existente |
F | OrderCancelRequest | → B3 | Cancela ordem |
9 | OrderCancelReject | ← B3 | Rejeita cancel/replace |
j | BusinessMessageReject | ← B3 | Rejeição de nível de negócio |
s | NewOrderCross Voice | → B3 | Cross order (2 lados) |
BN | ExecutionAcknowledgement Voice | → B3 | Aceite/recusa de execução |
u | CrossOrderCancelRequest Voice | → B3 | Cancela cross order |
t | CrossOrderCancelReplaceRequest Voice | → B3 | Atualiza taxa benchmark (Spread over B) |
NewOrderSingle (35=D) — campos principais
| Tag | Nome | Req | Descrição |
|---|---|---|---|
11 | ClOrdID | Y | ID único da ordem (do participante) |
38 | OrderQty | Y | Quantidade |
40 | OrdType | Y | 2 = Limit · K = Market with Leftover as Limit |
44 | Price | C | Preço (obrigatório se o tipo exige) |
54 | Side | Y | 1 = Buy · 2 = Sell |
55 | Symbol | Y | Símbolo legível (ver Security List no MD) |
59 | TimeInForce | N | 0 = Day (default) |
60 | TransactTime | Y | Timestamp UTC |
111 | MaxFloor | N | Quantidade aparente (iceberg) |
423 | PriceType | N | 2 = Units · 6 = Spread · 9 = Yield |
453 | NoPartyIDs ▸ | Y | Grupo de partes (448/447/452) |
35487 | RoutingInstruction | N | 9 = Liquidity Seeking |
ExecutionReport (35=8) — enums-chave
150 ExecType
39 OrdStatus
Papéis em 452 PartyRole: 36 Entering Trader · 54 Sender Location · 58 Entering Desk · 59 Executing Desk · 76 Desk ID · 1005 Strategy ID (36/54/58 obrigatórios em Voice). OnBehalfOfCompID (115) habilita negociação on behalf.
s/t/u/BN tratam cross orders (2 lados),
aceite de execução e cancelamentos. A v2.7 adiciona tags de spread/benchmark
(218 Spread, 699 BenchmarkSecurityID, 662 BenchmarkPrice,
663 BenchmarkPriceType, 761 BenchmarkSecurityIDSource) — aplicáveis a trades de voz.
09 Market Data Message Reference v2.3
Sessão de disseminação de dados de mercado para renda fixa (Government Bonds e, futuramente, Corporate). O fluxo típico: Security List → Snapshot → Incremental.
| MsgType | Mensagem | Direção | Uso |
|---|---|---|---|
x | SecurityListRequest | → B3 | Pede a lista de instrumentos |
y | SecurityList | ← B3 | Lista de instrumentos e atributos |
f | SecurityStatus | ← B3 | Mudanças de fase/status do instrumento |
V | MarketDataRequest | → B3 | Assina/cancela cotações |
W | MarketDataSnapshotFullRefresh | ← B3 | Snapshot inicial por instrumento |
X | MarketDataIncrementalRefresh | ← B3 | Atualizações incrementais do book/trades |
Entradas de mercado — 269 MDEntryType
279 MDUpdateAction (incremental) & 326 SecurityTradingStatus
Update Action
Trading Status
Bandas de preço via 1148 LowLimitPrice / 1149 HighLimitPrice e 6939 PriceBandType (1 Hard · 2 Auction · 3 Rejection · 4 Static · 5 Spread over B). Preço qualificado por 423 PriceType (1 %, 2 Per-Unit, 6 Spread, 9 Yield).
10 Drop Copy Message Reference v2.1
Sessão de confirmação de trades e gestão de risco. Recebe cópias de ExecutionReport (35=8) de toda a atividade do participante — é um fluxo somente de recebimento.
| MsgType | Mensagem | Direção | Uso |
|---|---|---|---|
8 | ExecutionReport | ← B3 | Cópia de execução (único app message) |
| + mensagens administrativas/sessão comuns (A, 5, 0, 1, 2, 3, 4) | |||
ExecutionReport no Drop Copy — destaques
37 OrderID,17 ExecID,11 ClOrdID— identificação150 ExecTypeincluiP= PendingBenchmarkPrice (v2.1)31 LastPx/32 LastQty— preço/qtd do último fill14 CumQty/151 LeavesQty— acumulado/restante6032 UniqueTradeID— id do trade (se ExecType = F)- Grupo de legs (555/600/624/687/566/654) p/ estruturados
452 PartyRoleinclui7EnteringFirm (on-behalf)- Tags Voice: 494, 513, 548, 551, 63/64, 377 + Spread over B
6 AvgPx é sempre 0 (zero). Preço em Voice aceito apenas em PU; 236 Yield quando a precificação é por taxa.
11 Instrumentos & tags de referência
762 SecuritySubType
167 SecurityType: GOVBOND, CORP, CBIO · 460 Product: 3 Corporate · 6 Government
Precificação — 423 PriceType
Liquidação 63 SettlType: 0 Regular · 1 T+0 · 2 T+1 · 3 T+2 · 4 T+3 · B BrokenDate (exige 64 SettlDate, só debêntures).
Instrumentos "Casada"
Operações casadas usam 228 Factor (hedge factor) e o grupo 711 NoUnderlyings (311/309/305) para as pernas subjacentes, executadas nos Futuros de DI/DAP (plataforma PUMA).
Atributos — 871 InstrAttribType
Ex.: 8 Coupon Period · 15 In Default · 50 Restricted Effort · 51/53 Rating (Fitch/S&P) · 54 Trading Deadline · 57 Is Taker · 58 Trading Sector ID · 59 Spread over B Enabled. Valores em 872 InstrAttribValue.
12 Fluxos típicos
Abertura de sessão
Ciclo de vida da ordem (Order Entry)
Assinatura de Market Data
13 Certificação
A B3 mantém um ambiente de certificação usado por participantes e ISVs para testar e homologar suas soluções antes de acessar produção. Os testes podem ser feitos em dias úteis, das 08:30 às 18:30 (horário local), sem necessidade de acompanhamento da equipe de certificação. O acesso é via RTM ou RCB.
Roteiro — Order Entry
Casos de teste para homologar a sessão de entrada de ordens.
Roteiro_Certificacao - Trademate Order Entry.pdfRoteiro — Market Data
Casos de teste para a sessão de cotações.
Roteiro de Certificacao_Trademate_MarketData.pdfRoteiro — Drop Copy
Casos de teste para a sessão de cópias de execução.
Roteiro de Certificacao_Trademate_DropCopy.pdf14 Documentos-fonte
Todos os arquivos foram baixados para a pasta tdmt. Este site resume o conteúdo deles.
Fonte: b3.com.br — Trademate · Conectividade FIX. Documentos marcados como “Informação Interna” pela B3; use apenas para fins de integração autorizada.