Errors
Every error has the same shape:
{
"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 is for the integrator; display_message is a text in Spanish suitable for showing to an end user (or
null). retryable: true means: retry the same request with the same Idempotency-Key.
code |
HTTP | Retryable | ISO 20022 (reason) |
|---|---|---|---|
invalid_request |
400 | no | |
parameter_missing |
400 | no | |
parameter_invalid |
400 | no | |
amount_invalid |
400 | no | AM12 |
currency_not_supported |
400 | no | AM03 |
concept_not_supported |
400 | no | |
destination_invalid |
400 | no | AC01 |
unsupported_version |
400 | no | |
idempotency_key_missing |
400 | no | |
idempotency_key_invalid |
400 | no | |
api_key_missing |
401 | no | |
api_key_invalid |
401 | no | |
signature_missing |
401 | no | |
signature_invalid |
401 | no | |
signature_expired |
401 | yes, with a new signature | |
signature_replayed |
401 | no | |
signature_key_unknown |
401 | no | |
content_digest_mismatch |
401 | no | |
ip_not_allowed |
403 | no | |
environment_mismatch |
403 | no | |
entity_suspended |
403 | no | |
not_found |
404 | no | |
idempotency_key_reused |
409 | no | |
idempotency_request_in_progress |
409 | yes | |
insufficient_funds |
422 | no | AM04 |
account_frozen |
422 | no | AC06 |
account_closed |
422 | no | AC04 |
limit_per_transfer_exceeded |
422 | no | AM02 |
limit_daily_exceeded |
422 | no | AM14 |
limit_monthly_exceeded |
422 | no | AM14 |
destination_not_found |
422 | no | AC03 |
destination_inactive |
422 | no | AC04 |
destination_is_source |
422 | no | AG01 |
destination_holder_mismatch |
422 | no | BE01 |
compliance_rejected |
422 | no | RR04 |
risk_rejected |
422 | no | AG01 |
rate_limited |
429 | yes | |
internal_error |
500 | yes | |
rail_unavailable |
503 | yes | |
ledger_unavailable |
503 | yes | |
transfers_paused |
503 | yes | |
service_unavailable |
503 | yes |
compliance_rejected and risk_rejected are deliberately generic: FCM Payment Solutions S.A.S. does not disclose the
details of an anti-money-laundering control (Argentine Law 25,246, duty of non-disclosure).
FCM Payment Solutions S.A.S. does keep the full reason.
The error object
See the table of codes in the general description.
messagestring requiredTechnical explanation for the integrator. Do not show it to end users.
display_messagestring | null requiredText in Spanish suitable for showing to an end user, or
null.paramstring | null requiredField or header that caused the error, if applicable.
retryableboolean requiredtrue: retry the same request with the same Idempotency-Key.doc_urlstring (uri) requiredIn a transfer
422, the id of the object that was left inrejected.