> ## Documentation Index
> Fetch the complete documentation index at: https://public-openfx.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# COP payout integration guide

> Pay a Colombian bank account or Bre-B key in COP: register the account or key, then meet the memo and limit rules.

Pay a Colombian recipient in Colombian pesos (<span class="ofx-enum">COP</span>), to a bank account or a Bre-B key.

For the general flow, see [Payout lifecycle](/v3/payouts). The quote, confirm, and webhook steps are the same as for EUR, and so is the fee model. [Supported payout currencies](/v3/payouts#supported-payout-currencies) compares every payout currency side by side.

## Before you start

* Your organization must be enabled for COP. Until it is, a request in it fails with `403` <span class="ofx-enum">PAYOUT\_CURRENCY\_NOT\_ENABLED</span>.
* The recipient's account needs the Colombian-peso receiving capability, <span class="ofx-enum">ACTIVE</span> before you pay. [Capabilities](/v3/capabilities#the-capability-catalog) lists the id, and [Be paid in Colombian pesos](/v3/capabilities#be-paid-in-colombian-pesos) lists the identity the recipient owes.
* COP has no sending capability. Don't send a `sender` on a quote or payout, or it fails with `422` <span class="ofx-enum">SENDER\_NOT\_SUPPORTED</span>.
* Every `POST` needs an `Idempotency-Key` header. See [Idempotency](/v3/idempotency#payments-endpoints).

## Register the bank account or Bre-B key

A Colombian recipient can be paid in two ways, and the address you register decides which. The recipient owes a nationality and an identity document, or for an organization a NIT. See [Be paid in Colombian pesos](/v3/capabilities#be-paid-in-colombian-pesos).

<Tabs>
  <Tab title="Bank account">
    Register the account with `routingFamily` <span class="ofx-enum">CO\_LOCAL</span>, the four-digit `bankCode`, the `accountNumber`, and the `bankAccountType`. The payout goes over <span class="ofx-enum">CO\_ACH</span>. OpenFX decides whether it settles the same day or in the next clearing batch, and you can't choose.

    The `bankAccountType` is checked against the kinds the bank accepts, and a kind it doesn't accept is rejected when you create the address. No name check runs, so `verifications[]` stays empty.

    ```bash cURL theme={"theme":{"light":"poimandres","dark":"poimandres"}}
    curl -X POST https://api.openfx.com/v3/payments/payout-addresses \
      -H "Authorization: Bearer $OPENFX_JWT" \
      -H "X-Request-Signature: $OPENFX_SIGNATURE" \
      -H "Idempotency-Key: $(uuidgen)" \
      -H "Content-Type: application/json" \
      -d '{
        "payoutAddressType": "BANK_ACCOUNT",
        "accountId": "acc_BMY3UenpGBn8ZQ8hio4BgE",
        "bankAccount": {
          "routingFamily": "CO_LOCAL",
          "bankCode": "1007",
          "accountNumber": "24512345678",
          "bankAccountType": "SAVINGS"
        }
      }'
    ```
  </Tab>

  <Tab title="Bre-B key">
    Register the key with `routingFamily` <span class="ofx-enum">CO\_BREB</span> and the `brebKey`, written exactly as the account holder gave it: a mobile number, an email address, an identity document number, or a handle with its leading `@`. You don't say which kind it is. The payout goes over <span class="ofx-enum">BREB</span>, Colombia's instant transfer system.

    A key lookup (<span class="ofx-enum">BREB\_KEY\_LOOKUP</span>) runs while you create the address and compares the holder the key is registered to with the account holder's name. Only a <span class="ofx-enum">NO\_MATCH</span> result rejects the address. A lookup that can't complete leaves it payable.

    Each <span class="ofx-enum">BREB</span> payout is capped at about COP 12,110,000. A larger `receiveAmount` is refused when the payout is priced, with `422` <span class="ofx-enum">AMOUNT\_OUT\_OF\_RANGE</span>. `error.details` carries the exact bound.

    ```bash cURL theme={"theme":{"light":"poimandres","dark":"poimandres"}}
    curl -X POST https://api.openfx.com/v3/payments/payout-addresses \
      -H "Authorization: Bearer $OPENFX_JWT" \
      -H "X-Request-Signature: $OPENFX_SIGNATURE" \
      -H "Idempotency-Key: $(uuidgen)" \
      -H "Content-Type: application/json" \
      -d '{
        "payoutAddressType": "BANK_ACCOUNT",
        "accountId": "acc_BMY3UenpGBn8ZQ8hio4BgE",
        "bankAccount": { "routingFamily": "CO_BREB", "brebKey": "@camilarestrepo" }
      }'
    ```
  </Tab>
</Tabs>

## Memos

On <span class="ofx-enum">CO\_ACH</span> and <span class="ofx-enum">BREB</span>, a `receiverMemo` is at most 40 letters, digits, and spaces. A memo that is too long or holds any other character fails with `400` <span class="ofx-enum">RECEIVER\_MEMO\_INVALID</span>. OpenFX never truncates it.

## Track settlement

[Trace a payout with the receiving bank](/v3/payouts#trace-a-payout-with-the-receiving-bank) lists the `settlementTraceId` key for <span class="ofx-enum">CO\_ACH</span> and <span class="ofx-enum">BREB</span>.

## Common mistakes

* **Naming a `sender`.** COP has no sending capability. Remove `sender` from the quote and the payout.
* **Sending `purpose`.** Only AED takes one.
* **Paying a Bre-B recipient more than the cap.** A `receiveAmount` above about COP 12,110,000 fails with `422` <span class="ofx-enum">AMOUNT\_OUT\_OF\_RANGE</span>.

## What's next

<CardGroup cols={2}>
  <Card title="Payout lifecycle" icon="https://public-assets.openfx.com/docs/icons/withdrawals.svg" href="/v3/payouts">
    The general payout flow.
  </Card>

  <Card title="Capabilities" icon="https://public-assets.openfx.com/docs/icons/capabilities.svg" href="/v3/capabilities#the-capability-catalog">
    The receiving capability and identity each currency needs.
  </Card>

  <Card title="EUR payout integration guide" icon="https://public-assets.openfx.com/currencies/EUR.svg" href="/v3/eur-payout-integration">
    Paying euro accounts over SEPA or SWIFT.
  </Card>

  <Card title="MXN payout integration guide" icon="https://public-assets.openfx.com/currencies/MXN.svg" href="/v3/mxn-payout-integration">
    Paying Mexican bank accounts over SPEI.
  </Card>

  <Card title="AED payout integration guide" icon="https://public-assets.openfx.com/currencies/AED.svg" href="/v3/aed-payout-integration">
    Paying UAE bank accounts by IBAN.
  </Card>

  <Card title="Payment Webhooks" icon="https://public-assets.openfx.com/docs/icons/webhooks-setup.svg" href="/v3/webhooks/payments/payouts-webhooks/payout-created">
    Every payout and address event.
  </Card>
</CardGroup>
