Enviar detalles de pago
Envía los datos del pagador y los campos específicos del método para un cobru existente.
Endpoint
POST /{url}
Este contrato viene principalmente de los materiales originales de Spotlight de
Cobru, notas internas compiladas de API y research posterior del checkout. Cobru
todavía no ha reejecutado todas las variantes de método de punta a punta dentro
de la evidencia de sandbox publicada por este repo, así que este endpoint sigue
en la categoría legacy-doc para planeación de producción.
Confianza por método
| Método | Confianza | Motivo |
|---|---|---|
pse | más alta | varias fuentes coinciden en bank y en la dependencia de GET /get_banks/1/ |
NEQUI | media | la forma del request es consistente entre Spotlight y el research posterior, pero el runtime sigue variando según los datos del pagador |
daviplata | media | Spotlight y el research posterior documentan el paso de OTP, pero Cobru no ha publicado todavía una repetición completa confirmada en este repo |
credit_card | media | Spotlight trae un payload claro y tarjetas de prueba, pero la paridad productiva aún requiere revalidación |
breb | media-baja | Spotlight documenta payment: "breb" directo, pero el research posterior en sandbox lo observó como deshabilitado o restringido comercialmente |
| métodos en efectivo y corresponsales | media-baja | los payloads están documentados, pero el detalle de las respuestas sigue viniendo sobre todo de material legacy |
Propósito
Después de crear un cobru, este endpoint recibe los datos del pagador y los campos requeridos por el método de pago seleccionado.
Este es el hub de checkout para:
- Bre-B
- PSE
- Efecty y Corresponsal Bancolombia
- Nequi
- dale!
- Botón Bancolombia
- Daviplata
- tarjetas de crédito
Parámetro de path
| Campo | Tipo | Descripción |
|---|---|---|
url | string | slug del cobru retornado por POST /cobru/ |
Campos comunes
{
"name": "Juan Perez",
"payment": "efecty",
"cc": "1140867070",
"email": "juan@cobru.co",
"document_type": "CC",
"phone": "3002794981"
}| Campo | Requerido | Notas |
|---|---|---|
name | sí en la mayoría de métodos | nombre del pagador |
payment | sí | selector del método de pago |
cc | sí en la mayoría de métodos | número de documento del pagador |
email | sí en la mayoría de métodos | email del pagador |
document_type | sí en la mayoría de métodos | Spotlight muestra CC, TI, CE, NIT, PA |
phone | sí en la mayoría de métodos | teléfono del pagador |
Usa el campo payment, no payment_method. Spotlight y el research posterior apuntan a payment como el selector aceptado.
Respuestas y errores observados en Spotlight
| Status | Causa | Notas |
|---|---|---|
200 | detalles de pago generados | la forma de la respuesta cambia según el método |
403 | intentas pagar tu propio cobru con saldo Cobru | Spotlight muestra {"result":"same_user"} |
400 | el dueño superaría su balance permitido | {"result":"LIMIT_BALANCE"} |
400 | el cobru ya fue pagado | {"result":"COBRU_IS_PAYED"} |
400 | método de pago desconocido | {"error": true, "msg": "unknown payment method"} |
400 | método no habilitado | {"error":"Payment method is not enabled.","result":"NOT_ALLOWED"} |
404 | no se encontró el usuario que paga con saldo Cobru | solo flujo legacy |
Matriz de métodos
| Método | literal de payment | Campos extra | Siguiente paso |
|---|---|---|---|
| Bre-B | breb | ninguno en el request base | mostrar qr_value / key_value |
| PSE | pse | bank, address | redirigir a la URL PSE retornada por Cobru |
| Efecty | efecty | ninguno además de los comunes | mostrar los detalles de pago en efectivo retornados |
| Corresponsal Bancolombia | corresponsal_bancolombia | ninguno además de los comunes | mostrar los detalles de pago retornados |
| Nequi | NEQUI | phone_nequi, push opcional | usar checkout o respuesta tipo QR |
| dale! | dale | ninguno además de los comunes | seguir la respuesta retornada por Cobru |
| Botón Bancolombia | bancolombia_transfer | ninguno además de los comunes | redirigir a checkout |
| Daviplata | daviplata | ninguno en el primer request | confirmar luego con OTP |
| Tarjeta de crédito | credit_card | credit_card, expiration_date, cvv, dues | completar el flujo de tarjeta |
Bre-B
{
"payment": "breb"
}Spotlight muestra una respuesta que incluye:
qr_valuekey_valuemethod: "breb"franchise: "breb"
Los materiales originales también indican que qr_value y key_value viven 5 minutos.
El research posterior en sandbox observó payment: "breb" directo como
deshabilitado o restringido comercialmente en algunos entornos. Toma la forma del
request como documentada, pero no asumas disponibilidad directa de Bre-B sin tu
propia confirmación en sandbox.
PSE
PSE requiere dos campos extra:
| Campo | Tipo | Descripción |
|---|---|---|
bank | string | código numérico del banco |
address | string | dirección del pagador |
{
"name": "Juan Perez",
"payment": "pse",
"cc": "1140867070",
"email": "juan@cobru.co",
"document_type": "CC",
"phone": "300000000",
"bank": "1040",
"address": "Bogotá, Colombia"
}Antes de enviar payment: "pse", consulta GET /get_banks/1/ y envía en bank el bankCode elegido.
Dentro de las variantes legacy de checkout, PSE es una de las mejor corroboradas en los materiales de Cobru porque la dependencia de bancos, los campos del request y el patrón de redirección coinciden entre varias fuentes.
Si el request es exitoso, Cobru retorna la URL de PSE a la que tu frontend debe redirigir al usuario.
Métodos en efectivo: Efecty y Corresponsal Bancolombia
Spotlight agrupa estos métodos como generación de detalles de pago en efectivo.
{
"name": "Juan Perez",
"payment": "efecty",
"cc": "1140867070",
"email": "juan@cobru.co",
"document_type": "CC",
"phone": "3002794981"
}corresponsal_bancolombia usa la misma forma base, cambiando solo el literal payment.
Nequi
{
"name": "Test Gómez",
"payment": "NEQUI",
"cc": "1082626262",
"email": "test@cobru.co",
"phone": "307654332",
"document_type": "CC",
"phone_nequi": "307654332",
"push": true
}Comportamiento descrito por Spotlight:
push: truegenera un push en la app Nequi del usuariopush: falseevita el push y retorna la data necesaria para una experiencia tipo QR, incluyendoref
dale!
{
"name": "Test Gómez",
"payment": "dale",
"cc": "1082626262",
"email": "test@cobru.co",
"phone": "307654332",
"document_type": "CC"
}Botón Bancolombia
{
"name": "Test Gómez",
"payment": "bancolombia_transfer",
"cc": "1082626262",
"email": "test@cobru.co",
"phone": "307654332",
"document_type": "CC"
}Spotlight indica que la respuesta incluye un checkout URL que el usuario debe abrir para completar el pago.
Daviplata
Request inicial:
{
"name": "Test Gómez",
"payment": "daviplata",
"cc": "1082626262",
"email": "test@cobru.co",
"phone": "307654332",
"document_type": "CC"
}Después de que el pagador recibe el OTP de Daviplata, Spotlight requiere una segunda llamada:
POST /cobru/confirm_daviplata/
Campos del body:
| Campo | Descripción |
|---|---|
URL | URL/slug del cobru |
OTP | OTP recibido por el pagador |
El éxito se describe como result == "OK".
Cobru todavía no ha publicado una repetición completa del OTP de Daviplata dentro de la evidencia de sandbox de este repo. Usa este contrato como una referencia legacy fuerte, no como un flujo verificado recientemente.
Tarjeta de crédito
{
"name": "Test Gómez",
"payment": "credit_card",
"cc": "1082626262",
"email": "test@cobru.co",
"phone": "307654332",
"document_type": "CC",
"credit_card": "4111111111111111",
"expiration_date": "12/30",
"cvv": "123",
"dues": 1
}Spotlight indica:
- Cobru no persiste los datos de tarjeta
- en producción el tráfico debe ser HTTPS
- tarjetas de prueba mostradas en Spotlight:
- aprobada:
4111 1111 1111 1111 - rechazada:
4111 1111 1111 1112
- aprobada: