# Bank Transfer

## Payin by BankTransfer

<mark style="color:green;">`POST`</mark> `https://gateway-test.pagsmile.com/trade/pay`

This endpoint allows you to submit a payin by BankTransfer in Bolivia.

#### Headers

| Name                                            | Type   | Description                                |
| ----------------------------------------------- | ------ | ------------------------------------------ |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json; chartset=UTF-8           |
| Authorization<mark style="color:red;">\*</mark> | string | Basic Base($app\_*id:$security\_*&#x6B;ey) |

#### Request Body

| Name                                                       | Type   | Description                                                                                      |
| ---------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------ |
| app\_id<mark style="color:red;">\*</mark>                  | string | <p>created app's id at dashboard</p><p>- Max. 32 chars -</p>                                     |
| customer.phone                                             | string | User's phone                                                                                     |
| customer.email<mark style="color:red;">\*</mark>           | string | User's email                                                                                     |
| customer.identify.number<mark style="color:red;">\*</mark> | string | <p>User's identification number<br>- CI: 7~~10 digits<br>CE: 8 digits<br>NIT: 9~~12 digits -</p> |
| method<mark style="color:red;">\*</mark>                   | string | Fixed value: BankTransfer                                                                        |
| out\_trade\_no<mark style="color:red;">\*</mark>           | string | <p>ID given by the merchant in their system<br>- Max. 64 chars - </p>                            |
| notify\_url<mark style="color:red;">\*</mark>              | string | Where Pagsmile will send notification to                                                         |
| customer.identify.type<mark style="color:red;">\*</mark>   | string | <p>User's identification type</p><p>- CI, CE, NIT -</p>                                          |
| customer.name<mark style="color:red;">\*</mark>            | string | User's name                                                                                      |
| timestamp<mark style="color:red;">\*</mark>                | string | <p>yyyy-MM-dd HH:mm:ss<br>- Max. 19 chars -</p>                                                  |
| subject<mark style="color:red;">\*</mark>                  | string | <p>payment reason or item title</p><p>- Max. 128 chars -</p>                                     |
| order\_amount<mark style="color:red;">\*</mark>            | string | <p>payment amount<br>- 1 - 1,000,000 BOB -</p>                                                   |
| order\_currency<mark style="color:red;">\*</mark>          | string | Fixed value: BOB                                                                                 |
| content                                                    | string | <p>payment reason detail or item detail</p><p>- Max. 255 chars -</p>                             |
| buyer\_id<mark style="color:red;">\*</mark>                | string | merchant user's id                                                                               |
| address.zip\_code                                          | string | <p>zip code<br>- 5 digits -</p>                                                                  |
| website\_url                                               | string | <p>merchant website URL</p><p>- Max. 128 chars -</p>                                             |
| address.street                                             | string | street                                                                                           |
| address.street\_number                                     | string | street number                                                                                    |
| address.city                                               | string | city                                                                                             |
| address.state                                              | string | state                                                                                            |
| return\_url                                                | string | Redirect to Merchant's url when user finished checkout                                           |
| account\_number<mark style="color:red;">\*</mark>          | string | <p>User's bank account number<br>- numeric: 7 \~ 14 digits - </p>                                |
| bank<mark style="color:red;">\*</mark>                     | string | Use [API](https://docs.pagsmile.com/payin/tools/supported-bank-list-query) to get bank code      |
| account\_type<mark style="color:red;">\*</mark>            | string | <p>User's bank account type</p><p>- One of: SAVINGS, CHECKING - </p>                             |

{% tabs %}
{% tab title="200 submit successfully" %}

```
{
    "code": "10000",
    "msg": "Success",
    "prepay_id": "V2VNU **** B8F7Fe",
    "trade_no": "20240603***81",
    "out_trade_no": "out_tr****000",
    "web_url": "",
    "pay_url": "https://checkoutv2.pagsmile.com/checkout?prepay_id=V2VN***=-50B8F7Fe",
    "trade_status": "PROCESSING",
    "qr_code_img": "data:image/png;base64, iVBORw0KGgoAAA********* AABJRU5ErkJggg==",
    "due_date": "2024-06-03T23:59:00"
}
```

{% endtab %}

{% tab title="400 duplicate out\_trade\_no" %}

```
{
    "code": "40002",
    "msg": "Business Failed",
    "sub_code": "duplicate-out_trade_no",
    "sub_msg": "out_trade_no is duplicate"
}
```

{% endtab %}
{% endtabs %}

Format of customer.identify

<table><thead><tr><th width="146">Identify.type</th><th width="90">Length</th><th width="245">Format</th><th width="223">Description</th><th>Example</th></tr></thead><tbody><tr><td>CI</td><td>7-10</td><td>7 mandatory numerical digits and then optionally a space and two letters</td><td>Cedula de Identidad</td><td>SC 1234567 or 1234567</td></tr><tr><td>CE</td><td>8</td><td>numeric</td><td>Cedula de Identidad de Extranjero</td><td>12345678</td></tr><tr><td>NIT</td><td>9-12</td><td>numeric</td><td>Número de Identificación Tributaria</td><td>123456789</td></tr></tbody></table>

{% hint style="info" %}
The “CI” can be up to 10 characters. It is formed with 7 mandatory numerical digits and then optionally a space and two letters. The two letters represent the departments belonging to the “ Plurinational State of Bolivia”.

There are:

* BE - Beni
* CB- Cochabamba
* CH – Chuquisaca
* LP- La Paz
* OR- Oruro
* PD- Pando
* PT – Potosí
* SC – Santa Cruz
* TJ - Tarija

Examples : For Santa Cruz  you can send “SC 1234567”, “1234567”, “SC1234567”, “1234567SC” or “1234567 SC”
{% endhint %}

{% hint style="info" %}
**User payment tips**

* The order will always expire at 23:59:00 GMT+0 on the same day of creation.
* Users need to scan the QR code to make the payment. Take the image of QR code from the parameter **qr\_code\_img**.
  {% endhint %}

## Example

```
curl --location --request POST 'https://gateway-test.pagsmile.com/trade/pay' \
--header 'Authorization: Basic MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
    * "app_id": "162************38",
    * "out_trade_no": "202201010354008",
    * "method": "BankTransfer",
    * "order_amount": "50",
    * "order_currency": "BOB",
    * "subject": "trade pay test",
      "content": "trade pay test conent",
    * "notify_url": "http://merchant/callback/success",
      "return_url": "https://www.merchant.com",
    * "buyer_id": "buyer_0101_0001",
    * "timestamp": "2022-01-01 03:54:01",
      "timeout_express":"1c",
    * "bank":"004",
    * "account_number":"87654321",
    * "account_type":CHECKING",
    * "customer" : {
    *     "identify": {
    *         "type": "CI",
    *         "number": "12345678"
          },
    *     "name": "Test User Name",
    *     "email": "test@pagsmile.com"
      }
      }'
```

{% hint style="info" %}
Note:  **162\*\*\*\*\*\*\*\*\*\*\*\*38** is pagsmile's test app id for sandbox, and **MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==** is authorization token associated with the test app id.&#x20;
{% endhint %}

{% hint style="danger" %}
Please use your own **app\_id** and generate your own **authorization token** when testing.
{% endhint %}
