PayIn API
POST Initiate PayIn (v1 — deprecated)
deprecated
Legacy PayIn endpoint. Always returns a hosted payment_url. Deprecated — use POST /api/v2/payin for new integrations.
POST
Initialize a PayIn transaction using the legacy v1 API.
This version always returns a hosted
See PayIn API (v2) and Colombia PayIn for method-specific v2 examples.
payment_url for the customer to complete payment. Direct and hybrid flows (PSE without redirect, EFECTY instructions, BREB keys, etc.) are available only in PayIn v2.
Migration to v2
| v1 behavior | v2 equivalent |
|---|---|
Hosted checkout (payment_url) | Same — use v2 without extra fields |
| Back-to-back PSE (backoffice flag) | Send customer_data.bank + customer_data.person_type with payment_method: "PSE" |
| Back-to-back SPEI (Mexico, merchant flag) | Send payment_method: "SPEI" — v2 returns hybrid payment_url + payment_information |
| Separate B2B configuration | Not required in v2 |
Required Headers
Your merchant authentication token
Basic authentication key
Must be
application/jsonRequest Body Parameters
Your unique transaction reference
Transaction amount in the specified currency.
Three-letter currency code (ISO 4217), e.g.
COP, PEN, MXN.Two-letter country code (ISO 3166-1 alpha-2), e.g.
CO, PE, MX.Payment method. See Country-Specific Information.
Transaction description or purpose.
Customer identification and contact details (
legal_doc, legal_doc_type, phone_code, phone_number, email, full_name).Payment link expiration time in minutes
URL for receiving webhook notifications
URL to redirect after payment completion
Response
Unique transaction identifier
Hosted checkout URL to redirect the customer
Echo of request metadata (reference, amount, currency, payment_method, urls)
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
application/json