Списания
Создание списания, подтверждение, чтение и список
Списание с уже привязанной карты. Покупателя рядом нет и карта известна заранее, поэтому ждать между шагами нечего — списание делается одним вызовом. Базовый адрес, заголовки и формат ошибки — общие правила.
Списать с карты
/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
списывал деньги. Оба адреса продолжают работать и ведут в тот же код,
но в новой интеграции они не нужны.
Состояние списания
/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"
}Список списаний
/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
}