Changelog
Para: Dev · Fin · Adm — Conferido em 2026-10-18.
O que mudou no Dracma e é visível para quem integra ou administra uma operação: contrato, comportamento da API,
webhooks, painel e acesso. As entradas vão da mais nova para a mais antiga, a partir de 2026-09-27 (a data da edição
anterior deste guia). Mudanças internas que não alteram o que você vê não estão aqui.
O que é
Um registro por data, com a área, o efeito para você e o que fazer. Todas as datas estão em UTC e são a data em que a
mudança passou a valer no código. Quando uma mudança vale só em operações Teste ou só em operações Real, a entrada diz.
A política de compatibilidade está em Versionamento: dentro da v1 só entram acréscimos, e correção de
comportamento não muda o número da versão.
Quando usar
- Ao atualizar o conector ou ao investigar um comportamento que mudou ("isso respondia
401, agora responde 429").
- Ao revisar o guia: todo o conteúdo foi reconferido em 2026-10-18 contra o código de cada serviço. A edição anterior
(2026-09-27) está defasada em pontos que esta página lista: devolução real de saque, lista de IPs, autenticação sem
oráculo, limites por jogador, painel completo e e-mail real no hml.
- Ao preparar o corte para a operação Real: percorra as entradas e confirme que o seu conector já trata cada uma.
Como funciona
Versões do contrato
| Versão |
O que trouxe |
| 1.0 |
Base: depósitos e saques PIX em BRL, autenticação HMAC, idempotência, webhooks assinados, reconciliação, sandbox. |
| 1.0.1 |
review_reasons no depósito (motivos de under_review) e o objeto já existente em existing no 409 duplicate_external_id. |
| 1.1.0 |
Versão vigente. Declara wire, SWIFT, câmbio e recebimentos bancários, campos novos nos objetos (fee, fees, rail, fx, compliance, return, recall e outros) e a regra do leitor tolerante. A API implementa só o recorte PIX; o resto é reservado (Rotas e campos reservados). |
2026-10-21
| Área |
Mudança |
O que fazer |
| API |
IP liberado e URL de webhook são opcionais e altamente recomendados. Operação sem IP liberado aceita qualquer origem com a chave válida. Com IP liberado, a chamada de outra origem recebe 403 ip_not_allowed, sem listar os IPs. A API passa a registrar por 30 dias os IPs de origem das chamadas autenticadas. |
Em Real, cadastre os IPs de saída fixos do conector. Atrás de proxy ou NAT, use o IP público de saída. |
| Painel |
O painel avisa enquanto faltar IP ou webhook (com Lembrar depois por 7 dias, por pessoa) e, após as primeiras chamadas, sugere Bloquear para estes IPs: aplica na hora, depois da sua confirmação e de uma confirmação recente de identidade (só aperta o acesso, com IPs já vistos; sem aprovação de outra pessoa e sem espera). Nada é aplicado sozinho, e remover os IPs desfaz. |
Veja IPs do conector. |
2026-10-19
| Área |
Mudança |
O que fazer |
| Acesso |
Convidar alguém para a equipe passa a ser por convite com aceite. O pedido de convite (com a aprovação que já existia) envia um e-mail com link de uso único e 72 h de validade. O acesso só vale depois que a pessoa aceita com dois fatores, e só na operação do convite. A tela Usuários e papéis ganhou "Aguardando aceite", com reenvio e revogação. |
Avise a equipe de que o convite não dá acesso na hora. Veja Equipe e papéis. |
| Acesso |
Adicionar um segundo e-mail à conta (Conta, e-mails). Um endereço já verificado em outra conta responde como um livre, sem enviar código. |
Veja Conta, login e dispositivos. |
2026-10-18
| Área |
Mudança |
O que fazer |
| API |
A lista de IPs da operação deixa de ser aplicada às chamadas. Nenhuma chamada recebe mais 403 ip_not_allowed. A tela de IPs do painel continua registrando a lista. |
Não use IP como controle de acesso. A autenticação por assinatura e os escopos seguem valendo (Autenticação HMAC). |
| Guia |
O guia foi reescrito e reconferido contra o código, e passa a ser publicado em docs.dracma.cfd, com o documento OpenAPI (OpenAPI). Autenticação, erros, idempotência, paginação e limites ganharam páginas próprias. |
Atualize favoritos e links. |
2026-10-15
| Área |
Mudança |
O que fazer |
| Painel |
Tenants e operações são criados pelo painel, pela equipe do Dracma, com acompanhamento do estado da operação: Configurando, Ativa ou Suspensa (Tenants e operações). |
Nada. O primeiro acesso do administrador do integrador é por convite (Do zero ao go-live). |
2026-10-12
| Área |
Mudança |
O que fazer |
| Painel |
Painel completo. Chaves de API e IPs, usuários e papéis, webhooks (configuração, entregas, DLQ), regras e listas, relatórios com exportação CSV e JSON, alertas, auditoria com trilha verificável, reconciliação e saldos e caixa, cobrança de teste e o pedido de informação ao operador no detalhe do saque. |
Veja O painel. |
| Painel |
Aprovação por 1 outra pessoa. Ações que pediam 2 aprovações (dar papel que aprova dinheiro, afrouxar regra, remover entrada de lista, ativar VIP, exportar com dados pessoais) passam a pedir 1, sempre de outra pessoa; quem propõe nunca vota. A mesma pessoa pode administrar o tenant e aprovar dinheiro. Saque marcado para dupla aprovação continua exigindo 2 revisores distintos. |
Revise os papéis da sua equipe (Equipe e papéis). |
| Painel |
Chave de API nova exige aprovação de outra pessoa e espera de 24 h; o segredo é revelado uma vez, em janela de 24 h, ao proponente. Chave não revelada nesse prazo é revogada. |
Chaves de API. |
| Painel |
Cobrança de teste. Cria um depósito PIX de teste pela tela. Em operação Real exige confirmação explícita, porque o dinheiro é real. |
Cobrança de teste. |
| Operação Real no hml |
No ambiente de homologação, a operação Real passa a usar o PSP de verdade e move dinheiro real. Operações Teste continuam no simulador. |
Use a chave key_test_ para ensaios; só use key_live_ no hml com valor pequeno e intencional (Ambientes, tipos de operação e hosts). |
| Caixa e reconciliação |
Depósito returned deixa de debitar o caixa da operação por um dinheiro que nunca entrou. O item de devolução na reconciliação usa o valor efetivamente recebido. |
Confira a sua conciliação (Reconciliar com o seu livro). |
| Webhooks |
Configuração pelo painel com filtro por tipo de evento e teste a seco; resolução e reentrega de itens na DLQ; alertas do painel por e-mail. |
Webhooks no painel. |
Dinheiro real
No hml, uma chamada com key_live_ cobra e paga de verdade. Ensaie com key_test_.
2026-10-11
| Área |
Mudança |
O que fazer |
| E-mail |
No hml, os e-mails chegam de verdade (convites, alertas, códigos de login). Só endereços de teste (.test, .invalid, .example) continuam suprimidos. |
Use um endereço real e seu para o administrador; nunca use endereço de terceiros em ensaios. |
| Acesso |
Login e cadastro em etapas: e-mail, primeiro método e segundo método, um por vez. O link do convite aponta para a tela de cadastro correta. |
Conta, login e dispositivos. |
2026-10-10
| Área |
Mudança |
O que fazer |
| Saques |
Devolução PIX de saque pago. O saque paid pode virar returned quando o banco devolve o PIX, com o objeto return (reason_code ou unspecified, returned_amount, que pode ser parcial, e returned_at). O caixa da operação é creditado pelo valor devolvido. |
Trate returned no seu livro: credite ao jogador (ou à fila de exceções) só o returned_amount (Ciclo do saque). |
| Acesso |
Autenticação forte. Passkey, aplicativo de código (TOTP), código por e-mail, confirmação extra (step-up) em ações sensíveis, códigos de recuperação e vários dispositivos. Sessão de 7 dias deslizantes; sair encerra a sessão no servidor. |
Conta, login e dispositivos. |
| Painel |
Primeiras telas: operações e saldos, filas de saques e de depósitos em revisão com voto, transações e auditoria. |
O painel. |
| E-mail |
E-mails do Dracma ao operador: alerta de entregas de webhook que esgotaram as tentativas, saque em revisão e resumo diário. |
Cadastre os endereços de alerta no webhook (Alertas e e-mails). |
| Sandbox |
Na API de operação Teste do hml, as rotas /v1/sandbox/* passam a estar disponíveis. Em produção e em operação Real continuam sendo 404. |
Sandbox. |
| Segurança |
Correção: um Dracma-Timestamp absurdamente distante no futuro podia ser aceito por estouro de inteiro; agora é recusado como qualquer valor fora da janela. |
Nada. |
2026-10-02
| Área |
Mudança |
O que fazer |
| API |
Rotas do contrato 1.1.0 no recorte PIX. GET /fx/quotes/{id} e GET /receipts/{id} respondem 404; GET /receipts devolve página vazia; POST /withdrawals/{id}/recall responde 409 invalid_state_transition; POST /sandbox/bank-transfers/incoming responde 400 rail_not_enabled. Nada move dinheiro. |
Nada. Veja Rotas e campos reservados. |
| Autenticação |
Sem oráculo de existência de chave. Chave inexistente e assinatura errada voltam a mesma resposta, 401 invalid_signature. 401 unknown_key por chave revogada e 403 só aparecem depois de a assinatura de uma chave real conferir. |
Em diagnóstico, parta de invalid_signature (Autenticação HMAC). |
| Autenticação |
Dracma-Timestamp só na forma canônica: só dígitos, sem sinal, sem espaço, sem zero à esquerda. Valores como +1790000000 ou 01790000000 voltam 401 timestamp_out_of_window. O t= do webhook também é canônico. |
Gere o timestamp com floor(agora / 1000) e formate como inteiro simples. |
| API |
Validação de JSON mais estrita. Chave duplicada variando maiúsculas e minúsculas é 400 duplicate_key; JSON com delimitador trocado deixa de dar 500 e vira 400 validation_failed. |
Não envie chaves repetidas. |
| API |
Toda resposta /v1 traz traceparent; o Dracma-Trace-Id é o ID do trace, e o seu traceparent de entrada é continuado. |
Convenções HTTP. |
2026-09-28
| Área |
Mudança |
O que fazer |
| Limites |
Saques por jogador: 3 por hora, além dos 10 depósitos por hora. Estouro: 429 rate_limited (Limites e quotas). |
Mostre "tente mais tarde" ao jogador; não faça laço. |
| Erros |
500 internal_error passa a vir com retryable: true. |
Repita com a mesma Idempotency-Key. |
| Chaves |
A API guarda a chave resolvida por até 30 s: a revogação de uma chave passa a valer em até 60 s em todos os nós. |
Revogue e confirme o "último uso" no painel. |
| Sandbox |
Estorno e chargeback de depósito por ação de sandbox (refund, chargeback). Simulador de saque: valor terminado em 77 centavos (por exemplo 2077) fica aceito e pendente até uma ação de sandbox. |
Receitas. |
| Contrato |
GET /openapi.yaml servido pela API, com ETag. |
OpenAPI. |
| Webhooks |
Jitter nas retentativas. O atraso de cada retentativa é o intervalo do cronograma mais 0% a 10%; nenhuma tentativa sai antes do intervalo base. |
Não dependa do horário exato da retentativa (Retentativas e DLQ). |
Linha de base (2026-09-27)
Tudo o que estava descrito na edição anterior deste guia continua valendo, em especial: PIX em BRL para depósito e
saque; autenticação HMAC com janela de ±300 s; idempotência de 30 dias; limites de 5 req/s em listagens, 10 depósitos
por hora por jogador e 20 falhas de assinatura por minuto por IP; POST /rules/change-requests; exigências de depósito
por operação em GET /currencies; POST /fx/quotes respondendo 422 fx_not_enabled; validação de UTF-8 do corpo.
Exemplos
Como ler uma entrada. A de 2026-10-02 sobre timestamp:
- Sintoma possível: depois de uma atualização de biblioteca, o conector passou a receber
401 timestamp_out_of_window
com o relógio certo.
- Causa: o timestamp saía com
+, com espaço ou com zero à esquerda (por exemplo 01790000000).
- Correção:
str(int(agora_em_segundos)), sem formatação.
E a de 2026-10-10 sobre returned: se o seu livro só conhecia paid, o jogador que teve o PIX devolvido ficaria com o
saque "pago" para sempre. Passe a tratar returned e o return.returned_amount.
Erros e casos de borda
- hml e produção. Esta página descreve o comportamento do código. Um ambiente só passa a se comportar assim depois de
receber a versão; no hml as mudanças chegam antes. Confira o
GET /v1/ping e uma chamada de teste antes de contar
com uma mudança.
- Datas. Valem em UTC. Uma mudança de 2026-10-18 pode ter chegado ao seu ambiente depois.
- O que não aparece aqui. Ajustes de operação do Dracma, regras da sua operação (configuração) e correções que não
mudam o que você observa.
- Documento OpenAPI. Alguns trechos do documento ainda não refletem as mudanças acima; a lista está em
Divergências conhecidas.
Veja também