PSE
Learn how to process PSE online bank transfers in Colombia with Bamboo. Accept payments directly from bank accounts using redirection or bank list integration.
PSE is an online bank transfer system in Colombia that allows customers to pay directly from their bank accounts securely. Bamboo supports two payment flows depending on the merchant integration model.
Payment Flow
Merchant-managed bank list
Retrieve the list of available banks using the Bank List API and display it in your checkout.
Bamboo-managed redirection
If the merchant does not send a bank code, Bamboo automatically shows the list of available banks.
- (Optional – Merchant-managed flow) If the merchant sends the bank code and customer type, Bamboo skips the PSE selection screen and redirects directly to the PSE flow.
- The payer accesses the PSE page to confirm their email and identify as a Natural or Legal person.
- PSE redirects the payer to their selected bank’s website to log in and authorize the payment.
- The bank processes the transaction through the PSE network and displays a payment confirmation screen.
- Bamboo redirects the payer to the merchant’s result URL (
APPROVED,REJECTED, orPENDING) and sends the final status asynchronously to the configuredWebhook URL.
When the merchant does not send the bank code, Bamboo handles the redirection to the PSE interface automatically. If the bank code is included, the customer is taken directly to their selected bank’s login page.
Redirect Flow for PSEThis payment method uses a Redirect flow. The API response includes an
Actionand the purchase remains in Pending status until the customer completes the payment in the Internet Banking.
Request parameters
The following parameters are required specifically for this payment method.
Refer to the Purchase operation guide for standard fields and authentication requirements.
Property | Type | Mandatory? | Description |
|---|---|---|---|
|
| Yes | Use |
|
| Yes | Destination country, must be |
|
| Yes | Customer’s email. |
|
| Yes | Customer’s first name. |
|
| Yes | Customer’s last name. |
|
| Yes | Customer’s document type. See Document types. |
|
| Yes | Customer’s document number. |
|
| Yes | Customer’s phone number. |
|
| No | Country ISO code ( |
|
| No | Department or state of residence. |
|
| No | City of residence. |
|
| Yes | Street address and number. |
|
| No | Postal or ZIP code. |
|
| Conditional | Bank code from the Bank List Endpoint. If not sent, Bamboo handles bank selection. |
|
| Conditional | Type of person performing the transaction:
|
|
| Conditional | Identification type for the transaction. |
|
| No | URL to redirect when the payment is Approved. |
|
| No | URL to redirect when the payment is Rejected. |
|
| No | URL to redirect when the payment is Canceled. |
|
| No | URL to redirect when the payment is Pending. |
|
| No | Webhook endpoint to receive asynchronous status updates. |
If the
financialInstitutionCodeis not provided, Bamboo displays the bank list automatically during redirection. The default expiration time for PSE transactions is 21 minutes and cannot be modified.
Request example
To test this endpoint, use the API Reference or the Postman Collection
{
"PaymentMethod": "PSE",
"Order": "CO-PSE-001",
"Amount": 250000,
"Currency": "COP",
"Description": "Online purchase via PSE",
"TargetCountryISO": "CO",
"Customer": {
"FirstName": "María",
"LastName": "López",
"Email": "[email protected]",
"DocumentType": "CC.CO",
"DocumentNumber": "10203040",
"PhoneNumber": "3001234567",
"Address": {
"AddressDetail": "Calle 123 #45-67",
"City": "Bogotá D.C",
"State": "Bogota D.C",
"Country": "CO"
}
},
"MetaDataIn": {
"financialInstitutionCode": "1051",
"personType": "1",
"identificationType": "CedulaDeCiudadania"
},
"Redirection": {
"Url_Approved": "https://merchant.com/checkout/success",
"Url_Rejected": "https://merchant.com/checkout/failure",
"Url_Pending": "https://merchant.com/checkout/pending"
}
}Response parameters
The API returns the purchase with status PENDING and an Action object that indicates a redirection is required. Depending on the integration flow:
- If the bank code was included (
financialInstitutionCode), the customer is redirected directly to the selected bank. - If no bank code was provided, Bamboo displays the PSE selection screen (step 1) where the customer can choose their bank.
| Property | Type | Description |
|---|---|---|
Action → URL | string | URL where the payer is redirected to complete the payment. This can be either the selected bank’s login page or the PSE bank selection interface. |
Action → Reason | string | Returns REDIRECTION_NEEDED_EXTERNAL_SERVICE to indicate that user action is required on an external site. |
Status | string | Current purchase status. For PSE payments, it is returned as PENDING until the bank confirms the transaction. |
MetadataOut → PaymentExpirationDate | date | Expiration date and time of the transaction. The default validity is 21 minutes and cannot be changed. |
TransactionId | string | Unique identifier of the transaction generated by Bamboo. |
PaymentMethod → Brand | string | Returns PSE. Identifies the payment method used. |
PaymentMethod → Type | string | Indicates the payment method type. For PSE, the value is BankTransfer. |
The payer will be redirected to one of the URLs defined in the
Redirectionobject based on the final transaction result (Approved,Rejected,Canceled, orPending). Bamboo also sends an asynchronous notification to the Webhook URL configured in the request or merchant account.
Example response
{
"TransactionId": "79632697147789184",
"Result": "ACTION_REQUIRED",
"Status": "PENDING",
"ErrorCode": null,
"ErrorDescription": null,
"Created": "2024-08-07T17:51:54.620",
"AuthorizationDate": null,
"AuthorizationCode": null,
"Amount": 100000,
"Currency": "COP",
"TaxableAmount": null,
"Tip": null,
"Url": "https://api.stage.bamboopayment.com/Purchase/79632697147789184",
"MetadataOut":null,
"Action": {
"SessionId": "CA_cc155768-74d9-4efd-8e55-42411b4dd3cf",
"URL": "https://redirect.stage.bamboopayment.com/CA_cc155768-74d9-4efd-8e55-42411b4dd3cf",
"Reason": "REDIRECTION_NEEDED_EXTERNAL_SERVICE"
},
"PaymentMethod": {
"Brand": "PseAvanza",
"CardOwner": null,
"Bin": null,
"IssuerBank": null,
"Type": "BankTransfer",
"Expiration": null,
"Last4": null
}
}Bank List Endpoint
Merchants can retrieve the list of available banks for PSE payments using this endpoint.
The result includes each bank’s code and name, which must be used in the MetaDataIn → financialInstitutionCode field when the merchant handles bank selection manually.
| Environment | URL |
|---|---|
| Staging | https://pse.stage.bamboopayment.com/api/Bank/GetBanks |
| Production | https://pse.prod.bamboopayment.com/api/Bank/GetBanks |
Response parameters
| Property | Type | Description |
|---|---|---|
bankCode | string | Bank identification code used in the MetaDataIn.financialInstitutionCode field. |
bankName | string | Official name of the bank. |
status | string | Indicates whether the bank is currently available (ACTIVE) or temporarily disabled (INACTIVE). |
Example response
{
"banks": [
{
"bankCode": "1051",
"bankName": "Banco de Bogotá",
"status": "ACTIVE"
},
{
"bankCode": "1052",
"bankName": "Bancolombia",
"status": "ACTIVE"
},
{
"bankCode": "1061",
"bankName": "Davivienda",
"status": "ACTIVE"
}
]
}Use the
bankCodevalue to redirect the payer directly to their selected bank by including it in theMetaDataIn→financialInstitutionCodefield of the purchase request.
Discover the API
Once you’re familiar with how to create a purchase, you can test your integration using our API Reference
Updated 15 days ago
