# Callback платежной системы

Метод предназначен для оповещения системы проекта о статусе платежа.

### Backoff Policy

Для увеличения гарантий получения ответа используются BackOff-политики при выполнении запросов:

* интервалы между повторными запросами = 500 Millisecond
* Разброс запроса по времени между повторами  = 0.5
* Максимальное время между повторами  = 60 Second
* Время в течении которого будут выполнены попытки  = 10 Minute

#### Callback платежной системой после каждой операции

После завершения оплаты, платежная система делает запрос в проект партнера для передачи состояния платежа. Запрос делается на адрес указанный в поле `callback_url` при [проведении платежа.](/agws/provedenie-platezha.md)

При получении http статуса отличного от 200  будут выполнены BackOff политики

## Отправка callback-a

<mark style="color:green;">`POST`</mark>`https://merchant-website/result`

#### Headers

| Name                                            | Type   | Description                                                                            |
| ----------------------------------------------- | ------ | -------------------------------------------------------------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer  Авторотационный хэш (см [Формирование подписи](/agws/formirovanie-podpisi.md)) |

#### Request Body

<table><thead><tr><th width="193">Name</th><th width="111">Type</th><th>Description</th></tr></thead><tbody><tr><td>status_code</td><td>String</td><td>Код статуса транзакции</td></tr><tr><td>status_message</td><td>String</td><td>Описание статуса транзакции</td></tr><tr><td>username</td><td>String</td><td>Идентификатор пользователя</td></tr><tr><td>amount</td><td>Float</td><td>Зачисленная сумма </td></tr><tr><td>datetime</td><td>String</td><td>Время инициации платежа в системе витрины.Формат ISO 8601 Current Timestamp</td></tr><tr><td>project</td><td>String</td><td>Код Проекта присваиваемый Tarlan-ом</td></tr><tr><td>service_code</td><td>String</td><td>Идентификатор услуги на стороне витрины</td></tr><tr><td>external_id</td><td>String</td><td>Идентификатор платежа на стороне витрины</td></tr><tr><td>fail_reason</td><td>Object</td><td>Поле содержащее <a href="/pages/aDAr4103dYpfrCk9sdYO">причину неуспеха</a></td></tr><tr><td>-code</td><td>Int</td><td>Код причины отклонения операции</td></tr><tr><td>-message</td><td>String</td><td>Описание причины отклонения операции</td></tr></tbody></table>

```json
{
    "project": "Testing",
    "service_code": "70958",
    "external_id": "proident",
    "status_code": "4",
    "status_message": "Transaction was failed",
    "amount": 100.82,
    "datetime": "fugiat sed",
    "username": "enim culpa eiusmod laborum",
    "fail_reason": {
        "code": 6132012,
        "message": "nulla Ut eu dolore"
    }
}
```


---

# 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.tarlanpayments.kz/agws/callback-platezhnoi-sistemy.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.
