Skip to main content
Esta página cubre la sección Recaudo de la API. Además de lo que se lista acá, cualquiera de estos endpoints puede devolver los errores comunes. Los que tienen un ID en la ruta también responden 404 record_not_found si el ID no es un UUID, y 404 environment_key_mismatch si el recurso es del otro ambiente. La excepción es la sesión de cliente, donde un cargo que no existe responde 404 sin código. Endpoints: Cobros · Plantillas · Cargos · Links de captura · Nequi y Daviplata · Intentos de pago · Sesión de cliente · Campañas
Un cargo que el banco rechaza no es un error HTTP: el cargo se crea (200) y queda failed con el motivo en remarks. Los motivos posibles están en Motivos de rechazo de cargos.

Cobros

Listar cobros

GET /payments · Referencia Un filter[id] o filter[status] con un valor inválido no da error: devuelve una lista vacía.

Detalle de un cobro

GET /payments/{payment_id} · Referencia

Crear un cobro

POST /payments · Referencia

Actualizar un cobro

PUT /payments/{payment_id} · Referencia

Reenviar un cobro

POST /payments/{payment_id} · Referencia

Cancelar un cobro

DELETE /payments/{payment_id} · Referencia
payment_cancelled y payment_charge_in_progress comparten el código 15004. Distínguelos por code_name: el primero no se reintenta, el segundo sí.

Intentos de un cobro

GET /payments/{payment_id}/intents · Referencia

Resolver un cobro de prueba

POST /payments/{payment_id}/resolve · Referencia

Listar plantillas

GET /templates · Referencia

Cargos

GET /charges/{id} usa el id que devuelve POST /charges. cancel y resolve usan el charge_id; refund acepta los dos.

Listar cargos

GET /charges · Referencia

Detalle de un cargo

GET /charges/{id} · Referencia

Crear un cargo

POST /charges · Referencia Un cargo rechazado por el banco o por las reglas de riesgo responde 200 con el cargo en failed y el motivo en remarks. Mira Motivos de rechazo de cargos.

Crear un cargo PSE

POST /charges/pse · Referencia

Crear un cargo Bre-B

POST /charges/bre-b · Referencia

Reembolsar un cargo

POST /charges/{charge_id}/refund · Referencia

Cancelar un cargo

POST /charges/{charge_id}/cancel · Referencia

Resolver un cargo de prueba

POST /charges/{charge_id}/resolve · Referencia POST /connect-links · Referencia DELETE /connect-links/{connect_link_id} · Referencia

Solicitudes de pago Nequi y Daviplata

Solicitar pago por Nequi

POST /request-to-pay/nequi · Referencia

Confirmar pago por Nequi

POST /request-to-pay/nequi/{id}/confirm · Referencia Este endpoint no exige x-idempotency.

Solicitar pago por Daviplata

POST /request-to-pay/daviplata · Referencia

Confirmar pago por Daviplata

POST /request-to-pay/daviplata/{id}/confirm · Referencia

Intentos de pago

Listar intentos de pago

GET /payment-intents · Referencia

Detalle de un intento de pago

GET /payment-intents/{id} · Referencia

Sesión de cliente

Los errores propios de la sesión (los 401, el 418, el 404 de cargo y los 422 de negocio) no traen code ni code_name: para esos decide por el HTTP y el endpoint. Los de validación sí traen 10001 validation_error; cuando venga code_name, úsalo. Los de sesión (/customers/session/*) exigen el header X-Customer-Token. Tienen límites propios de peticiones, además del general:

Solicitar código de acceso

POST /customers/login/request · Referencia

Verificar código de acceso

POST /customers/login/verify · Referencia
Varios intentos fallidos seguidos sobre el mismo código bloquean al cliente en OnePay. No reintentes la verificación en un bucle: pide el código de nuevo al cliente.

Listar métodos de pago del cliente

GET /customers/session/payment-methods · Referencia

Agregar método de pago del cliente

POST /customers/session/payment-methods · Referencia

Crear cargo desde la sesión

POST /customers/session/charges · Referencia

Consultar cargo de la sesión

GET /customers/session/charges/{chargeId} · Referencia

Importar mensajes de campaña

POST /campaigns/import-messages · Referencia