> For the complete documentation index, see [llms.txt](https://apidoc.tokenpay.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidoc.tokenpay.me/ru-ru/zakaz/sozdanie-zakaza.md).

# Создание заказа

{% hint style="info" %}
ПОДСКАЗКА (TIP)

После создания заказа интерфейс вернет ссылку на оплату, и пользователь перейдет в кассу по ссылке для оплаты. Если продавец настроил приложение White Label, внешний код также должен быть подключен к JS-SDK. [Просмотр SDK](https://www.npmjs.com/package/@ttpay/payment_modal)
{% endhint %}

#### Адрес интерфейса (Interface address)

```
POST https://api.tokenpay.me/v1/transaction/prepayment
```

#### Параметры интерфейса (Interface parameters)

| Имя             | Расположение | Тип     | Обязательно | Описание                                                                                                                                                                                                                                       |
| --------------- | ------------ | ------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `app_id`        | header       | string  | Да          | ID приложения, пример значения: `8e4b8c2e7cxxxxxxxx1a1cbd3d59e0bd`                                                                                                                                                                             |
| `mch_id`        | body         | string  | Да          | ID продавца, пример значения: `12345678`                                                                                                                                                                                                       |
| `description`   | body         | string  | Нет         | Описание заказа, пример значения: `recharge`                                                                                                                                                                                                   |
| `out_trade_no`  | body         | string  | Да          | Номер заказа продавца, продавец генерирует свой собственный уникальный номер заказа                                                                                                                                                            |
| `expire_second` | body         | integer | Да          | Время истечения срока действия (в секундах), пример значения: `3600`                                                                                                                                                                           |
| `amount`        | body         | number  | Да          | Сумма заказа, пример значения: `15000000`                                                                                                                                                                                                      |
| `chain`         | body         | string  | Да          | Принадлежащая публичная сеть, пример значения: `TRON`                                                                                                                                                                                          |
| `currency`      | body         | string  | Да          | Валюта, пример значения: `TRX`. [Просмотр поддерживаемых валют](/ru-ru/valyuta/informaciya-o-valyute.md)                                                                                                                                       |
| `to_address`    | body         | string  | Нет         | Кошелек для сбора средств (Примечание: кошелек для оплаты требуется для приложения `monitor order`)                                                                                                                                            |
| `attach`        | body         | string  | Нет         | Пользовательские параметры (например, уникальные идентификаторы, такие как ID пользователей) возвращаются в неизменном виде в API запросов и уведомлениях об оплате. На практике это поле возвращается только при завершенном статусе платежа. |
| `locale`        | body         | string  | Нет         | Язык: `zh_cn` Китайский, `en` Английский. При использовании кассы будет отображаться язык по умолчанию на основе этого параметра.                                                                                                              |
| `notify_url`    | body         | string  | Нет         | URL-адрес колбэка, пример значения: `https://xxx/xxx`. [Рекомендуется использовать https](/ru-ru/opisanie/informaciya-po-bezopasnosti.md)                                                                                                      |
| `return_url`    | body         | string  | Нет         | Адрес возврата, когда платеж завершен или не удался, нажмите кнопку возврата по адресу. Это может быть ссылка https или маршрут приложения.                                                                                                    |
| `order_type`    | body         | string  | Да          | Способ оплаты, пример значения: `platform_order` сбор платформы                                                                                                                                                                                |

**Пример параметров (Parameters example)**

```json
{
  "app_id": "d549a3ac0e4641f998c6675fc539ba21",
  "mch_id": "12345678",
  "description": "recharge",
  "out_trade_no": "fb72xxxx-xxxx-xxxx-xxxx-xxxx8a7b52cb",
  "expire_second": 600,
  "amount": 9,
  "chain": "TRON",
  "currency": "USDT",
  "to_address": "TQjxEW2Z3p9wjoxxxxxxxxgJUrWXBun91w",
  "attach": "anim dolore",
  "locale": "zh_cn",
  "notify_url": "https://xxx/xxx",
  "return_url": "https://xxxx/xxx?id=xxxx",
  "order_type": "platform_order"
}
```

{% hint style="info" %}
ПОДСКАЗКА (TIP)

`app_id` можно получить через панель управления продавца путем [создания приложения](https://ttpay.io/console/pages/app-list/pay-app).
{% endhint %}

#### Возврат интерфейса (Interface return)

| Имя           | Тип     | Описание                                               | Описание                                                                                                                                                                                                                                                                                     |
| ------------- | ------- | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `code`        | integer | [Код состояния](/ru-ru/kod-oshibki/kod-sostoyaniya.md) |                                                                                                                                                                                                                                                                                              |
| `msg`         | string  | Описание состояния                                     |                                                                                                                                                                                                                                                                                              |
| `request_id`  | string  | ID запроса                                             |                                                                                                                                                                                                                                                                                              |
| `data`        | object  | Объект данных                                          |                                                                                                                                                                                                                                                                                              |
| `prepay_id`   | string  | ID предоплаты                                          | Идентификатор сеанса транзакции предоплаты. Он используется для последующих вызовов интерфейса, и его значение действительно в течение времени параметра `expire_second`, установленного при создании заказа. Или вы можете напрямую получить доступ к `payment_url` для завершения платежа. |
| `payment_url` | string  | URL-адрес платежной кассы                              | `payment_url` предназначен для вызова промежуточной страницы платежной кассы, вы можете завершить платеж, перейдя по этому URL-адресу. `payment_url` действителен в течение времени параметра `expire_second`, установленного при создании заказа.                                           |

#### Пример возврата (Return example)

```json
{
    "code": 0,
    "msg": "ok",
    "request_id": "9b9e08ab-48e5-4efa-83e7-97e5e3fe3d0c",
    "data": {
        "prepay_id": "15809074c5bbc36bce27exxxxxxxxxxxxxxxxxxxxa4ca0a281d7e1260624a1c2",
        "payment_url": "/pay/order?prepay_id=15809074c5bbc36bce27exxxxxxxxxxxxxxxxxxxxa4ca0a281d7e1260624a1c2"
    }
}
```

#### Пример кода (Example code)

{% tabs %}
{% tab title="Shell" %}

```sh
curl --location --request POST 'https://api.tokenpay.me/v1/transaction/prepayment' \
--header 'Authorization: <Authorization>' \
--header 'User-Agent: tokenpay API (https://tokenpay.me)' \
--header 'Content-Type: application/json' \
--data-raw '<body data here>'
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
   "fmt"
   "strings"
   "net/http"
   "io/ioutil"
)

func main() {

   url := "https://api.tokenpay.me/v1/transaction/prepayment"
   method := "POST"

   payload := strings.NewReader(`<body data here>`)

   client := &http.Client {
   }
   req, err := http.NewRequest(method, url, payload)

   if err != nil {
      fmt.Println(err)
      return
   }
   req.Header.Add("Authorization", "<Authorization>")
   req.Header.Add("User-Agent", "tokenpay API (https://tokenpay.me)")
   req.Header.Add("Content-Type", "application/json")

   res, err := client.Do(req)
   if err != nil {
      fmt.Println(err)
      return
   }
   defer res.Body.Close()

   body, err := ioutil.ReadAll(res.Body)
   if err != nil {
      fmt.Println(err)
      return
   }
   fmt.Println(string(body))
}
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
   CURLOPT_URL => 'https://api.tokenpay.me/v1/transaction/prepayment',
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => 'POST',
   CURLOPT_POSTFIELDS =>'<body data here>',
   CURLOPT_HTTPHEADER => array(
      'Authorization: <Authorization>',
      'User-Agent: tokenpay API (https://tokenpay.me)',
      'Content-Type: application/json'
   ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
```

<br>
{% endtab %}

{% tab title="Python" %}

```python
import http.client
import json

conn = http.client.HTTPSConnection("https://api.tokenpay.me")
payload = "<body data here>"
headers = {
   'Authorization': '<Authorization>',
   'User-Agent': 'tokenpay API (https://tokenpay.me)',
   'Content-Type': 'application/json'
}
conn.request("POST", "/v1/transaction/prepayment", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient().newBuilder()
   .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "<body data here>");
Request request = new Request.Builder()
   .url("https://api.tokenpay.me/v1/transaction/prepayment")
   .method("POST", body)
   .addHeader("Authorization", "<Authorization>")
   .addHeader("User-Agent", "tokenpay API (https://tokenpay.me)")
   .addHeader("Content-Type", "application/json")
   .build();
Response response = client.newCall(request).execute();
```

{% endtab %}
{% endtabs %}
