1. Colombia
🇺🇸 English
  • 🇺🇸 English
  • 🇪🇸 Español
  • 🇨🇳 中文(简体)
  • Cobre Intro
    • Welcome
    • Get started
    • Connect Cobre's Documentation to AI
    • Products
      • Local Payments
        • Local Payments with Cobre
        • Payouts
          • Colombia
            • Money Movements with Bre-B
            • Money Movements with Cobre Fast Pay
          • Mexico
            • Money Movements with CLABEs and SPEI Cards
          • United States
            • Money Movements with Fedwire
          • Multi-region
            • Money Movements Scheduler
        • Payins
          • Colombia
            • Checkout
            • Request to Pay (R2P)
            • Direct Debit with Nequi
            • Static Bre-B Keys
            • Transfer-In
          • México
            • Request to Pay (R2P)
            • CLABE-backed Virtual Balances Accounts (Cobre Balances)
            • Virtual CLABEs
          • United States
            • Fedwire Payins at Cobre
        • Other feaures
          • Bulk Money Movements
          • Enabling Approval Workflows (Maker–Checker)
      • Cross Border Payments
        • Cross Border Payments with Cobre
      • Stablecoins
        • Global Payouts in Stablecoins
      • Connect
        • Connect bank accounts with Cobre
    • Other features
      • Account Verification
      • Notifications and subscriptions
      • Security at Cobre
      • Performance and throughput
    • Using Cobre
      • Bre-B Payouts with Payment Instruments of Your Ecosystem
      • Cobre for Lenders
      • Integrating Cobre from ERPs
  • Portal
    • Introduction & Quick Start
    • Authentication in Portal
    • Troubleshooting & Support
    • Movements
      • Approval Process (Maker-Checker)
      • Local Money Movement
      • Unitary Payment Initiation
      • Bulk Money Movement Initiation
      • Cross-Border Money Movements
      • Scheduler
      • Payment Links
    • Transactions
      • Transactions
    • Accounts
      • Account and Balance Management
      • Account References
        • Virtual CLABEs
        • Transfer Accounts (Transfer-In)
    • Counterparties
      • Counterparties
    • Reports
      • Reports & Reconciliation
    • Settings
      • Users and Roles Management
      • Security and Control
    • Developers
      • Subscription management
  • Developers
    • API Guides
      • Quick Start
      • Authentication
      • Cobre Balances
        • Managing Virtual Balance Accounts (Cobre Balances)
        • Account Linkeage
      • Connect Accounts
        • Managing Connect Accounts
      • Counterparties
        • Managing Counterparties
      • Local Payments
        • Money Movement
        • Payouts
          • Colombia
            • Fast Pay & ACH
            • Bre-B
          • Mexico
            • SPEI
          • United States
            • Fedwire
          • Global
            • Global payouts in stable
          • Cross-Region
            • Bulk Money Movements Approval
            • Money Movement Scheduler
            • Bulk Money Movements
        • Payins
          • Colombia
            • Cobre Keys with Bre-B
            • Checkout
            • Direct Link
            • Direct Debit
            • Transfer-In
            • Processing Refunds in Colombia
          • Mexico
            • Account Reference – Virtual CLABEs
            • Direct Link
            • Processing Refunds in Mexico
          • United States
            • Fedwire Payins
      • Cross Border Payments
        • Cross Border Payments
        • Create Fx Quotes
        • Create a Cross Boder Money Movement
        • Fund your global Cobre Balance
      • Cross Features
        • Account Verification
        • Reconciliation with Cobre Reports in Colombia
        • Reports
        • Report Scheduler
        • Evidence API
        • Notifications & Subscriptions
        • FX Alerts
      • Error Handling
        • Error Dictionary
      • Testing
        • General Testing
        • Testing Cases
        • Testing PSE and Bancolombia
      • Certification
        • Certification Process
        • Questionnaire
    • API Explorer
      • Build with AI
      • Authentication API
        • Authentication
      • Accounts
        • Create or Connect an Account
        • Obtain all Accounts
        • Obtain one Account
        • Update an Account
        • Close a Cobre Balance
        • Obtain one Account Transactions
        • Obtain one Transaction
        • Obtain all Transactions
        • Obtain Account Daily Balance History
        • Assign or Change Primary Account
        • Unlinking Primary Account
      • Account Verifications
        • Create an Account Verification
        • Obtain one Account Verification
        • Obtain all Account Verifications
      • Account References
        • Create an Account Reference
        • List one Account Reference
        • List all Account References
        • Delete an Account Reference
        • Generate a Certificate for your Account Reference
      • Cobre Keys
        • Create a Key
        • Obtain all Keys
        • Obtain one Key
        • Cancel a Key
        • Block or Reactivate Keys
      • Counterparties
        • Account Debit Registration
          • Register a Counterparty for Direct Debit
          • Obtain all Registrations
          • Obtain one Registration
        • Create a Counterparty
        • Obtain one Counterparty
        • Obtain all Counterparties
        • Delete a Counterparty
      • Money Movements
        • Create a Money Movement
        • Obtain one Money Movement
        • Obtain all Money Movements
        • Return a Money Movement
      • Money movement Approvals
        • Approve a Money Movement
        • List all Money Movement Approvals
      • Money Movement Scheduler
        • Create a Money Movement Scheduler
        • List all Money Movement Schedulers
        • Cancel an Active Scheduler
      • Bulk Money Movement
        • Create a Bulk Money Movement
        • List all Bulk Money Movements
        • List one Bulk Money Movement
      • Bulk Money Movement Approvals
        • Bulk Money Movements Decision
      • Cross Border
        • Create a FX Quote
        • Obtain one FX Quote
        • Obtain all the FX Quotes
        • Create a Cross Border Money Movement
        • Obtain one Cross Border Money Movement
        • Obtain all the Cross Border Money Movements
      • Checkout
        • Create a Checkout
        • Obtain one Checkout
        • Obtain all Checkouts
        • Desactivate a Checkout
      • Evidence API
        • Evidence Requests
          • Obtain Evidence Request
          • Search Evidence Requests
        • Evidence Documents
          • Generate Upload Links
          • Generate Download Link
        • Evidence Information
          • Submit Evidence Information
      • Reports
        • Create a Report
        • Obtain all Reports
        • Generate Download Link for Selected Reports
        • Create a Cobre Balance Statement
      • Report Scheduler
        • Create a Report Scheduler
        • Obtain all Reports Schedulers
        • Delete a Report Scheduler
      • Notifications & Subscriptions
        • Subscribe to Events
        • Obtain all Subscriptions
        • Delete a Subscription
        • List all Available Events
      • Alerts
        • Create Alert
        • Obtain All Alerts
        • Obtain One Alert
        • Deactivate An Alert
    • Platform Catalogs
      • Colombian Bank Codes
      • Mexican Bank Codes
      • Account Providers
      • Transaction Types
      • Money Movement Statuses
    • Testing APIs
      • Create a Transaction Adjustment
      • Change a Money Movement Status
      • Transaction Adjustment (QA)
      • Change Money Movement Status (QA)
    • Reports Layout
      • Money Movements Layout
        • All Money Movements (CSV)
        • All Money Movements (JSON)
        • SPEI Money Movements (CSV)
        • LEGACY Money Movements (CSV)
      • Transactions Layout
        • All Transactions (CSV)
        • All Transactions (JSON)
        • Virtual Balance Account (Cobre Balance) Statement (PDF)
      • Counterparties Layout
        • All Counterparties (CSV)
      • Multicash Layout
        • Multicash Header (TXT)
        • Multicash Detail (TXT)
    • Notifications Layout
      • Account Events
        • Account Balance Debit
        • Account Balance Credit
      • Cobre Keys
        • Cobre Keys
      • Counterparties
        • Counterparties
      • Money Movement
        • Money Movement
      • Bulk Money Movement
        • Bulk Money Movement
      • Cross Border Money Movement
        • Cross Border Money Movement
      • Evidence Requests
        • Evidence Requests
      • Reports
        • Reports
      • Alerts
        • FX Alerts
      • Account References
        • Account References
  • Schemas
    • Counterparties
      • Colombia
        • PayOut
          • Counterparty | Create Metadata Type Cobre Balance (CO)
          • Counterparty | Response Metadata Type Cobre Balance (CO)
          • Counterparty | Create Metadata Type Breb Key (CO)
          • Counterparty | Response Metadata Type Breb Key (CO)
          • Counterparty | Create Metadata Type QR (CO)
          • Counterparty | Response Metadata Type QR (CO)
          • Counterparty | Create Metadata Type CC (CO)
          • Counterparty | Response Metadata Type CC (CO)
          • Counterparty | Create Metadata Type CH (CO)
          • Counterparty | Response Metadata Type CH (CO)
          • Counterparty | Create Metadata Type DP (CO)
          • Counterparty | Response Metadata Type DP (CO)
        • PayIn
          • Counterparty | Response Metadata Type r2p (CO)
          • Counterparty | Create Metadata Type r2p (CO)
          • Counterparty | Create Metadata Type r2p Breb (CO)
          • Counterparty | Response Metadata Type r2p Breb (CO)
        • Secondary Counterparty
          • Secondary Counterparty Create Request
          • Secondary Counterparty Create Response (CO)
          • Secondary Counterparty Create Metadata Type NP (CO)
          • Secondary Counterparty Response Metadata Type NP (CO)
          • Secondary Counterparty Request Metadata Type LE
          • Secondary Counterparty Response Metadata Type LE (CO)
        • Direct Debit
          • Direct Debit Registration | Create
          • Direct Debit Registration | Response
          • Direct Debit Registration | List All Items
        • Counterparty | Create Request (CO)
        • Counterparty | Create Response (CO)
      • Mexico
        • PayOut
          • Counterparty | Create Metadata Type Clabe (MX)
          • Counterparty | Response Metadata Type Clabe (MX)
          • Counterparty | Create Metadata Type SPEI Card (MX)
          • Counterparty | Response Metadata Type SPEI Card (MX)
        • PayIn
          • Counterparty | Create Metadata Type r2p (MX)
          • Counterparty | Response Metadata Type r2p (MX)
        • Counterparty | Create Response (MX)
        • Counterparty | Create Request (MX)
        • Counterparty | Money Movement Return (MX)
      • Global
        • Counterparty | Global CP Request
        • Counterparty | Global Deposit NP request
        • Counterparty | Global Deposit NP response
        • Counterparty | Global Deposit LE request
        • Counterparty | Global Deposit LE response
        • Counterparty | Global CP Response
      • USA
        • Counterparty | Create Request (USA)
        • Counterparty | Create Response (USA)
        • Request Medatata Business
        • Response Medatata Business
        • Request Medatata Individual
        • Response Medatata Individual
      • Counterparty | List All Items
    • Transactions
      • Global
        • Transaction | Debit Cross Border
        • Transaction | Credit Cross Border
      • Colombia
        • Debit
          • Transaction | Debit FI (CO) (col_debit)
          • Transaction | Debit Cobre Balance (CO)
          • Transaction | Debit Breb (CO) (breb_debit)
        • Credit
          • Transaction | Credit Direct Debit (CO) (dd_credit)
          • Transaction | Rejected Breb (breb_rejected)
          • Transaction | Credit Top Up (CO) (col_top_up_credit)
          • Transaction | Credit FI (CO) (col_credit)
          • Transaction | Credit Cobre Balance (CO) (col_cb_credit)
          • Transaction | Credit r2p (r2p_credit)
          • Transaction | Credit Breb (CO) (breb_credit)
          • Transaction | Credit r2p Breb (CO) (r2p_breb_credit)
        • Transaction | Connect Obtain (CO)
        • Transaction | Cobre Balance Obtain (CO)
      • Mexico
        • Debit
          • Transaction | Debit FI (MX) (mex_debit)
          • Transaction | Debit SPEI (MX) (spei_debit)
          • Transaction | Debit Internal SPEI (MX)
        • Credit
          • Transaction | Credit FI (MX)
          • Transaction | Credit SPEI (MX)
          • Transaction | Credit Internal SPEI (MX)
        • Transaction | Connect Obtain (MX)
        • Transaction | Cobre Balance Obtain (MX)
        • Transaction | Return SPEI (MX)
      • Transactions | Connect List All Items
      • Transaction | Debit Misc
      • Transaction | Credit Misc
      • Transaction | Adjustment Debit
      • Transaction | Adjustment Credit
      • Transactions | Cobre Balance List All Items
    • Authentication
      • Authentication | Request
      • Authentication | Response
    • Cobre Keys
      • Colombia
        • Cobre Key | Create Request
        • Cobre Key | Create Response
        • Cobre Key | Obtain Response
        • Cobre Key | Reactive Request
    • Money Movements
      • Approvals
        • Money Movement Approvals | Create Request
        • Money Movement Approvals | Create Response
        • Money Movement Approvals | List All Items
      • Mexico
        • PayOut
          • Money Movement | Create Metadata Type SPEI
          • Money Movement | Response Metadata Type SPEI
        • Return
          • Money Movement Return | Create Request
          • Money Movement Return | Response Medatada Type SPEI
          • Money Movement Return | Create Response
        • PayIn
          • Money Movement Direct Link | Create Metadata Rail r2p SPEI
          • Money Movement Direct Link | Response Metadata Rail r2p SPEI
      • Colombia
        • PayOut
          • Money Movement | Create Metadata Type Fast Pay
          • Money Movement | Create Metadata Type Bre-B
          • Money Movement | Response Metadata Type Fast Pay
          • Money Movement | Create Metadata Type ACH
          • Money Movement | Response Metadata Type ACH
          • Money Movement | Response Metadata Type Bre-B
          • Money Movement | Response Metadata Type Bre-B Split
        • PayIn
          • Money Movement Direct Link | Response Metadata Rail PSE
          • Money Movement Direct Link | Create Metadata Rail PSE
          • Money Movement Direct Link | Response Metadata Rail r2p Breb
          • Money Movement Direct Link | Response Metadata Rail Bancolombia
          • Money Movement Direct Link | Response Metadata Rail Nequi
          • Money Movement Direct Link | Create Metadata Rail r2p Breb
        • Direct Debit
          • Money Movement Direct Debit | Create Metadata
          • Money Movement Direct Debit | Response Metadata
      • Global
        • Payout in stable
          • Money Movement | Create Metadata Type Global (stable)
          • Money Movement | Response Metadata Type Global (stable)
      • United States
        • PayOut
          • Money Movement | Create Metadata Type Fedwire
          • Money Movement | Response Metadata Type Fedwire
      • Money Movement | List All Items
      • Money Movement | Create Response
    • Accounts
      • Account Verification
        • Mexico
          • Account Verification Create Metadata Type mex_acc_details_1
          • Account Verification Response Metadata Type mex_acc_details_1
          • Account Verification Create Request
          • Account Verification Create Metadata Type mex_acc_ownership_1
          • Account Verification Response Metadata Type mex_acc_ownership_1
        • Colombia
          • Account Verification Response Metadata Type col_key_details_1
          • Account Verification Create Metadata Type col_key_details_1
          • Account Verification Create Metadata Type col_key_ownership_1
          • Account Verification Response Metadata Type col_key_ownership_1
          • Account Verificacion Response Metadata Type col__key_ownership_2
          • Account Verification Create Metadata Type col_key_ownership_2
        • Account Verification Create Response
        • Account Verifications List All Items
      • Account References
        • Account References Request
        • Account Reference Response
        • List all account references
        • Account Reference Certificate Generation Response
      • Daily Balance
        • Daily Balance Obtain Response
        • Daily Balance Historiy List All Items
      • Cobre Balances and Connect Accounts
        • Mexico
          • Cobre Balance | Create Metadata (MX)
          • Cobre Balance | Create Response (MX)
          • Connect Account | Create Metadata (MX)
          • Connect Account | Response Metadata (MX)
        • Colombia
          • Cobre Balance | Create Metadata (CO)
          • Cobre Balance | Create Response (CO)
          • Connect Account | Create Metadata (CO)
          • Connect Account | Response Metadata (CO)
        • Global
          • Cobre Balance | Create Metadata (Global)
          • Cobre Balance | Create Response (Global)
        • Cobre Balance | Create Request
        • Connect Account | Create Request
        • Accounts | List All Items
        • Account | Update Request
    • Bulk Money Movement
      • Bulk Money Movement | Obtain Response
      • Bulk Money Movement Decision | Create Request
      • Bulk Money Movements | List All Items
    • Money Movement Scheduler
      • Money Movement Scheduler | Create Request
      • Money Movement Scheduler | Create Response
      • Money Movement Scheduler | List All Items
    • Checkout
      • Colombia
        • Checkout | Create Request
        • Checkout | Create Response
        • Checkout | List All Items
        • Checkout | Delete
    • Notifications
      • Subscription | Create Request
      • Subscription | Create Response
      • Subscription | List All Items
      • Subscribable Events | List All Items
      • Subscribable Events | Metadata
    • Evidence Request
      • Schemas
        • Error
        • Evidence Request
        • Document Type
        • Evidence Id
        • Upload Intent
        • Evidence Request Id
        • Evidence Request Status
        • Information Type
        • Information
        • Evidence
        • Information Status
        • Document
        • Document Status
        • Headers
      • RequestBodies
        • Upload Intent Request
    • Cross Border
      • Cross Border Money Movement
        • Cross Border Money Movement Create Request
        • Cross Border Money Movement Create Response
        • Cross Border Money Movement Obtain Response
        • Cross Border Money Movements List All Items
      • FX Quote
        • FX Rolling Quote
          • FX Quote Static | Create Response
          • FX Quote Static | Cross Border Response
        • FX Static Quote
          • FX Quote Rolling | Create Response
          • FX Quote Rolling | Cross Border Response
        • FX Quote | Create Request
        • FX Quote | List All Items
        • FX Quote | Metadata Quote Tiers
        • FX Quote | Metadata Penalization Tier
        • FX Quote | Metadata Fees Breakdown
    • Reports
      • Download
        • Report Download Create Request
        • Report Download Create Response
      • Reports Create Request
      • Reports Create Response
      • Reports Create Metadata
      • Reports List All Items
      • Cobre Balance Statement Request
      • Cobre Balance Statement Response
    • Error Model
      • Error Model
    • Report Scheduler
      • Report Schedulers | Create Request
      • Report Schedulers | Delete Response
    • Alerts
      • Create Alert
      • Alert Object
      • List All Alerts
      • Alert | Metadata Type fx_rate
  1. Colombia

Processing Refunds in Colombia

In Colombia there is no dedicated refund or return endpoint. Unlike Mexico — where a credit can be returned through the Return a Money Movement API (POST /money_movements_return) — refunding a Colombian payin means initiating a brand new payout with Create a Money Movement (POST /money_movements) that sends the funds back to the original payer.
This has one important consequence: to refund a payin you need the payer's account details, and most Colombian payin rails do not expose them. The only exception is Bre-B, whose credit transactions carry the sender's data, letting you build the refund without any extra lookup. Two Bre-B credit transaction types expose this sender data:
breb_credit — generated when funds are received through a static Cobre Key.
r2p_breb_credit — generated when funds are received through a Bre-B Direct Link or Checkout (Request to Pay over Bre-B). It carries the same sender fields plus a money_movement_id referencing the originating r2p_breb money movement.
This guide covers both scenarios:
1.
Bre-B payins — sender data travels in the transaction; refund directly from breb_credit or r2p_breb_credit.
2.
All other payins (PSE, Bancolombia, Nequi, Direct Debit) — no payer data is returned by the rail; you must obtain the counterparty details by other means before refunding.

Actions performed on a Refund#

A refund in Colombia is not a distinct object. It is a standard payout money_movement that you create back toward the original payer. Concretely, refunding requires:
ActionEndpointPurpose
Identify the original payinObtain one Transaction / Obtain one Account TransactionsRead the credit transaction you intend to refund and, for Bre-B, extract sender data from its metadata (breb_credit or r2p_breb_credit).
Register the payer as a counterpartyCreate a CounterpartyCreate a breb_key, cc, ch, or dp counterparty pointing back to the payer.
Send the refundCreate a Money MovementInitiate a Bre-B, Fast Pay, or ACH payout for the refund amount.
There is no refund movement type and no geo: col variant of /money_movements_return. Any attempt to call the return endpoint for a Colombian credit will not apply.

How to Get Started#

Before sending a refund#

1
You need a funded Cobre Balance in Colombia
The refund is a payout, so the source_id must reference a Virtual Balance (Cobre Balance) or a Connect Account with geo equal to col, with sufficient balance to cover the refund.
2
Identify the payin you are refunding
Retrieve the original credit transaction so you can confirm the amount, currency (cop), and — for Bre-B — read the sender details. A refund amount must never exceed the original credited amount.
3
Decide the refund rail
A refund toward a breb_key counterparty is sent over Bre-B. A refund toward a cc, ch, or dp counterparty is sent over Fast Pay (if the destination institution supports it) or ACH (if it does not).
4
Provide an idempotency header
The POST /money_movements endpoint requires the idempotency header (string, min length 9), valid for 24 hours. Use a deterministic key derived from the original transaction id so retries never double-refund.

Scenario 1 — Refunding a Bre-B payin#

When you receive funds through Bre-B, the resulting credit transaction includes the sender's account information in its metadata. This applies to both breb_credit (funds received through a static Cobre Key) and r2p_breb_credit (funds received through a Bre-B Direct Link or Checkout). This is everything you need to register the payer as a counterparty and send the funds back — no external lookup required.

Step 1 — Read the sender data from the credit transaction#

A breb_credit transaction (static Cobre Key payin) looks like this:
{
  "id": "trx_4c5cb9b93c355520646ff2d6b24076",
  "type": "breb_credit",
  "account_id": "acc_8fB1S8wlaF",
  "amount": 100000,
  "previous_balance": 0,
  "current_balance": 100000,
  "currency": "cop",
  "credit_debit_type": "credit",
  "transaction_date": "2026-06-10T20:11:56Z",
  "created_at": "2026-06-10T20:11:56Z",
  "metadata": {
    "sender_account_number": "78110264",
    "sender_account_type": "ch",
    "sender_bank_code": "1809",
    "sender_id": "1018983923",
    "sender_id_type": "cc",
    "sender_name": "Juan Pérez",
    "key_value": "@COBRECOMERCICB1QB6HQ",
    "description": "Payin Bre-B"
  }
}
An r2p_breb_credit transaction (Direct Link or Checkout payin) carries the same sender fields, plus a money_movement_id that references the r2p_breb money movement that generated the credit:
{
  "id": "trx_e340b2a53b5e1d64b25cfa27157f53",
  "type": "r2p_breb_credit",
  "amount": 100000,
  "previous_balance": 0,
  "current_balance": 100000,
  "currency": "cop",
  "credit_debit_type": "credit",
  "transaction_date": "2026-05-20T20:43:23Z",
  "created_at": "2026-05-20T20:43:23Z",
  "metadata": {
    "sender_account_number": "78110264",
    "sender_account_type": "ch",
    "sender_bank_code": "1809",
    "sender_id": "1018983923",
    "sender_id_type": "cc",
    "sender_name": "Juan Pérez",
    "key_value": "@CBI964MAQ",
    "description": "R2P Bre-B",
    "money_movement_id": "mm_InLDaOGhcHczoz"
  }
}
The metadata fields you will reuse are identical across both types:
Bre-B credit fieldMeaningUsed for
sender_nameName of the payer who sent the fundscounterparty_fullname
sender_idPayer's identification numbercounterparty_id_number
sender_id_typePayer's identification type (e.g. cc)counterparty_id_type
sender_account_numberPayer's account numberaccount_number
sender_account_typePayer's account type (ch, cc, dp)counterparty type
sender_bank_codePayer's bank codebeneficiary_institution
key_value in both transaction types is your receiving key (static for breb_credit, the dynamic key for r2p_breb_credit), not the payer's. For r2p_breb_credit you can also use money_movement_id to trace the refund back to the originating payin money movement.
The fastest refund path is registering the payer as a breb_key counterparty and refunding over Bre-B. If you do not have the payer's Bre-B key, register them instead as a cc, ch, or dp counterparty (using sender_account_type as the type) and refund over Fast Pay or ACH — see Scenario 2.

Step 2 — Register the payer as a counterparty#

If you intend to refund over Bre-B and you hold the payer's key, create a breb_key counterparty:
{
  "geo": "col",
  "type": "breb_key",
  "alias": "refund-juan-perez",
  "metadata": {
    "key_value": "@PAYERKEY123",
    "counterparty_email": "juan.perez@example.co",
    "counterparty_phone": "+573001112233"
  }
}
key_value is the only required metadata field for a breb_key counterparty. The response returns a counterparty id with the cp_ prefix.

Step 3 — Create the refund money movement#

Use the counterparty id as the destination_id, your Cobre Balance as the source_id, and the original credited amount (or a lower partial amount) as amount in cents.
{
  "amount": 100000,
  "source_id": "acc_8fB1S8wlaF",
  "destination_id": "cp_TRLlPDNQGZ",
  "metadata": {
    "description": "Refund trx_4c5cb9b93c"
  },
  "external_id": "refund_trx_4c5cb9b93c"
}
For a breb_key destination, the metadata is the Bre-B variant: description is required (max 40 characters) and is informative only. A successful call returns a money_movement with type: breb, geo: col, currency: cop, and status.state: initiated.
Set external_id to a value derived from the original transaction so the refund is traceable back to the payin in reports and reconciliation.

Scenario 2 — Refunding any other Colombian payin (PSE, Bancolombia, Nequi, Direct Debit, Checkout, Transfer-In)#

Payin rails external to Bre-B do not return the payer's account details in the credit transaction. There is no sender_account_number, sender_bank_code, or sender_name to read. To refund, you must obtain the payer's account information through your own channel (for example, from the order record, customer support, or by asking the payer) and then register them as a counterparty.

Step 1 — Obtain the payer's account details#

Because the rail does not supply them, you are responsible for collecting:
The payer's full name and identification (counterparty_id_type, counterparty_id_number).
The destination bank (beneficiary_institution, from the Colombian Bank Codes catalog).
The destination account_number and account type (cc, ch, or dp).

Step 2 — Register the payer as a cc, ch, or dp counterparty#

{
  "geo": "col",
  "type": "cc",
  "alias": "refund-order-9931",
  "metadata": {
    "counterparty_fullname": "Juan Pérez",
    "beneficiary_institution": "1007",
    "account_number": "051304546110",
    "counterparty_id_type": "cc",
    "counterparty_id_number": "1018983923"
  }
}
For a cc/ch/dp counterparty, counterparty_fullname, beneficiary_institution, account_number, counterparty_id_type, and counterparty_id_number are all required.

Step 3 — Create the refund money movement over Fast Pay or ACH#

{
  "amount": 50000,
  "source_id": "acc_8fB1S8wlaF",
  "destination_id": "cp_KL1CfGa9iO",
  "metadata": {
    "description": "Refund order 9931"
  },
  "external_id": "refund_order_9931"
}
For a cc/ch/dp destination the metadata is the Fast Pay variant when the destination institution supports Fast Pay, otherwise the ACH variant. In both, description is required (max 40 characters). The response returns type: fast_pay or type: ach, geo: col, currency: cop.

What to expect after sending a refund usign the money movement API#

1.
Track the refund through Webhooks. Subscribe to money movement events to follow the refund's lifecycle (initiated → processing → completed, or failed/rejected). See Notifications & Subscriptions.
2.
A debit transaction is generated. When the refund settles, a debit transaction appears in the source Cobre Balance (breb_debit for Bre-B refunds, col_debit for Fast Pay/ACH refunds), offsetting the original credit.
3.
Reconcile using external_id. Because the refund is an independent money movement, link it back to the original payin through the external_id you set, and filter via GET /money_movements?external_id=... or in Reports.
4.
Refunds are not reversible. Once completed, a refund money movement cannot be undone through the API; a correction would itself be a new money movement.
Modified at 2026-06-11 19:55:08
Previous
Transfer-In
Next
Account Reference – Virtual CLABEs
Built with