- Erro na requisição: a resposta tem status 4xx ou 5xx e o objeto
error. Os erros de validação dos dados enviados recusam a requisição antes de criar a cobrança. Um erro de servidor (5xx) ou um tempo limite excedido pode acontecer depois que a cobrança foi criada: antes de tentar de novo, liste as cobranças filtrando peloorderIddo pedido. - Cobrança recusada: o pagamento foi processado e recusado. A cobrança existe e tem
status: failed. Esse é o caso que também chega por webhook. - Reprovação do antifraude: o antifraude reprovou a cobrança, antes ou depois da autorização. O status final depende de quando o antifraude roda e das opções do provedor antifraude. Veja Reprovação do antifraude.
Cobrança recusada
Quando o emissor ou o provedor recusa o pagamento, a cobrança fica comstatus: failed. A resposta de POST /v1/charges, a consulta em GET /v1/charges/{id} e o evento transaction.failed trazem os mesmos campos:
error.declinedCodeé o código padronizado pela Malga. Os valores estão na tabela de declinedCode.providerError.networkDeniedReasoneproviderError.networkDeniedMessagetrazem o código e a mensagem originais do provedor. Use para investigar um caso, não para regras.
failed pode vir sem o objeto error: ele só aparece quando existe um declinedCode. Isso acontece, por exemplo, quando a cobrança falha antes de chegar a um provedor. Use o status para saber se a cobrança foi recusada e trate a ausência de código como recusa genérica.
Reprovação do antifraude
Quando o antifraude reprova uma cobrança, o resultado não aparece emerror. A análise fica em uma tentativa com requestType: anti_fraud, no campo transactionRequests[].fraudAnalysis.status, que vale reproved. Essa tentativa tem requestStatus: success, porque a análise foi concluída, e não traz providerError.
O status final da cobrança depende de quando o antifraude roda e das opções do provedor antifraude:
capture e runBeforeCharge estão em Antifraude síncrono.
fraudAnalysis.status, qualquer que seja o status da cobrança. Não dependa do evento transaction.failed nem de error.declinedCode.
Formato do erro na requisição
Erros na requisição
Os erros estão agrupados por assunto. Escolha uma aba:- Cartão
- Não encontrado
- Split e taxa
- 3DS
- Captura e estorno
- Validação e infra
Exemplos de resposta
400 · CVV inválido
400 · CVV inválido
400 · CVV obrigatório
400 · CVV obrigatório
401 · Token expirado
401 · Token expirado
404 · Cartão não encontrado
404 · Cartão não encontrado
400 · Soma de percentuais do split acima de 100
400 · Soma de percentuais do split acima de 100
422 · Mais de um dono da venda no split
422 · Mais de um dono da venda no split
400 · Provedor sem 3DS Malga
400 · Provedor sem 3DS Malga
409 · Operação em processamento
409 · Operação em processamento
409 · Captura de cobrança não pré-autorizada
409 · Captura de cobrança não pré-autorizada
429 · Estorno com falhas seguidas
429 · Estorno com falhas seguidas
500 · Erro inesperado
500 · Erro inesperado