Erros
Todo erro tem a mesma forma:
{
"error": {
"type": "transfer_declined",
"code": "insufficient_funds",
"message": "La cuenta acc_01JA2B3C4D5E6F7G8H9JKMNPQR tiene 120000 centavos disponibles y la transferencia necesita 150050.",
"display_message": "No hay saldo suficiente para esta transferencia.",
"param": "amount",
"request_id": "req_01JA2B3C4D5E6F7G8H9JKMNPQT",
"retryable": false,
"doc_url": "https://docs.fcmpayments.com/errores#insufficient_funds",
"transfer_id": "otr_01JA2B3C4D5E6F7G8H9JKMNPQV"
}
}
message é para quem integra; display_message é um texto em espanhol adequado para mostrar a um usuário final (ou
null). retryable: true significa: repita a mesma requisição com a mesma Idempotency-Key.
code |
HTTP | Pode repetir | ISO 20022 (motivo) |
|---|---|---|---|
invalid_request |
400 | não | |
parameter_missing |
400 | não | |
parameter_invalid |
400 | não | |
amount_invalid |
400 | não | AM12 |
currency_not_supported |
400 | não | AM03 |
concept_not_supported |
400 | não | |
destination_invalid |
400 | não | AC01 |
unsupported_version |
400 | não | |
idempotency_key_missing |
400 | não | |
idempotency_key_invalid |
400 | não | |
api_key_missing |
401 | não | |
api_key_invalid |
401 | não | |
signature_missing |
401 | não | |
signature_invalid |
401 | não | |
signature_expired |
401 | sim, com nova assinatura | |
signature_replayed |
401 | não | |
signature_key_unknown |
401 | não | |
content_digest_mismatch |
401 | não | |
ip_not_allowed |
403 | não | |
environment_mismatch |
403 | não | |
entity_suspended |
403 | não | |
not_found |
404 | não | |
idempotency_key_reused |
409 | não | |
idempotency_request_in_progress |
409 | sim | |
insufficient_funds |
422 | não | AM04 |
account_frozen |
422 | não | AC06 |
account_closed |
422 | não | AC04 |
limit_per_transfer_exceeded |
422 | não | AM02 |
limit_daily_exceeded |
422 | não | AM14 |
limit_monthly_exceeded |
422 | não | AM14 |
destination_not_found |
422 | não | AC03 |
destination_inactive |
422 | não | AC04 |
destination_is_source |
422 | não | AG01 |
destination_holder_mismatch |
422 | não | BE01 |
compliance_rejected |
422 | não | RR04 |
risk_rejected |
422 | não | AG01 |
rate_limited |
429 | sim | |
internal_error |
500 | sim | |
rail_unavailable |
503 | sim | |
ledger_unavailable |
503 | sim | |
transfers_paused |
503 | sim | |
service_unavailable |
503 | sim |
compliance_rejected e risk_rejected são deliberadamente genéricos: a FCM Payment Solutions S.A.S. não informa o
detalhe de um controle de prevenção à lavagem de dinheiro (Lei 25.246 da Argentina, dever de não revelar).
A FCM Payment Solutions S.A.S. guarda, sim, o motivo completo.
O objeto error
Veja a tabela de códigos na descrição geral.
messagestring obrigatórioExplicação técnica para quem integra. Não mostrar a usuários finais.
display_messagestring | null obrigatórioTexto em espanhol adequado para mostrar a um usuário final, ou
null.paramstring | null obrigatórioCampo ou cabeçalho que causou o erro, se aplicável.
retryableboolean obrigatóriotrue: repita a mesma requisição com a mesma Idempotency-Key.doc_urlstring (uri) obrigatórioNum
422de transferência, o id do objeto que ficou emrejected.