Submit payment details

Submit payer information and method-specific fields for an existing cobru.

Endpoint

POST /{url}

This contract comes primarily from Cobru's original Spotlight materials, compiled internal API notes, and later checkout research. Cobru has not yet replayed every method variant end-to-end in this repo's published sandbox evidence, so keep this endpoint in the legacy-doc bucket for production planning.

Confidence by method

MethodConfidenceWhy
psehighermultiple sources agree on bank plus the dependency on GET /get_banks/1/
NEQUImediumrequest shape is consistent across Spotlight and later research, but runtime still varies with payer data
daviplatamediumboth Spotlight and later research document the OTP follow-up, but Cobru has not yet published a full confirmed OTP replay in this repo
credit_cardmediumSpotlight provides a clear payload and test cards, but live production parity still needs re-validation
brebmedium-lowSpotlight documents direct payment: "breb", but later sandbox research observed this path as commercially gated or disabled
cash and agent methodsmedium-lowpayloads are documented, but response details are still mostly legacy-derived

Purpose

After a cobru exists, this endpoint receives the payer details and the fields required by the selected payment method.

This is the checkout hub for:

  • Bre-B
  • PSE
  • Efecty and Corresponsal Bancolombia
  • Nequi
  • dale!
  • Botón Bancolombia
  • Daviplata
  • credit cards

Path parameter

FieldTypeDescription
urlstringthe cobru slug returned by POST /cobru/

Common fields

{
  "name": "Juan Perez",
  "payment": "efecty",
  "cc": "1140867070",
  "email": "juan@cobru.co",
  "document_type": "CC",
  "phone": "3002794981"
}
FieldRequiredNotes
nameyes for most methodspayer name
paymentyespayment method selector
ccyes for most methodspayer document number
emailyes for most methodspayer email
document_typeyes for most methodsSpotlight shows CC, TI, CE, NIT, PA
phoneyes for most methodspayer phone

Use the field name payment, not payment_method. Spotlight and later research both point to payment as the accepted selector.

Response and error behavior seen in Spotlight

StatusCauseNotes
200payment details generatedresponse shape varies by method
403trying to pay your own cobru with Cobru balanceSpotlight shows {"result":"same_user"}
400owner would exceed allowed balance{"result":"LIMIT_BALANCE"}
400cobru already paid{"result":"COBRU_IS_PAYED"}
400unknown payment method{"error": true, "msg": "unknown payment method"}
400method not enabled{"error":"Payment method is not enabled.","result":"NOT_ALLOWED"}
404Cobru-balance payer not foundlegacy flow only

Method matrix

Methodpayment literalExtra fieldsNext step
Bre-Bbrebnone in the base requestrender qr_value / key_value
PSEpsebank, addressredirect to PSE URL returned by Cobru
Efectyefectynone beyond common fieldsshow the cash payment details returned
Corresponsal Bancolombiacorresponsal_bancolombianone beyond common fieldsshow the payment details returned
NequiNEQUIphone_nequi, optional pushuse checkout or QR-style response
dale!dalenone beyond common fieldsfollow the response returned by Cobru
Botón Bancolombiabancolombia_transfernone beyond common fieldsredirect to checkout
Daviplatadaviplatanone in the first requestconfirm later with OTP
Credit cardcredit_cardcredit_card, expiration_date, cvv, duescomplete card payment flow

Bre-B

{
  "payment": "breb"
}

Spotlight shows a response that includes:

  • qr_value
  • key_value
  • method: "breb"
  • franchise: "breb"

The original materials also state that qr_value and key_value live for 5 minutes.

Later sandbox research observed direct payment: "breb" as commercially gated or disabled in some environments. Treat the request shape as documented, but do not assume direct Bre-B availability without your own sandbox confirmation.

PSE

PSE requires two extra fields:

FieldTypeDescription
bankstringnumeric bank code
addressstringpayer address
{
  "name": "Juan Perez",
  "payment": "pse",
  "cc": "1140867070",
  "email": "juan@cobru.co",
  "document_type": "CC",
  "phone": "300000000",
  "bank": "1040",
  "address": "Bogotá, Colombia"
}

Before sending payment: "pse", fetch the available bank list from GET /get_banks/1/ and send the selected bankCode in the bank field.

Among the legacy checkout variants, PSE is one of the best corroborated flows in Cobru's materials because the bank dependency, request fields, and redirect pattern line up across multiple sources.

If the request succeeds, Cobru returns the PSE URL that your frontend should use to redirect the user.

Cash methods: Efecty and Corresponsal Bancolombia

Spotlight groups these as cash-style payment detail generation.

{
  "name": "Juan Perez",
  "payment": "efecty",
  "cc": "1140867070",
  "email": "juan@cobru.co",
  "document_type": "CC",
  "phone": "3002794981"
}

corresponsal_bancolombia uses the same common-field shape, only changing the payment literal.

Nequi

{
  "name": "Test Gómez",
  "payment": "NEQUI",
  "cc": "1082626262",
  "email": "test@cobru.co",
  "phone": "307654332",
  "document_type": "CC",
  "phone_nequi": "307654332",
  "push": true
}

Behavior described by Spotlight:

  • push: true triggers a push in the user's Nequi app
  • push: false avoids the push and returns the data needed to generate a QR-style experience, including ref

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 says the response includes a checkout URL that the user should open to complete the payment.

Daviplata

Initial request:

{
  "name": "Test Gómez",
  "payment": "daviplata",
  "cc": "1082626262",
  "email": "test@cobru.co",
  "phone": "307654332",
  "document_type": "CC"
}

After the payer receives the Daviplata OTP, Spotlight requires a second call:

POST /cobru/confirm_daviplata/

Body fields:

FieldDescription
URLcobru URL/slug
OTPOTP received by the payer

Success is described as result == "OK".

Cobru has not yet published a full Daviplata OTP replay in this repo's sandbox evidence. Use this contract as a strong legacy reference, but confirm the exact request/response behavior before shipping a production dependency on it.

Credit card

{
  "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 notes:

  • Cobru does not persist card data
  • production traffic must be HTTPS
  • test cards shown in Spotlight:
    • approved: 4111 1111 1111 1111
    • declined: 4111 1111 1111 1112

On this page