Assalam Docs
API Reference

Списания

Создание списания, подтверждение, чтение и список

Списание с уже привязанной карты. Покупателя рядом нет и карта известна заранее, поэтому ждать между шагами нечего — списание делается одним вызовом. Базовый адрес, заголовки и формат ошибки — общие правила.

Списать с карты

POST/subscribe/v1/charges

Создаёт и проводит списание одним вызовом. Требует заголовок Idempotency-Key.

Поле

Тип

Запрос
curl -X POST https://api.assalam.uz/subscribe/v1/charges \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: order-1024" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000000,
    "card": "cmsr…",
    "description": "Полис ОСАГО",
    "metadata": {"orderId": "A-1024"}
  }'
Успех
{
  "id": "cmsr…",
  "object": "payment_intent",
  "amount": 5000000,
  "fee": 0,
  "currency": "UZS",
  "status": "SUCCEEDED",
  "livemode": false,
  "rail": "openbank",
  "card": "cmsr…",
  "description": "Полис ОСАГО",
  "failureCode": null,
  "metadata": {"orderId": "A-1024"},
  "created": "2026-08-14T10:00:00.000Z"
}

Отказ банка — не ошибка запроса: платёж создан и честно помечен отклонённым, поэтому ответ приходит с кодом 201, а не 4xx. Иначе вы не узнали бы идентификатор того, что уже существует.

Отказ банка
{
  "id": "cmsr…",
  "status": "FAILED",
  "failureCode": "INSUFFICIENT_FUNDS"
}
Исход неясен — повторять НЕ нужно
{
  "id": "cmsr…",
  "status": "PROCESSING",
  "failureCode": null
}

Статус PROCESSING означает, что банк не ответил однозначно: деньги, возможно, уже списаны. Не повторяйте списание — дождитесь окончательного состояния.

Тот же ключ с другим телом
{
  "message": "Idempotency-Key уже использован с другим телом запроса",
  "error": "Conflict",
  "statusCode": 409
}

Прежняя пара вызовов

До появления /subscribe/v1/charges списание делалось в два шага: POST /v1/payment_intents создавал платёж, POST /v1/payment_intents/{id}/confirm списывал деньги. Оба адреса продолжают работать и ведут в тот же код, но в новой интеграции они не нужны.

Состояние списания

GET/subscribe/v1/charges/{id}

Текущее состояние платежа — используйте для проверки статуса.

Запрос
curl https://api.assalam.uz/subscribe/v1/charges/cmsr1a2b \
  -H "Authorization: Bearer sk_test_..."
Ответ
{
  "id": "cmsr1a2b",
  "object": "payment_intent",
  "amount": 5000000,
  "fee": 0,
  "currency": "UZS",
  "status": "SUCCEEDED",
  "rail": "openbank",
  "metadata": {"orderId": "A-1024"},
  "created": "2026-08-14T10:00:00.000Z"
}

Список списаний

GET/subscribe/v1/charges

Последние платежи продукта, свежие сверху.

Поле

Тип

Запрос
curl "https://api.assalam.uz/subscribe/v1/charges?limit=20" \
  -H "Authorization: Bearer sk_test_..."

# следующая страница — по id последнего полученного
curl "https://api.assalam.uz/subscribe/v1/charges?limit=20&starting_after=cmsr1a2b" \
  -H "Authorization: Bearer sk_test_..."
Ответ
{
  "object": "list",
  "data": [
    {
      "id": "cmsr1a2b",
      "amount": 5000000,
      "status": "SUCCEEDED",
      "rail": "openbank",
      "created": "2026-08-14T10:00:00.000Z"
    },
    {
      "id": "cmsr0z9y",
      "amount": 180000,
      "status": "FAILED",
      "failureCode": "DECLINED",
      "created": "2026-08-14T09:41:00.000Z"
    }
  ],
  "has_more": false
}

На этой странице