# Подтверждение списания средств

{% hint style="danger" %}
**ВНИМАНИЕ: Новый формат ответа для ошибок**

В ближайшее время в нашей системе ошибки будут разделены на **ожидаемые** и **неожидаемые**. Это приведет к изменению формата JSON-ответа в зависимости от типа ошибки. Пожалуйста, ознакомьтесь с изменениями на странице [**Коды Ошибок**](https://docs.tarlanpayments.kz/agws/kody-oshibok). Изменения будут применены ко всем API в системе AGWS, за исключением методов «[Проведение платежа](https://docs.tarlanpayments.kz/agws/provedenie-platezha)».

Нажмите [здесь](#primery-otvetov-ob-oshibkakh-do-vneseniya-izmenenii), чтобы просмотреть старые и новые ответы об ошибках JSON. Обратите внимание на это обновление и убедитесь, что ваша система готова к изменениям, если это необходимо.
{% endhint %}

Для некоторых услуг необходимо подтверждать списание используя дополнительные атрибуты например отп-код.

<mark style="color:green;">`POST`</mark> `https://agwsapi.tarlanpayments.kz/showcase-gateway/api/v1/action/confirm/invoice`

**Headers**

| Name         | Value                                                                                        |
| ------------ | -------------------------------------------------------------------------------------------- |
| Content-Type | `application/json`                                                                           |
| X-Signature  | [Авторизационный хэш](https://docs.tarlanpayments.kz/platezhnyi-shlyuz/formirovanie-podpisi) |

**Body**

<table><thead><tr><th width="176">Name</th><th width="147">Type</th><th>Description</th></tr></thead><tbody><tr><td>agent<mark style="color:red;">*</mark></td><td>String</td><td>Код витрины в системе Tarlanpayments</td></tr><tr><td>confirm_code</td><td>String</td><td>Код подтверждения платежа</td></tr><tr><td>external_id<mark style="color:red;">*</mark></td><td>String</td><td>Идентификатор платежа на стороне витрины</td></tr></tbody></table>

**Response**

<table><thead><tr><th width="224">Name</th><th width="132">Type</th><th>Description</th></tr></thead><tbody><tr><td>status</td><td>bool</td><td>Статус обработки запроса</td></tr><tr><td>status_code</td><td>uint</td><td>Код ошибки</td></tr><tr><td>message</td><td>string</td><td>Оисание ошибки</td></tr><tr><td>result</td><td>Object</td><td>Объект хранящий информацию о платеже</td></tr><tr><td>-is_success</td><td>String</td><td>Флаг успешности платежа</td></tr><tr><td>-transaction_status_id</td><td>String</td><td><a href="statusy-tranzakcii">Статус транзакции </a></td></tr><tr><td>-fail_reason</td><td>Object</td><td>Поле содержащее <a href="prichina-otkloneniya-operacii">причину неуспеха</a></td></tr><tr><td>-external_id</td><td>String</td><td>Идентификатор платежа на стороне витрины</td></tr><tr><td>-otp_status</td><td>bool</td><td>Флаг успешности проверки otp</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK Пример успешного ответа" %}

```json
{
    "status": true,
    "status_code": 0,
    "message": "Success",
    "result": {
        "is_success": true,
        "transaction_status_id": "4",
        "external_id": "200001",
        "message": "",
        "otp_status": false,
        "fail_reason": {
            "code": 402,
            "message": "Incorrect confirmation code"
        }
    }
}
```

{% endtab %}
{% endtabs %}

#### Примеры ответов об ошибках *до* внесения изменений

{% tabs %}
{% tab title="400 Bad Request" %}

```json
{
    "status": false,
    "status_code": 1041,
    "message": "Order not found",
    "result": {}
}
```

{% endtab %}

{% tab title="400 Bad Request" %}

```json
{
    "status": false,
    "status_code": 1014,
    "message": "Invalid signature",
    "result": {}
}
```

{% endtab %}
{% endtabs %}

#### Примеры ответов об ошибках *после* внесения изменений

{% tabs %}
{% tab title="200 OK: Ожидаемая ошибка" %}

```json
{
    "status": true,
    "status_code": 0,
    "message": "Success",
    "result": {
        "error_code": 1041,
        "message": "Order not found",
        "data": null
    }
}
```

{% endtab %}

{% tab title="400 Bad Request: Неожидаемая ошибка" %}

```json
{
    "status": false,
    "status_code": 1014,
    "message": "Invalid signature",
    "result": {}
}
```

{% endtab %}
{% endtabs %}

```bash
curl --location 'https://agwsapi.tarlanpayments.kz/showcase-gateway/api/v1/action/confirm/invoice' \ 
--header 'Content-Type: application/json' \ 
--data '{ 
    "agent": "test_agent",
    "confirm_code": "104000", 
    "external_id": "externa312" 
}'
```
