Skip to main content

Bank Transfer (PSE)

  POST https://api-sandbox.letpay.io/bankTransfer/simple

Overview

This process is designed to facilitate direct bank transfers via PSE (Pagos Seguros en Línea) in Colombia, optimizing user experience and conversion rates. It allows your customers to make payments quickly and securely, integrating efficiently with local requirements.

The process offers:

  • Immediate display of payment information to the payer, without the need for complex preliminary data collection, which contributes to a higher conversion rate. To use this process, simply send the required fields as indicated in the documentation.
  • Utilization of the payer's identification document (e.g., Cédula de Ciudadanía, NIT) linked to the transaction. It's recommended that merchants have already collected this data beforehand. However, there's an option to collect it on the checkout page – although this approach might result in a slightly lower conversion rate, it can be advantageous in specific scenarios depending on your business needs. To use this process, send the payer's identification number in the tax_id field and specify the correct type (e.g., CC for Cédula de Ciudadanía, NIT for Número de Identificación Tributaria) in the tax_id_type field. You should also include the payer's email. If the tax_id is invalid, the transaction may be declined.

By integrating with bank transfer via PSE, we provide a unified solution that COVERS ALL of the Colombian banking landscape. This broad reach contributes to higher conversion rates by maximizing accessibility for your customers, eliminating the need for them to switch banks or use unfamiliar payment methods.

Minimum and Maximum Amounts

Minimum AmountMaximum AmountProcessing HoursProcessing days
1600 COP74,000,000,000 COPACH CyclesACH Cycles

Reference Checkout UI Bank Transfer

Reference UI - Bank Transfer - Part 1Reference UI - Bank Transfer - Part 1

Select Banking Institution

Reference UI - Bank Transfer - Part 2Reference UI - Bank Transfer - Part 2

Redirect URL to the Bank Page

Reference UI - Bank Transfer - Part 3Reference UI - Bank Transfer - Part 3

Bank Transfer Flow

Authorization

HeaderValue
X-Auth-TokenMY_ACCESS_TOKEN

Request description

  • contract_id (required/string): Merchant's contract id.
  • notification_url (required/string): URL to post callbacks to this payment.
  • reference_id (required/string/max 45 chars): External code created by the merchant to reference this payment (e.g. order number).
  • ip_address (optional/string): Remote IP Address(IPv4/IPv6).
  • return_url (required/string): URL returned to this payment.
  • extra_data (optional/object): Optional extra data that you can use at transaction.
  • payment (required/object): The payment data:
    • amount (required/float): Total amount of the payment. Value must have a maximum of two decimal places.
    • asset (required/string): Reference code for asset for the sale's amount.
    • country (required/string): Country code in ISO 3166-2.
    • currency (required/string): Currency code in ISO-4217.
    • bank_transfer (required/object): Bank transfer data:
      • description: (optional/string): Description of the bank transfer.
      • bank_code: (required/string): Number of the bank code.
  • person (required/object): The person data:
    • type (required/enum): COMPANY or NATURAL_PERSON.
    • email (required/string): Person’s email provided to the merchant.
    • full_name (optional/string): Person’s full name.
    • tax_id (required/string): Unique identifier for this person in country tax system.
    • tax_id_type (required/enum): Type of identifier for this person in country tax system (e.g. in Colombia: NIT). Valid options: NIT, CC, CE, TI, PP.

Response Description

  • transaction_status (string): Current status of the payment.
  • payment_token (string): Unique payment identification for this payment.
  • refresh_token (string): Updated access token for future calls.
  • reference_id (string): External code created by the merchant to reference this payment (e.g. order number).
  • amount (string): Amount of this payment.
  • redirect_url (string): The redirect url.
  • totals (object): The payment totals.
    • amount (float): Amount in default region asset.
    • asset (string): Asset used in this amount.
    • original_amount (float): Amount as informed by merchant.
    • original_asset (string): Asset used in this originalAmount.
    • customer_fees (float): Total calculated fee assigned to customer.
    • customer_amount (float): Total amount for customer (amount + customer_fees).
  • customer_fees (object): List of incident customer fees and respective values.

Example Request

Example Request

200 - Success
    curl --location 'https://api-sandbox.letpay.io/bankTransfer/simple' \
--header 'X-Auth-Token: MY_ACCESS_TOKEN' \
--data-raw '{
"contract_id": "b4ce7d96-e813-4012-80a8-c5d950dc5c93",
"notification_url": "",
"reference_id": "a969b235-ad03-45cc-b286-4b4a23d613a0",
"ip_address": "1.1.1.1",
"return_url": "https://my.site.com",
"extra_data": {},
"payment": {
"amount": 10000.00,
"asset": "COP",
"country": "CO",
"currency": "COP",
"bank_transfer": {
"description": "teste",
"bank_code": "1009"
}
},
"person": {
"type": "COMPANY", // or NATURAL_PERSON
"email": "[email protected]",
"full_name": "Alice Sonnentag",
"tax_id": "1716458334",
"tax_id_type": "NIT"
}
}'

Example Response

Header
  Content-Type: application/json
Body
    {
"transaction_status": "PROCESSING",
"payment_token": "MY_PAYMENT_TOKEN",
"reference_id": "MY_REFERENCE_ID",
"redirect_url": "BANK_TRANSFER_URL",
"amount": "1000.00",
"totals": {
"amount": 1000,
"original_amount": 1000,
"original_asset": "COP",
"customer_fees": 0,
"customer_amount": 1000,
"asset": "COP"
},
"customer_fees": {},
"refresh_token": ""
}