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

# Create Payout

> Create a payout from the client's pool to a beneficiary's Indian bank account in INR. Returns the transaction in status CREATED. Processing continues asynchronously.

Creates a payout. Returns the transaction in status `CREATED`. Processing continues asynchronously.

Authenticate with the HMAC headers described in [Conventions and Authentication](https://guides.saber.money/api-reference/unified-transaction/conventions.md). Query and path parameters: none.

**X-Api-Key** `string` *required*

API key. Alias: `X-Client-Id`.

**X-Timestamp** `string` *required*

Unix time in seconds. Must be within 600 s of server time.

**X-Signature** `string` *required*

Hex HMAC-SHA256 of `X-Api-Key` + `X-Timestamp`, keyed with the API secret. Upper or lower case hex. Alias: `X-Secret-Key`.

**X-Request-Id** `string` *required*

Unique id per request, e.g. a UUID.

**Content-Type** `string` *required*

`application/json`

> [!WARNING]
>
> Do not send `X-User-Id` or `X-Source` on this endpoint.

## Body

**idempotency\_key** `string (UUID)` *required*

Non-zero UUID. Single use.

**client\_reference\_id** `string`

1 to 100 characters. Unique per client.

**from\_currency** `string` *required*

Crypto symbol, e.g. `USDT`. Case insensitive. No leading or trailing spaces. Must differ from `to_currency`.

**to\_currency** `string` *required*

`INR`

**from\_amount** `string (decimal)` *required*

Greater than 0, less than 10^18, at most 18 decimal places. Amount debited in `from_currency`.

**payment\_method** `string` *required*

`bank_transfer`. Case-sensitive.

**purpose\_code** `string`

1 to 100 characters.

**quote\_id** `string`

Not supported. Must be omitted. Sending it returns `402011`.

**sender** `object` *required*

Exactly one of `sender.id` or `sender.travel_rule_data`.

**properties**

**id** `string (UUID)`

A `sender_id` returned on an earlier transaction of this client. Conditional: send this or `travel_rule_data`.

**type** `string`

`INDIVIDUAL`. Required with `travel_rule_data`.

**travel\_rule\_data** `object`

Party details, see [Party details](#party-details-travel_rule_data). Conditional: send this or `id`.

**beneficiary** `object` *required*

Exactly one of `beneficiary.id` or `beneficiary.travel_rule_data`.

**properties**

**id** `string (UUID)`

A `beneficiary_id` returned on an earlier transaction of this client. May equal `sender.id`. Conditional: send this or `travel_rule_data`.

**type** `string`

`INDIVIDUAL`. Required with `travel_rule_data`.

**relationship** `string`

Beneficiary's relationship to the sender, e.g. `FAMILY`. 1 to 100 characters. Required unless `beneficiary.id` equals `sender.id`, where it defaults to `SELF`.

**travel\_rule\_data** `object`

Party details, see [Party details](#party-details-travel_rule_data). Conditional: send this or `id`.

**beneficiary\_instrument** `object` *required*

Exactly one of `beneficiary_instrument.id` or `beneficiary_instrument.bank_account`.

**properties**

**type** `string` *required*

`BANK_ACCOUNT`

**id** `string (UUID)`

A `beneficiary_instrument_id` returned on an earlier transaction. Must be approved and owned by the beneficiary. Not allowed when the beneficiary has no `proof_of_identification_number`. Conditional: send this or `bank_account`.

**bank\_account** `object`

Bank account details, see [Bank account](#bank-account-bank_account). Conditional: send this or `id`.

### Party details (`travel_rule_data`)

Fields of `sender.travel_rule_data` and `beneficiary.travel_rule_data`.

| Field | Type | Sender | Beneficiary | Rules |
| - | - | - | - | - |
| `first_name` | string | Required | Required | 2 to 128 characters, at least one letter |
| `last_name` | string | Required | Required | 2 to 128 characters, at least one letter |
| `proof_of_identification_number` | string | Required | Optional | 2 to 128 characters: letters, digits, hyphens and spaces. A beneficiary without it is accepted only for enabled clients (`403031`). |
| `proof_of_identification_type` | string | Optional | Optional | e.g. `PASSPORT` |
| `proof_of_identification_name` | string | Optional | Optional | |
| `proof_of_identification_validity` | string | Optional | Optional | `YYYY-MM-DD` |
| `nationality` | string | Required | Conditional | ISO 3166-1 alpha-3. Required for a beneficiary with `proof_of_identification_number`. For a beneficiary without it, `IND` if sent. |
| `date_of_birth` | string | Optional | Optional | `YYYY-MM-DD`, not in the future |
| `email` | string | Optional | Optional | Valid email, 4 to 60 characters. May be required for your client account (`400001`). |
| `phone` | string | Optional | Optional | E.164, e.g. `+919876543210`. May be required for your client account (`400001`). |
| `address` | object | Required | Required | |
| `address.line1` | string | Required | Required | 2 to 128 characters |
| `address.line2` | string | Optional | Optional | 2 to 128 characters |
| `address.city` | string | Optional | Optional | 2 to 128 characters, at least one letter |
| `address.state` | string | Optional | Optional | 2 to 128 characters |
| `address.postal_code` | string | Optional | Optional | 3 to 128 characters |
| `address.country_iso3` | string | Required | Required | ISO 3166-1 alpha-3 |

### Bank account (`bank_account`)

Fields of `beneficiary_instrument.bank_account`.

| Field | Type | Required | Rules |
| - | - | - | - |
| `country` | string | Yes | `IND` |
| `account_number` | string | Yes | 6 to 32 characters, no spaces |
| `bank_code` | string | Yes | IFSC: 11 upper-case characters: 4 letters, `0`, then 6 letters or digits |
| `account_holder_name` | string | Yes | Name on the account. Must match the beneficiary. |
| `account_type` | string | No | `SAVINGS` or `CURRENT` |
| `routing_type` | string | No | `IFSC` |
| `bank_name` | string | No | |
| `is_nre` | boolean | No | `true` declares an NRE account |

## Response

`201 Created`. `data` is the [transaction object](https://guides.saber.money/api-reference/unified-transaction/transaction-object.md).

## Status and error codes

| HTTP | Codes |
| - | - |
| 201 | Created |
| 400 | `400001`, `402001`, `402011`, `403005`, `403025`, `403031`, `414001`, `414003`, `414005`, `414006`, `414008`, `414009`, `414010`, `414011`, `414012`, `414013`, `414014`, `414017`, `414018`, `414019`, `414021`, `414022`, `414023` |
| 409 | `403004`, `403013`, `403014` |
| 401, 403, 404, 500 | Gateway and authentication codes, `499999` |

Full list in the [Error List](https://guides.saber.money/api-reference/unified-transaction/errors.md).

```bash cURL theme={null}
curl -X POST "https://<sandbox-host>/api/v2/wallet/transaction/unified/pool/sell" \
  -H "X-Api-Key: $API_KEY" \
  -H "X-Timestamp: $TIMESTAMP" \
  -H "X-Signature: $SIGNATURE" \
  -H "X-Request-Id: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "idempotency_key": "00000000-0000-4000-8000-000000000002",
  "client_reference_id": "order-12345",
  "from_currency": "USDT",
  "to_currency": "INR",
  "from_amount": "1",
  "payment_method": "bank_transfer",
  "purpose_code": "P1301",
  "sender": {
    "type": "INDIVIDUAL",
    "travel_rule_data": {
      "first_name": "Test",
      "last_name": "Sender",
      "nationality": "IND",
      "address": {
        "line1": "1 Test Street",
        "line2": "Test Area",
        "city": "Test City",
        "state": "Test State",
        "postal_code": "000000",
        "country_iso3": "ARE"
      },
      "proof_of_identification_number": "T0000000",
      "proof_of_identification_type": "PASSPORT",
      "date_of_birth": "1990-01-01",
      "email": "sender@example.com",
      "phone": "+910000000000"
    }
  },
  "beneficiary": {
    "type": "INDIVIDUAL",
    "relationship": "FAMILY",
    "travel_rule_data": {
      "first_name": "Test",
      "last_name": "Beneficiary",
      "nationality": "IND",
      "address": {
        "line1": "1 Test Street",
        "line2": "Test Area",
        "city": "Test City",
        "state": "Test State",
        "postal_code": "000000",
        "country_iso3": "IND"
      },
      "proof_of_identification_number": "T0000001",
      "proof_of_identification_type": "PASSPORT",
      "date_of_birth": "1990-01-01",
      "email": "beneficiary@example.com",
      "phone": "+910000000001"
    }
  },
  "beneficiary_instrument": {
    "type": "BANK_ACCOUNT",
    "bank_account": {
      "country": "IND",
      "account_number": "000012345678",
      "account_holder_name": "Test Beneficiary",
      "bank_name": "Test Bank",
      "bank_code": "TEST0000001",
      "account_type": "SAVINGS"
    }
  }
}'
```

```json 201 Created (sandbox, captured) theme={null}
{
  "success": true,
  "data": {
    "id": "00000000-0000-4000-8000-000000000001",
    "client_reference_id": "order-12345",
    "transaction_type": "POOL_SELL",
    "status": "CREATED",
    "reason_code": null,
    "reason_desc": null,
    "from_currency": "USDT",
    "to_currency": "INR",
    "from_amount": "1",
    "to_amount": null,
    "exchange_rate": null,
    "payment_method": "bank_transfer",
    "purpose_code": "P1301",
    "quote_id": null,
    "bank_transaction_id": null,
    "sender_id": null,
    "beneficiary_id": null,
    "beneficiary_instrument_id": null,
    "beneficiary_instrument_type": "BANK_ACCOUNT",
    "beneficiary_relationship": "FAMILY",
    "created_at": 1793024948016,
    "updated_at": 1793024948016
  }
}
```

```json 409 Duplicate key (sandbox, captured) theme={null}
{"success":false,"errors":[{"code":403013,"text":"idempotency key already used"}]}
```

```json 400 Field rule failed (sandbox, captured) theme={null}
{"success":false,"errors":[{"code":400001,"text":"missing or invalid parameters: beneficiary.travel_rule_data.nationality: must be IND for a beneficiary without a proof of identification"}]}
```

```json 400 Party check failed (sandbox, captured) theme={null}
{"success":false,"errors":[{"code":414011,"text":"beneficiary instrument country does not match the payout currency"}]}
```


## Related topics

- [Conventions and Authentication](https://guides.saber.money/api-reference/unified-transaction/conventions.md)
- [INR](https://guides.saber.money/unified/currencies/inr.md)
- [Error List](https://guides.saber.money/api-reference/unified-transaction/errors.md)
- [Overview](https://guides.saber.money/unified/overview.md)
- [Frequently Asked Questions](https://guides.saber.money/faq.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.