> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mesadepagos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payout

> Send outgoing payments through ACH, QR, or PIX.

The Payout module sends outgoing ACH payments, processes QR payments, and makes instant PIX payments to Brazil.

## Endpoints

| Name           | Method | Path                                             |
| -------------- | ------ | ------------------------------------------------ |
| ACH Payout     | `POST` | `/v2/transactions/payouts/bank`                  |
| ACH Payout v3  | `POST` | `/v3/transactions/payouts/bank`                  |
| Wallet Payouts | -      | <Badge color="yellow" stroke>Coming soon</Badge> |
| Crypto Payout  | `POST` | `/v2/transactions/payouts/crypto`                |
| PIX Payout     | `POST` | `/v2/transactions/payouts/pix`                   |
| QR Payout      | `POST` | `/v2/transactions/payouts/qr`                    |
| QR Validation  | `POST` | `/v2/transactions/payouts/validate/qr`           |
| Bank List      | `GET`  | `/v2/transactions/payouts/bank/banks`            |

## ACH Payout

ACH payouts are available for bank accounts in the following countries, with more coverage coming soon:

| Code | Country    | Availability                                     |
| ---- | ---------- | ------------------------------------------------ |
| `BO` | Bolivia    | Available                                        |
| `BR` | Brazil     | Available                                        |
| `CO` | Colombia   | Available                                        |
| `CL` | Chile      | Available                                        |
| `PE` | Peru       | Available                                        |
| `UY` | Uruguay    | <Badge color="yellow" stroke>Coming soon</Badge> |
| `CR` | Costa Rica | <Badge color="yellow" stroke>Coming soon</Badge> |
| `PY` | Paraguay   | <Badge color="yellow" stroke>Coming soon</Badge> |
| `PA` | Panama     | <Badge color="yellow" stroke>Coming soon</Badge> |
| `CN` | China      | <Badge color="yellow" stroke>Coming soon</Badge> |

### Bank rail expansion

Global bank payouts through ACH, Wire, SWIFT, and SEPA are documented in a separate module. Specific availability depends on the corridors enabled for each account.

<Card title="View global bank transfers" icon="building-columns" href="/en/global-bank-transfers">
  Review endpoints, corridors, fields, and examples for ACH, Wire, SWIFT, and SEPA.
</Card>

Use `GET /v2/transactions/payouts/rails` to retrieve current availability by currency, country, and rail.

For available countries, send the corresponding ISO alpha-2 code in `transaction.country`.

<Tabs>
  <Tab title="v2">
    ```http theme={null}
    POST /v2/transactions/payouts/bank
    ```

    In v2, send the account holder's full name in `transaction.destination_holder`. The `first_name` and `last_name` fields are optional.

    ```json theme={null}
    {
      "funding_source": "conversion",
      "external_reference": "550e8400-e29b-41d4-a716-446655440000",
      "asset_deposit": "USDC",
      "refund_address": "0x0000000000000000000000000000000000000000",
      "blockchain": "Polygon",
      "transaction": {
        "country": "BO",
        "entity_type": "individual",
        "amount": 100.5,
        "bank_code": "101",
        "description": "Supplier payment",
        "destination_account": "1234567890",
        "destination_holder": "Juan Pérez",
        "first_name": "Juan",
        "last_name": "Pérez",
        "document_type": "national_id",
        "destination_id_number": "1234567",
        "currency_type": "BOB"
      }
    }
    ```

    ### Response

    ```json theme={null}
    {
      "transaction_id": "550e8400-e29b-41d4-a716-446655440001",
      "external_reference": "550e8400-e29b-41d4-a716-446655440000",
      "deposit_address": "0x0000000000000000000000000000000000000000",
      "amount_deposit": "14.44",
      "transactions": [
        {
          "transaction_id": "550e8400-e29b-41d4-a716-446655440002",
          "status": "pending_transaction",
          "message": "Transaction created"
        }
      ]
    }
    ```
  </Tab>

  <Tab title="v3">
    ```http theme={null}
    POST /v3/transactions/payouts/bank
    ```

    In v3, `external_reference` is required and accepts a text reference defined by the partner; it does not need to be a UUID v4. `transaction.first_name` is always required. `transaction.last_name` is required when `transaction.entity_type` is `individual`, but may be omitted for a `company`; in that case, send the legal company name in `first_name`. The endpoint builds the full name internally from the provided fields. In addition, `transaction.currency_type` supports `BOB`, `USD`, `CLP`, and `PEN`.

    ```json theme={null}
    {
      "funding_source": "conversion",
      "external_reference": "ORDER-ACH-20260720-001",
      "asset_deposit": "USDC",
      "refund_address": "0x0000000000000000000000000000000000000000",
      "blockchain": "Polygon",
      "transaction": {
        "country": "BO",
        "entity_type": "individual",
        "amount": 100.5,
        "bank_code": "101",
        "description": "Supplier payment",
        "destination_account": "1234567890",
        "first_name": "Juan",
        "last_name": "Pérez",
        "document_type": "national_id",
        "destination_id_number": "1234567",
        "currency_type": "BOB"
      }
    }
    ```

    ### Response

    ```json theme={null}
    {
      "transaction_id": "550e8400-e29b-41d4-a716-446655440001",
      "external_reference": "ORDER-ACH-20260720-001",
      "deposit_address": "0x0000000000000000000000000000000000000000",
      "amount_deposit": "14.44",
      "transactions": [
        {
          "transaction_id": "550e8400-e29b-41d4-a716-446655440002",
          "status": "pending_transaction",
          "message": "Transaction created"
        }
      ]
    }
    ```
  </Tab>
</Tabs>

## Wallet Payouts <Badge color="yellow" stroke>Coming soon</Badge>

Wallet Payouts sends payouts directly to digital wallets available in each country.

<AccordionGroup>
  <Accordion title="Peru" icon="wallet">
    * <kbd>PREXPE</kbd>
    * <kbd>YAPE</kbd>
    * <kbd>LUQEA</kbd>
    * <kbd>DALE</kbd>
  </Accordion>

  <Accordion title="Colombia" icon="wallet" iconType="regular">
    * <kbd>DAVIPLATA</kbd>
    * <kbd>DING TECNIPAGOS SA</kbd>
    * <kbd>GIROS Y FINANZAS CF</kbd>
    * <kbd>IRIS</kbd>
    * <kbd>MOVII</kbd>
    * <kbd>NEQUI</kbd>
    * <kbd>PIBANK</kbd>
    * <kbd>POWWI</kbd>
    * <kbd>RAPPIPAY</kbd>
    * <kbd>UALÁ</kbd>
  </Accordion>
</AccordionGroup>

## PIX Payout

```http theme={null}
POST /v2/transactions/payouts/pix
```

This endpoint sends instant `BRL` payments to Brazil. The payout supports two funding modes:

* `balance`: sends the operation directly to the provider using the balance enabled for the partner.
* `conversion`: returns a crypto address and amount that must be funded before the PIX payment is executed.

### Request

```json theme={null}
{
  "funding_source": "conversion",
  "external_reference": "3c68c080-9f72-4fdd-a6f4-b4e59efa05f5",
  "asset_deposit": "USDC",
  "blockchain": "Polygon",
  "transaction": {
    "amount": 100.5,
    "description": "Brazil supplier payment",
    "first_name": "Joao",
    "last_name": "Silva",
    "document_type": "CPF",
    "document_number": "12345678909",
    "currency_type": "BRL"
  },
  "clavePix": {
    "Email": "joao.silva@example.com"
  }
}
```

`clavePix` must contain exactly one of these keys:

| Key        | Format                             |
| ---------- | ---------------------------------- |
| `Document` | 11-digit CPF or 14-digit CNPJ.     |
| `Email`    | Valid email address.               |
| `Phone`    | Phone number beginning with `+55`. |
| `Random`   | Random key in UUID format.         |
| `Commerce` | 14-digit CNPJ.                     |

<Tabs>
  <Tab title="Conversion funding">
    The response includes the crypto address and amount to deposit:

    ```json theme={null}
    {
      "transaction_id": "550e8400-e29b-41d4-a716-446655440020",
      "external_reference": "3c68c080-9f72-4fdd-a6f4-b4e59efa05f5",
      "deposit_address": "0x2222222222222222222222222222222222222222",
      "amount_deposit": "19.85"
    }
    ```

    Deposit exactly `amount_deposit` of the selected asset into
    `deposit_address` on the specified blockchain.
  </Tab>

  <Tab title="Balance funding">
    The response includes the payout identifier and its initial status:

    ```json theme={null}
    {
      "transaction_id": "550e8400-e29b-41d4-a716-446655440021",
      "external_reference": "9a84c1c5-0918-41cb-b163-e033d119f580",
      "payout_id": "123456789",
      "status": "PROCESSING"
    }
    ```

    This flow does not return `deposit_address` or `amount_deposit`.
  </Tab>
</Tabs>

Status changes are sent as `withdrawal_pix`. See [Webhooks](/en/webhooks) to configure the receiving endpoint.

## QR Payout

Use this endpoint to process a payout QR code.

```json theme={null}
{
  "asset_deposit": "USDC",
  "blockchain": "Polygon",
  "funding_source": "conversion",
  "image": "qr-text-or-image-payload",
  "external_reference": "ORDER-QR-1001",
  "amount": 100
}
```

### Response

```json theme={null}
{
  "external_reference": "ORDER-QR-1001",
  "amount_deposit": "14.44",
  "deposit_address": "0x0000000000000000000000000000000000000000",
  "transactions": {
    "transaction_id": "550e8400-e29b-41d4-a716-446655440002",
    "status": "pending_transaction",
    "message": "Payout QR processed successfully"
  }
}
```

## QR Validation

Use this endpoint to decode a base64 QR image and validate its information.

```json theme={null}
{
  "image": "iVBORw0KGgoAAAANSUhEUgAA..."
}
```

### Successful Response

```json theme={null}
{
  "code": 200,
  "message": "QR code scanned successfully",
  "details": {
    "titularDestino": "Juan Pérez",
    "cuentaDestino": "1234567890",
    "ciNitDestino": "1234567",
    "nombreBancoDestino": "Example Bank",
    "codigoBancoDestino": "101",
    "moneda": "BOB",
    "monto": 100.5,
    "glosa": "Supplier payment",
    "numeroReferencia": "123456789",
    "fechaVencimiento": "2026-05-13T23:59:59.000Z"
  }
}
```

### Response When the QR Cannot Be Processed

```json theme={null}
{
  "code": null,
  "message": "The provided QR code is invalid or could not be processed."
}
```

## Bank List

```http theme={null}
GET /v2/transactions/payouts/bank/banks?country=BO
```

### Query Parameters

| Field     | Type   | Required | Default | Description                                      |
| --------- | ------ | -------- | ------- | ------------------------------------------------ |
| `country` | string | No       | `BO`    | Country ISO alpha-2 code used to retrieve banks. |

```json theme={null}
{
  "banks": [
    {
      "code": "101",
      "name": "Example Bank"
    }
  ]
}
```
