# Create Virtual SPEI Account

## Payin by SPEI

<mark style="color:green;">`POST`</mark> `https://gateway-test.pagsmile.com/virtual-account/spei/create`

This endpoint allows you to create virtual SPEI account number in Mexico.

#### 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.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>- 13 chars, ex: MAMB780915969; CURP: 18 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>- RFC  or CURP -</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>                                        |
| customer.buyer\_id<mark style="color:red;">\*</mark>       | string | Customer's user id                                                                     |

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

<pre><code>{
<strong>    "account_id": "692W********MRW4",
</strong>    "account_number": "6461xxxxxxxxxx0137", //Clabe
    "buyer_id": "0001",
    "provider": "STP", //Bank name
    "status": "ACTIVE", //Status ENUM[ACTIVE/CANCELED]
    "beneficiary_name": "PAGSMILE MEXICO SA DE CV",
    "notify_url": "https://your-notify-url.com"
}
</code></pre>

{% endtab %}

{% tab title="400 account pool run out" %}

<pre><code>{
<strong>    "code": "40002",
</strong>    "msg": "Business Failed",
    "sub_code": "account-pool-run-out",
    "sub_msg": "account pool run out"
}
</code></pre>

{% endtab %}
{% endtabs %}

## Example

```
curl --location --request POST 'https://gateway-test.pagsmile.com/virtual-account/spei/create' \
--header 'Authorization: Basic MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
    * "app_id": "162************38",
    * "notify_url": "http://merchant/callback/success",
    * "timestamp": "2022-01-01 03:54:01",
    * "customer" : {
    *     "identify": {
    *         "type": "RFC",
    *         "number": "MAMB780915969"
          },
    *     "buyer_id": "buyer_0101_0001",
    *     "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 %}
