Skip to main content
Cuando un cargo falla en el banco, en el proveedor o en las reglas de riesgo, la respuesta no es un error HTTP: el cargo existe y queda en failed. El motivo llega en el campo remarks del cargo, del intento de pago y del webhook del cargo.
  • code: el motivo, en texto. Es el campo que debes usar para decidir.
  • description: explicación para ti.
  • customer_description: texto que puedes mostrarle al pagador.
  • retry: false si OnePay considera el rechazo definitivo para ese medio de pago; true si no lo es y el cobro se puede intentar de nuevo más adelante. Es el valor que calcula OnePay para cada motivo, no una instrucción: en algunos (CURRENCY_NOT_SUPPORTED, SERVICE_IS_NOT_AVAILABLE, PROVIDER_REQUEST_INVALID) no coincide con la acción que sugiere description. En esos casos sigue description.
Mientras el cargo no tenga motivo, remarks es null.

Cuándo llega como error HTTP

Algunos motivos se detectan antes de crear el cargo y la API responde 422 con el formato de error estándar. En ese caso code es el código numérico de la tabla y code_name es el motivo en minúsculas:
422
Los códigos numéricos 10103, 10104 y 10105 también los usan otros errores de la API con otro significado. Decide siempre por remarks.code o por code_name, no por el número.

Todos los motivos

COMPANY_TRANSACTION_LIMIT (10129) es el límite de cantidad de transacciones de tu empresa, como dice su customer_description; su description menciona el monto por un error del texto. El límite de monto es COMPANY_TRANSACTION_LIMIT_AMOUNT (10130).