1. Online Payments
  • API Docs Colombia 🇨🇴
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Make a charge or deferred charge
      • Create payment (tokenless)
      • Void a transaction
      • Refund a transaction
      • Request deferred options
      • Authorize payments
      • Preauthorization (tokenless)
      • Reauthorize payments
      • Capture an authorized payment
      • Verify Account
      • Validate OTP
      • Bin Info
      • BIN info V2
    • One-Click & Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Make an One-click payment
      • Update recurring charge card data
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Chargebacks
      • Query chargebacks
      • Request chargeback export
    • Transfer in
      • Get Bank List
      • Request a Transfer In token
      • Init Transaction
      • Get Status
    • Transfer out
      • Get Bank List
      • Get Bank List V2
      • Request a Transfer Out token
      • Init Transaction
      • Get Status
      • Balance for Payouts
    • CASH-IN
      • Request a cash in token
      • Init Transaction
      • Transaction Status
      • Delete a cash in transaction
      • Update a cash in transaction
    • Cash-out
      • Request a cash out token
      • Init Transaction
      • Transaction Status
      • Update a cash out transaction
      • Delete a cash out transaction
    • Smartlinks-v2
      • Create a Smartlink
      • Get a Smartlink
      • Update a Smartlink
      • Delete a smartlink
    • Analytics
      • Get transactions list v1
      • Get transactions list v2
    • Gateway-status
      • Get gateway status
      • Get platform status
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Advanced search
      • Delete credential
      • Regenerate a credential
      • Activate or deactivate
      • Update credential
    • Payment Button
      • Create a payment button
    • Settlement
      • Query settlement
    • Subscription Transactions
      • Get subscription transactions
  • Kushki One
    • Cloud Services
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
        • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
        • Transaction Search — Online
        • Transaction Search — Local
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • API RAW CARD PRESENT PAYMENTS
    • Release Notes
    • Error Catalog
    • The Amount Object
    • Key Exchange Process
    • Test data
    • Card Information
      • Get BIN Info
      • Balance inquiries
      • BIN info V2
      • Request deferred options
    • One-time Payments
      • Single payment
    • Two-step Payments
      • Authorization and capture
    • Voids & Refunds
      • Void & Reverse
      • Refund a transaction
    • Query Transactions
      • Transaction Search
    • Webhooks
      • Introduction
      • Good Practices
      • Webhooks-Card Payments
      • Webhooks-Refunds
      • Check your webhooks
  • Appian - Submerchant Register
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • SubscriptionTransactionsResponse
    • Card
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • SettlementDateRangeRequest
    • AmountWithTaxes
    • PrintJobRequest
    • card
    • SubscriptionTransaction
    • networkToken
    • ChargebackItem
    • SettlementTicketRequest
    • AmountCore
    • CommandText
    • amount
    • ErrorResponse
    • currency
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • ExtraTaxes
    • CommandColumns
    • extra_taxes
    • Amount
    • ErrorResponse401
    • SettlementRecord
    • ColumnItem
    • pos_details
    • extraTaxes
    • ErrorResponse403
    • TransactionResponse
    • CommandDivider
    • card_details
    • Deferred
    • Country
    • payment_method
    • ErrorResponse500
    • RawResponse
    • CommandFeed
    • enc_tlv
    • Metadata
    • CardData
    • CommandSpace
    • contact_details
    • ContactDetails
    • AmountWithTip
    • CommandCut
    • deferred
    • sub_merchant
    • documentType
    • Subscription
    • LinkFailure
    • CommandImage
    • metadata
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • Billing-Address
    • PrinterError
    • product
    • SubscriptionUpdate
    • PrintJobStatus
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • PrintWebhookPayload
    • webhooks
    • headers
    • webhooksChargeback
    • citMit
    • network
    • binInfo
    • messageFields
    • UnexpectedErrorResponse
    • transactionType
    • ExternalReferenceId
    • ExternalSubscriptionId
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴
Chile 🇨🇱
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴
Chile 🇨🇱
  1. Online Payments

TRANSFER OUT

Transfer Out lets you disburse funds programmatically — sending money directly to a recipient's bank account using your Kushki wallet balance. In Colombia 🇨🇴, two transfer modes are supported: ACH (standard bank account transfers) and Bre-B (instant payment key transfers).
Keep in mind!
Due to our risk policies, the available payment methods and the integration type may vary once you complete the affiliation. We will tell you how to proceed if this process applies to your merchant.

Transfer Modes#

ACH (Bank account)
Bre-B (Payment key)
Standard bank transfers. Requires the recipient's bank account number (accountNumber), account type (CC or CA), and bankId. Use the Get Bank List endpoint to retrieve the available banks.

Payment Flow#

A Transfer Out in Colombia consists of 4 sequential steps: bank list retrieval (ACH only), tokenization, initialization, and status confirmation.
Get the Bank List
Required for ACH transfers only. Call the Get Bank List endpoint using your Public Merchant ID to retrieve the list of available recipient banks.
Display the list to the operator and store the selected code — you will pass it as bankId in the token request.
For Bre-B transfers, this step is not required — there is no bankId field.
Two versions available:
EndpointNotes
Get Bank List v1Basic bank list
Get Bank List v2Enhanced bank list — recommended
Request a Transfer Out Token
Call the token endpoint using your Public Merchant ID. Include the recipient's details, the amount, and the transfer mode fields.
Token rules: Tokens expire in 30 minutes and are single-use. If the transaction fails or the token expires, request a new one.
Required fields for Colombia:
FieldACH (CC/CA)Bre-B (KI/KP/KE/KA/KM)
accountType✅ Required✅ Required
accountNumber✅ Required✅ Required
totalAmount✅ Required✅ Required
currency✅ Required (COP)✅ Required (COP)
documentType✅ RequiredOptional
documentNumber✅ RequiredOptional
bankId✅ RequiredNot required
name✅ RequiredOptional
Account types for Colombia:
ValueModeDescription
CCACHCuenta Corriente
CAACHCuenta Ahorros
KIBre-BNational identification number
KPBre-BMobile phone number
KEBre-BEmail address
KABre-BAlphanumeric alias
KMBre-BMerchant code
Document types accepted in Colombia:
ValueDocument
CCCédula de Ciudadanía 🇨🇴
NITNúmero de Identificación Tributaria 🇨🇴
CECédula de Extranjería 🇨🇴
TITarjeta de Identidad 🇨🇴
PPPassport 🇨🇴
Init Transaction
Using your Private Merchant ID, call the Init Transaction endpoint with the token from the previous step. Kushki validates the token and returns a ticketNumber along with the transaction status.
You can optionally include a webhooks object in this request to receive real-time notifications — see the Webhook Notifications section below.
Response fields:
FieldDescription
ticketNumberUnique transaction identifier. Use it for status queries and voids.
statusInitial transaction status
detailsTransaction details, including keyResolution for Bre-B transfers
keyResolutionBre-B only — resolved recipient info (owner name, bank, account type)
Get Transaction Status
Call the Get Status endpoint using the ticketNumber as a path parameter to confirm the final result.
Possible statuses:
StatusMeaning
INITIALIZEDTransaction created but not yet processed
APPROVALTransfer completed successfully
DECLINEDTransfer was rejected
A transaction in INITIALIZED status can be voided using the Void endpoint.

Webhook Notifications#

Include the webhooks object in your Init Transaction request to receive real-time notifications:
{
  "webhooks": [
    {
      "events": ["approvedTransaction", "declinedTransaction"],
      "headers": [
        { "label": "Authorization", "value": "Bearer your-token" }
      ],
      "urls": [
        "https://merchant.example.com/webhooks/transfer-out"
      ]
    }
  ]
}
If you already have a Webhook configured in the Console, adding the webhooks object in the API request will trigger both channels simultaneously.

Wallet Balance#

Before initiating disbursements, you can check your current Kushki wallet balance using the Balance for Payouts endpoint.
The response returns your currentBalance (in COP) and the balanceDate timestamp of the last update.

Authentication#

Each step uses a different credential:
StepHeaderKey type
Get Bank ListPublic-Merchant-IdPublic Key
Request a TokenPublic-Merchant-IdPublic Key
Init TransactionPrivate-Merchant-IdPrivate Key
Get StatusPrivate-Merchant-IdPrivate Key
VoidPrivate-Merchant-IdPrivate Key
Balance for PayoutsPrivate-Merchant-IdPrivate Key
Never expose your Private-Merchant-Id in client-side or frontend code. Token requests and bank list calls using the Public Key can be made from the frontend; all other calls must come from your backend.

Using the API#

🟢 Production
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Available Endpoints#

Get Bank List
Retrieve the list of available recipient banks. Required for ACH transfers. Use v2 for the best experience.
Get Bank List V2
Enhanced bank list endpoint. Recommended.
Request a Transfer Out Token
Tokenizes the recipient data and amount. Supports ACH and Bre-B modes. Token is valid for 30 minutes and single-use.
Init Transaction
Initiates the disbursement using the token. Returns a ticketNumber for status tracking.
Get Status
Retrieves the current status of a Transfer Out transaction using its ticketNumber.
Void a Transaction
Cancels an INITIALIZED transfer before it is processed.
Balance for Payouts
Returns the current available balance in your Kushki disbursement wallet.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:04:31
Previous
Get Status
Next
Get Bank List
Built with