> 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/fr-fr/paiement/creer-un-paiement.md).

# Créer un paiement

{% hint style="info" %}
ASTUCE (TIP)

Initiez d'abord le paiement en votre nom.
{% endhint %}

#### Adresse de l'interface (Interface address) <a href="#interface-address" id="interface-address"></a>

```
POST https://api.tokenpay.me/v1/payanother/payment
```

#### Interface parameters

| Nom            | Emplacement | Type   | Requis | Description                                                                                                                                                                                                                        |
| -------------- | ----------- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| app\_id        | body        | string | Oui    | ID de l'application, valeur d'exemple : `8e4b8c2e7cxxxxxxxx1a1cbd3d59e0bd`                                                                                                                                                         |
| mch\_id        | body        | string | Oui    | ID du marchand, valeur d'exemple : `12345678`                                                                                                                                                                                      |
| description    | body        | string | Non    | Description, valeur d'exemple : `1234567890`                                                                                                                                                                                       |
| out\_trade\_no | body        | string | Non    | Numéro de commande du marchand (passer au moins l'un des deux : `out_trade_no` ou `transaction_id`)                                                                                                                                |
| amount         | body        | string | Oui    | Montant du paiement                                                                                                                                                                                                                |
| chain          | body        | string | Oui    | Chaîne publique propriétaire, valeur d'exemple : `TRON`、`ETHEREUM`、`BSC`. [Voir les chaînes publiques prises en charge](/fr-fr/devise/informations-sur-la-devise.md)                                                               |
| currency       | body        | string | Oui    | Devise, valeur d'exemple : `TRX`、`USDT`、`ETH`. [Voir les devises prises en charge](/fr-fr/devise/informations-sur-la-devise.md)                                                                                                    |
| to\_address    | body        | string | Oui    | Adresse de collecte                                                                                                                                                                                                                |
| attach         | body        | string | Non    | Paramètre personnalisé. Il est renvoyé tel quel dans l'API de requête et les notifications de paiement et peut être utilisé comme paramètre personnalisé. En pratique, ce champ n'est renvoyé que lorsque le paiement est terminé. |
| notify\_url    | body        | string | Non    | URL de rappel, valeur d'exemple : `https://xxx/xxx`, [suggère d'utiliser https](/fr-fr/description/informations-de-securite.md)                                                                                                    |

{% hint style="info" %}
ASTUCE (TIP)

`app_id` peut être obtenu via le back-office du marchand en [créant une application](https://ttpay.io/console/pages/app-list/pay-app).
{% endhint %}

#### Interface return

| Nom         | Type                                                                                            | Requis | Description                                             |
| ----------- | ----------------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------- |
| code        | integer                                                                                         | Oui    | [Code de statut](/fr-fr/code-derreur/code-de-statut.md) |
| msg         | string                                                                                          | Oui    | Description du statut                                   |
| request\_id | string                                                                                          | Oui    |                                                         |
| data        | [PayoutTransactionDetail](/fr-fr/description/structure-de-donnees.md#details-de-la-transaction) | Non    |                                                         |

#### Exemple de retour (Return example)

```json
{
    "code": 0,
    "msg": "ok",
    "request_id": "08250916-a677-4a36-a090-323807ac644c",
    "data": {
        "out_trade_no": "fb722ca8-ed7b-444b-9f58-0b5c8a7b52cb",
        "transaction_id": "e98b3029477f4bdcb971797a9d9e09ce",
        "trade_state": "SUCCESS",
        "description": "recharge",
        "block_no": 33215220,
        "create_time": 1673407302044,
        "block_time": 1673407329000,
        "expire_time": 1673407902044,
        "expire_second": 0,
        "pay_time": 1673407329000,
        "close_time": 0,
        "tx_id": "9fdf0ab5823e23225f93bcc644af30a6ab83b6583a8e29e359ee80219802a33a",
        "from_address": "TULRFYoFuEmUbxxxxxxxx8nQYFHJ88888",
        "contract_address": "",
        "to_address": "TQjxEW2Z3p9wjoxxxxxxxxgJUrWXBun91w",
        "amount": 15000000,
        "chain": "TRON",
        "decimals": 6,
        "attach": "anim dolore",
        "service_amount": 45000,
        "service_amount_currency": "USDT",
        "notify_url": "/console/callback/pay",
        "notify_num": 1,
        "notify_status": 2,
        "status": 2,
        "currency": {
            "type": "TRX",
            "chain": "TRON",
            "code": "TRON_TRX",
            "currency": "TRX",
            "name": "TRX",
            "sub_name": "TRON",
            "logo": "https://xxx/trx_busd.png",
            "contract_address": "",
            "decimal": 6,
        }
    }
}
```

#### Exemple de code (Example code)

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

```sh
curl --location --request POST 'https://api.tokenpay.me/v1/payout/payment' \
--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/payout/payment"
   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/payout/payment',
   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/payout/payment", 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/payout/payment")
   .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 %}
