> ## 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.

# MXN payout integration guide

> Pay a Mexican bank account in MXN over SPEI: register the CLABE, then meet the memo and ownership-check rules.

Pay a bank account in Mexican pesos (<span class="ofx-enum">MXN</span>).

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 MXN. 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 Mexican-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 Mexican pesos](/v3/capabilities#be-paid-in-mexican-pesos) lists the identity the recipient owes.
* MXN 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

A Mexican bank account is identified by its CLABE and paid over <span class="ofx-enum">SPEI</span>, which settles each transfer individually in real time. The recipient owes an RFC or a CURP, or for an organization an RFC. See [Be paid in Mexican pesos](/v3/capabilities#be-paid-in-mexican-pesos).

Register the account with `routingFamily` <span class="ofx-enum">MX\_LOCAL</span> and the CLABE as `accountNumber`. Send `accountHolderName` only if the bank holds the account under a different name from the account's.

```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": "MX_LOCAL", "accountNumber": "012180001234567899" }
  }'
```

An ownership check (<span class="ofx-enum">SPEI\_ACCOUNT\_OWNERSHIP</span>) starts when you create the address. It resolves later, usually within minutes and only during Mexican banking hours. The address doesn't wait for it, so it can be <span class="ofx-enum">ACTIVE</span> while the check is still <span class="ofx-enum">PENDING</span>. Only a <span class="ofx-enum">NO\_MATCH</span> result rejects the address.

## Memos

On <span class="ofx-enum">SPEI</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

`settlementTraceId` on a <span class="ofx-enum">SPEI</span> payout has the key <span class="ofx-enum">TRACKING\_KEY</span>, the clave de rastreo that the receiving bank uses to find the transfer. [Trace a payout with the receiving bank](/v3/payouts#trace-a-payout-with-the-receiving-bank) lists the key for every rail.

## Common mistakes

* **Naming a `sender`.** MXN has no sending capability. Remove `sender` from the quote and the payout.
* **Sending `purpose`.** Only AED takes one.
* **Treating a pending ownership check as a block.** A payout can be created while <span class="ofx-enum">SPEI\_ACCOUNT\_OWNERSHIP</span> is still <span class="ofx-enum">PENDING</span>. A later <span class="ofx-enum">NO\_MATCH</span> still rejects the address.

## 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="COP payout integration guide" icon="https://public-assets.openfx.com/currencies/COP.svg" href="/v3/cop-payout-integration">
    Paying Colombian bank accounts and Bre-B keys.
  </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>
