> For the complete documentation index, see [llms.txt](https://docs.pagsmile.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pagsmile.com/reference/remittance-api/business/payment/create-beneficiary.md).

# Create Beneficiary

Creates a reusable payment beneficiary and validates the destination account details required by the selected payment route.

**Endpoint**

`POST /remittance/payment/create-beneficiary`

**Sandbox base URL:** `https://rem-api-sandbox.pagsmile.com`\
**Content-Type:** `application/json; charset=UTF-8`

The request uses the standard [Remittance API request envelope](https://docs.pagsmile.com/remittance-api/common). The fields below describe the decrypted `biz_data` object.

{% hint style="info" %}
**Requirement:** `M` = Mandatory, `O` = Optional, and `C` = Conditional. A conditional field is mandatory only when the condition stated in its description applies.
{% endhint %}

{% hint style="warning" %}
Encrypt `biz_data`, encrypt the AES key into `random_key`, and sign the request according to the Common request specification.
{% endhint %}

**Request body**

**Decrypted `biz_data` fields**

| Field                       | Type    | Requirement | Description                                                                                                                                                                                               |
| --------------------------- | ------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `merchant_id`               | long    | M           | Pagsmile-assigned unique identifier of the merchant.                                                                                                                                                      |
| `bank_country`              | string  | M           | Two-letter ISO 3166-1 alpha-2 code of the country where the bank account is held.                                                                                                                         |
| `receive_currency`          | string  | M           | Three-letter ISO 4217 code of the currency credited to the recipient.                                                                                                                                     |
| `payment_type`              | integer | M           | <p>Payment route used to deliver funds to the recipient.<br>See <a href="https://docs.pagsmile.com/reference/remittance-api/data/dictionary-item/payment-type">Payment Type</a> for supported values.</p> |
| `payment_rail`              | string  | M           | <p>Payment rail used to route the beneficiary payment.<br>Supported values:<br><code>DEFAULT</code><br><code>SPI\_PIX</code><br><code>SPI\_ISPB</code></p>                                                |
| `account_type`              | integer | M           | <p>Type of destination bank account.<br>See <a href="https://docs.pagsmile.com/reference/remittance-api/data/dictionary-item/account-type">Account Type</a> for supported values.</p>                     |
| `is_withdrawal_beneficiary` | boolean | M           | <p>Indicates whether the beneficiary can be used for withdrawal orders.<br>Default: <code>false</code>.</p>                                                                                               |
| `account_name`              | string  | O           | Name registered on the account.                                                                                                                                                                           |
| `payee_type`                | integer | M           | <p>Classification of the payee or beneficiary.<br>See <a href="https://docs.pagsmile.com/reference/remittance-api/data/dictionary-item/payee-type">Payee Type</a> for supported values.</p>               |
| `payee_values`              | object  | M           | Country- and payment-route-specific beneficiary account details.                                                                                                                                          |
| `remark`                    | string  | O           | Optional note supplied by the merchant for operational review and reconciliation.                                                                                                                         |

**Plaintext `biz_data` example**

{% hint style="info" %}
This example includes mandatory fields and representative optional or conditional fields. Submit fields marked `C` only when the condition in the field description applies.
{% endhint %}

```json
{
  "merchant_id": 100398,
  "bank_country": "BR",
  "receive_currency": "BRL",
  "payment_type": 2,
  "payment_rail": "SPI_ISPB",
  "account_type": 1,
  "is_withdrawal_beneficiary": false,
  "account_name": "Example ISPB Beneficiary",
  "payee_type": 1,
  "payee_values": {
    "accountNumber": "123456789",
    "brAccountType": "CACC",
    "ispb": "12345678",
    "branchCode": "0001",
    "beneficiaryCnpj": "12345678000195"
  },
  "remark": "Example remark"
}
```

**Request example**

```bash
curl --request POST \
  --url https://rem-api-sandbox.pagsmile.com/remittance/payment/create-beneficiary \
  --header 'Content-Type: application/json; charset=UTF-8' \
  --data '{
    "partner_id": "<your_partner_id>",
    "app_id": "<your_app_id>",
    "timestamp": "2026-07-20 10:30:00",
    "version": "2.0",
    "language": "en",
    "random_key": "<RSA-encrypted AES key>",
    "request_id": "<globally_unique_request_id>",
    "sign_type": "RSA",
    "biz_data": "<AES-encrypted biz_data>"
  }'
```

{% hint style="info" %}
Use the `partner_id` and `app_id` assigned to your integration. The values above are placeholders.
{% endhint %}

**Response**

{% tabs %}
{% tab title="Success" %}
The `data` field in the response envelope is AES-encrypted. Decrypt `random_key` with your RSA private key, then use the resulting AES key to decrypt `data`. See [Security](https://docs.pagsmile.com/remittance-api/security) for implementation details.

**Encrypted response example**

```json
{
  "code": "10000",
  "msg": "Success",
  "data": "<AES-encrypted response data>",
  "random_key": "<RSA-encrypted AES key>",
  "sign_type": "RSA",
  "app_id": "2017051914172236111"
}
```

**Decrypted `data` example**

```json
{
  "beneficiary_id": 100001
}
```

{% endtab %}

{% tab title="Invalid signature" %}

```json
{
  "code": "40002",
  "msg": "Business Failed",
  "sub_code": "invalid-signature",
  "sub_msg": "invalid signature"
}
```

{% endtab %}
{% endtabs %}

**Response data fields**

| Field            | Type | Requirement | Description                                                     |
| ---------------- | ---- | ----------- | --------------------------------------------------------------- |
| `beneficiary_id` | long | O           | Pagsmile-assigned unique identifier of the payment beneficiary. |

**Related APIs**

* [Create Payment Order](https://docs.pagsmile.com/remittance-api/business/payment/create-payment-order)
* [Delete Beneficiary](https://docs.pagsmile.com/remittance-api/business/payment/delete-beneficiary)
* [Payment Result Notification](https://docs.pagsmile.com/remittance-api/business/payment/payment-result-notification)
* [Query Beneficiary Detail](https://docs.pagsmile.com/remittance-api/business/payment/query-beneficiary-detail)
* [Query Payment Fields](https://docs.pagsmile.com/remittance-api/business/payment/query-payment-fields)
* [Query Payment Orders](https://docs.pagsmile.com/remittance-api/business/payment/query-payment-orders)
* [Update Beneficiary](https://docs.pagsmile.com/remittance-api/business/payment/update-beneficiary)
