> 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/material/create-material.md).

# Create Material

**Endpoint**

`POST /remittance/material/create-material`

**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**

<table><thead><tr><th width="190">Field</th><th width="128">Type</th><th width="128">Requirement</th><th>Description</th></tr></thead><tbody><tr><td><code>merchant_id</code></td><td>long</td><td>M</td><td>Pagsmile-assigned unique identifier of the merchant.</td></tr><tr><td><code>transaction_type</code></td><td>Integer</td><td>M</td><td>Business transaction type represented by the record.<br>See <a href="https://docs.pagsmile.com/reference/remittance-api/data/dictionary-item/transaction-type">Transaction Type</a> for supported values.</td></tr><tr><td><code>business_type</code></td><td>Integer</td><td>C</td><td>Business category represented by the material record and used for compliance review.<br>Required when <code>transaction_type</code> is <code>101</code> (collection).<br>Supported values:<br><code>10</code> — Goods trade<br><code>11</code> — Service trade<br><code>20</code> — Platform<br><code>21</code> — Independent platform</td></tr><tr><td><code>amount</code></td><td>string</td><td>M</td><td>Monetary amount of the transaction, expressed in the corresponding currency.</td></tr><tr><td><code>currency</code></td><td>string</td><td>M</td><td>Three-letter ISO 4217 code of the currency in which the material record values are denominated.</td></tr><tr><td><code>contract_no</code></td><td>string</td><td>C</td><td>Contract number shown in the supporting trade material. Required when <code>business_type</code> is <code>10</code> (goods trade) or <code>11</code> (service trade).</td></tr><tr><td><code>contract_date</code></td><td>string</td><td>C</td><td>Date of the supporting contract.<br>Format: <code>yyyy-MM-dd</code>. Required when <code>business_type</code> is <code>10</code> (goods trade) or <code>11</code> (service trade).</td></tr><tr><td><code>buyer_name</code></td><td>string</td><td>C</td><td>Legal name of the buyer shown in the supporting trade material. Required when <code>business_type</code> is <code>10</code> (goods trade) or <code>11</code> (service trade).</td></tr><tr><td><code>buyer_country</code></td><td>string</td><td>C</td><td>Two-letter ISO 3166-1 alpha-2 code of the buyer's country. Required when <code>business_type</code> is <code>10</code> (goods trade) or <code>11</code> (service trade).</td></tr><tr><td><code>platform_name</code></td><td>string</td><td>C</td><td>Name of the commerce platform associated with the transaction. Required when <code>business_type</code> is <code>20</code> (platform) or <code>21</code> (independent platform).</td></tr><tr><td><code>payee_name</code></td><td>string</td><td>C</td><td>Name of the payment recipient. Required when <code>transaction_type</code> is <code>111</code> (payment).</td></tr><tr><td><code>file_ids</code></td><td>list&#x3C;long></td><td>M</td><td>List of Pagsmile-assigned document identifiers associated with the request.<br>See <a href="https://docs.pagsmile.com/reference/remittance-api/business/reference/upload-material-document">Upload Material Document</a> for how to obtain document IDs.</td></tr></tbody></table>

**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,
  "transaction_type": 101,
  "business_type": 10,
  "amount": "100.00",
  "currency": "USD",
  "contract_no": "CONTRACT_202607200001",
  "contract_date": "2026-07-20",
  "buyer_name": "Example Name",
  "buyer_country": "BR",
  "platform_name": "Example Name",
  "payee_name": "Example Name",
  "file_ids": [
    "FILE_202607200001"
  ]
}
```

**Request example**

```bash
curl --request POST \
  --url https://rem-api-sandbox.pagsmile.com/remittance/material/create-material \
  --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
{
  "material_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                                                 |
| ------------- | ---- | ----------- | ----------------------------------------------------------- |
| `material_id` | long | M           | Pagsmile-assigned unique identifier of the material record. |

**Related APIs**

* [Cancel Association](https://docs.pagsmile.com/remittance-api/business/material/cancel-association)
* [Link Material](https://docs.pagsmile.com/remittance-api/business/material/link-material)
* [Query Material Links](https://docs.pagsmile.com/remittance-api/business/material/query-material-links)
* [Query Materials](https://docs.pagsmile.com/remittance-api/business/material/query-materials)
* [Supplementary Material Document](https://docs.pagsmile.com/remittance-api/business/material/supplementary-material-document)
* [Update Material](https://docs.pagsmile.com/remittance-api/business/material/update-material)
