API Docs
Версия API
версия 1.0

POSTСмена состояния заказа

ваш адрес изcallbackUrl

Отправляется на callback_url мерчанта при каждой смене состояния заказа. Ответьте любым 2xx в течение 5 секунд, иначе колбэк будет повторён (до 8 попыток: 30 с, 1, 2, 4, 8, 16, 30 мин).

Одно событие может прийти повторно и не по порядку. Ключ события — order_id + sequence: уже обработанную пару принимайте с 200, событие с sequence меньше полученного не применяйте.

Обработчик

import express from 'express';

const app = express();

app.post('/hooks/terminal', express.json(), async (req, res) => {
  const event = req.body;

  // Ключ события — order_id + sequence. Событие может прийти повторно и не
  // по порядку: уже обработанную пару принимаем с 200, событие с sequence
  // меньше полученного не применяем.
  const last = await lastSequence(event.order_id);
  if (last === undefined || event.sequence > last) await apply(event);

  // Любой 2xx в течение 5 секунд — доставлено, иначе колбэк повторится.
  res.sendStatus(200);
});
from flask import Flask, request

app = Flask(__name__)

@app.post("/hooks/terminal")
def terminal_hook():
    event = request.get_json()

    # Ключ события — order_id + sequence. Событие может прийти повторно и не
    # по порядку: уже обработанную пару принимаем с 200, событие с sequence
    # меньше полученного не применяем.
    last = last_sequence(event["order_id"])
    if last is None or event["sequence"] > last:
        apply(event)

    # Любой 2xx в течение 5 секунд — доставлено, иначе колбэк повторится.
    return "", 200

Параметры

Заголовки

X-Request-IDstring

Идентификатор доставки для обращений в поддержку

Тело запроса

application/json · обязательно

order_idstringобязательное

Идентификатор заказа

merchant_idintegerобязательное
int64
sequenceintegerобязательное

Номер события по заказу, растёт с каждой сменой состояния

int64≥ 0
statestringобязательное
"created""attempting""awaiting""orphaned""review""succeeded""failed"
amountobjectобязательное

Сумма

rateobjectобязательное

Курс

occurred_atstringобязательное

Время события, RFC 3339

date-time
merchant_order_idstring

Идентификатор заказа на стороне мерчанта

reason_codestring

Код причины в верхнем регистре (см. /v1/dictionary/reasons)

requisitesobject

Реквизиты для оплаты

Ответы

Колбэк принят

Доступ

mutualTLSmutualTLS

Клиентский сертификат, выданный мерчанту при подключении.

X-SignatureapiKey

HMAC-подпись запроса секретным ключом мерчанта.

Разделы