v2.41.1 — Transferência interna recusada não volta mais como pendente
v2.41.1 — Transferência interna recusada não volta mais como pendente
- Recusa do liquidante agora responde
422.POST /v1/accounts/{accountId}/transfers/internal(e as variantes/by-documente/by-bank-account) devolvia202comstatus: "PENDING"quando o liquidante recusava a operação — a transferência estava definitivamente encerrada, mas a resposta pedia para esperar. Agora a recusa sai como422comstatus: "FAILED",errorCodeeerrorReason, como o contrato já documentava. O202 PENDINGficou reservado ao caso indeterminado (a operação ainda em curso quando a janela síncrona expira). insufficient_fundsno lugar departner_rejectedquando o motivo é saldo. O liquidante recusa transferência interna por falta de saldo com uma mensagem genérica (“o liquidante recusou a operação”). Passamos a conferir o saldo disponível na hora da recusa: quando ele não cobre o valor pedido, a resposta vem comoinsufficient_funds. Sem essa evidência a recusa continuapartner_rejected, com o motivo do liquidante no blocopartner.workflowIdcorreto na transferência interna. Repetir o POST com a mesmaIdempotency-Keydevolvia umworkflowIdcom prefixo de PIX out. Agora vem o id real da operação (internal-out-…).- TED não fica mais eternamente em
PROCESSING. O desfecho do liquidante chegava, mas era entregue ao processo errado e se perdia — e o registro da TED nunca era atualizado. Resultado:GET /transfers/ted/{tedId}e o extrato mostravam “processando” mesmo em TED já liquidada ou recusada, e uma recusa só viravated.out.failed48h depois, com o motivo genérico de timeout no lugar da recusa real. Agora o desfecho é aplicado assim que chega, e as TEDs que estavam presas foram conciliadas com o estado real. - TED:
bankCodesó aceita o Compe de 3 dígitos. Mandar o ISPB (8 dígitos) nesse campo agora é recusado na hora com400 invalid_bank_code. Antes a requisição era aceita com202, seguia para o liquidante sem banco de destino e a TED ficava presa emPROCESSING— sem liquidar e sem falhar. O ISPB continua válido no PIX por dados bancários (bankIspb).
Transferência interna não tem webhook de falha
O webhook transfer.internal.out só é entregue quando a transferência é
efetivada. Para uma recusa, o desfecho está na resposta da própria chamada —
por isso o 422 acima importa. Não espere webhook para fechar uma transferência
interna recusada.
v2.42.0 — Suspensão temporária de acesso por pendência
v2.42.0 — Suspensão temporária de acesso por pendência
- Dois códigos novos:
tenant_suspendedetenant_disabled. Quando há uma pendência em aberto, o acesso do tenant pode ser suspenso temporariamente. Com o tenant suspenso, as consultas (GET) continuam funcionando — saldo, extrato e status de operações — e as escritas respondem403 tenant_suspended. Com o tenant desativado, todas as rotas respondem403 tenant_disabled. - A credencial não é revogada. O mesmo
client_id/client_secretcontinua obtendo token normalmente; a recusa acontece na chamada à API. Regularizada a pendência, o acesso volta na chamada seguinte — sem credencial nova, sem token novo. - Dinheiro recebido continua entrando. PIX recebido segue sendo creditado e os webhooks desses eventos continuam sendo entregues. A suspensão bloqueia iniciar novas operações, não receber.
Detalhes no Guia de Autenticação.