# Автоматический POSTBACK

После успешного выполнения платежа на указанный в настройках проекта URL для уведомлений отправляется POST запрос с информацией о платеже.

## Параметры запроса

| Название параметра | Тип данных | Значения                                                                                                                    | Пример                                                                                                               | Описание                         |
| ------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| status             | string     | success                                                                                                                     | success                                                                                                              | Статус выполнения запроса        |
| invoice\_id        | string     | id                                                                                                                          | DZLF4212                                                                                                             | Уникальный идентификатор платежа |
| amount\_crypto     | decimal    | sum                                                                                                                         | 0.4567                                                                                                               | Сумма платежа в криптовалюте     |
| currency           | string     | <p>BTC</p><p>LTC</p><p>ETH</p><p>USDT\_TRC20<br>USDT\_ERC20<br>USDC\_TRC20<br>USDC\_ERC20<br>TUSD\_TRC20<br>TUSD\_ERC20</p> | BTC                                                                                                                  | Код валюты                       |
| order\_id          | string     | id                                                                                                                          | ORD99999                                                                                                             | Идентификатор заказа магазина    |
| token              | string     | token                                                                                                                       | eyJ0eXAiOiJKV1QiLCJhbGciOiJIAcI1NiJ9.eyJpZCI6MTMsImV4cCI6MTYzMTc4NjQyNn0.HQavV3z8dFnk56bX3MSY5X9lR6qVa9YhAoeTEHkaAzs | JWT токен                        |

{% hint style="info" %}
JWT Токен — подпись ответа от сервера. Подписывается секретным ключом (SECRET KEY), который генерируется в настройках проекта. Дополнительно в токен добавлен UUID счета. Действует токен в течение 5 минут после создания уведомления. Генерируется каждый раз при отправке уведомления об оплате.

Алгоритм шифрования — HS256.
{% endhint %}

## Примеры запроса

```json
{
   "status": "success",
   "invoice_id": “DZLF4212”,
   "amount_crypto": 0.4567,
   "currency": “BTC“,
}
```

## Пример обработчика POSTBACK

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

```python
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/postback', methods=['POST'])
def handle_postback():
    data = request.json
    status = data.get('status')
    invoice_id = data.get('invoice_id')
    amount_crypto = data.get('amount_crypto')
    currency = data.get('currency')
    order_id = data.get('order_id')
    token = data.get('token')
    
    # ... your code for processing postback ...
    
    return jsonify({'message': 'Postback received'}), 200

if __name__ == '__main__':
    app.run(port=5000)
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const express = require('express');
const app = express();

app.use(express.json());

app.post('/postback', (req, res) => {
    const { status, invoice_id, amount_crypto, currency, order_id, token } = req.body;
    
    // ... your code for processing postback ...
    
    res.json({ message: 'Postback received' });
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});
```

{% endtab %}
{% endtabs %}

> Мы регулярно работаем над улучшением документации сервиса для разработчиков. Пожалуйста, оцените качество и полезность материалов [по ссылке](https://survey.zohopublic.eu/zs/G6TdRh).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cryptocloud.plus/ru/api-reference-v1-old/postback.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
