RAILS
Sandbox

Erros

Todo erro tem a mesma forma:

JSON
{
  "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

  • type ErrorType obrigatório
  • code ErrorCode obrigatório

    Veja a tabela de códigos na descrição geral.

  • message string obrigatório

    Explicação técnica para quem integra. Não mostrar a usuários finais.

  • display_message string | null obrigatório

    Texto em espanhol adequado para mostrar a um usuário final, ou null.

  • param string | null obrigatório

    Campo ou cabeçalho que causou o erro, se aplicável.

  • request_id RequestId obrigatório
  • retryable boolean obrigatório

    true: repita a mesma requisição com a mesma Idempotency-Key.

  • doc_url string (uri) obrigatório
  • transfer_id OutgoingTransferId | null obrigatório

    Num 422 de transferência, o id do objeto que ficou em rejected.