Skip to main content
A partir da v0.8.0, toda falha de pagamento traz um código canônico estável (failureCode), uma mensagem em português (failureReason) e o código bruto do gateway (gatewayFailureCode). Você roteia em cima do enum normalizado e ainda tem o código original para auditoria / abertura de chamado com Celcoin.

Onde aparece

Valores

Mapeamento ABECS → Garu

A Garu normaliza os códigos ABECS retornados pelo Celcoin. O código original fica em gatewayFailureCode: Códigos não-ABECS (mensagem livre do Celcoin) caem em keyword matching: a Garu varre a reasonDenied por palavras-chave em PT/EN (“vencido”, “expired”, “insufficient”, etc.) e mapeia para o melhor enum. Se nada bate: unknown.

Exemplo

Boas práticas de roteamento

card_expired, card_canceled, fraud_suspected → coletar dados novos. Não vale a pena automatizar retry. insufficient_funds, issuer_unavailable, processing_error → a Garu já tenta automaticamente; relaxe.
gatewayFailureCode muda quando trocamos de gateway por baixo. failureCode é estável. Use o enum para automação; logue o gateway code para forensics.
Para scheduled_charge.cycle_failed, a Garu já tentou em +6h, +24h, +48h antes de emitir o evento. Não tente cobrar de novo programaticamente — peça novo cartão ou aguarde o cliente clicar no e-mail de fallback.