Assalam Docs

Первое списание за пять шагов

От привязки карты до денег на балансе

Путь целиком: от тестового ключа до успешного списания с сохранённой карты. Банк и VPN для этого не нужны — всё работает в тестовом режиме.

Получите тестовый ключ

Ключ вида sk_test_... выдаётся в кабинете продукта или у администратора платформы. Держите его на сервере: в браузер и в мобильное приложение секретный ключ передавать нельзя.

Создайте сессию привязки карты

Запрос делается с вашего сервера. В ответе придёт ссылка url — откройте её клиенту в WebView или редиректом. Номер карты в ваш бэкенд при этом не попадёт.

Ваш сервер · Сессия привязки карты
curl -X POST https://api.assalam.uz/subscribe/v1/card_sessions \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "returnUrl": "https://your.app/cards/return",
    "customerRef": "user_1024"
  }'
Ответ
{
  "id": "cmsr9f2c",
  "url": "https://checkout.assalam.uz/s/6a3f...",
  "clientToken": "6a3f...",
  "expiresAt": "2026-08-14T10:15:00.000Z",
  "livemode": false
}

Клиент вводит карту и код из SMS

В тестовом режиме подойдёт любой номер из 16 цифр (например 8600 0000 0000 1234), любой будущий срок и код 111111. После успеха клиент вернётся на ваш returnUrl.

Заберите идентификатор карты

Снова с сервера: GET /subscribe/v1/card_sessions/{id} вернёт статус COMPLETED и paymentMethodId. Сохраните его у себя рядом со своим пользователем — это и есть «карта» для будущих списаний.

Спишите деньги

Одним вызовом: карта известна заранее, и ждать между «создать» и «подтвердить» здесь нечего. Кода из СМС клиент второй раз не вводит — согласие он дал при привязке.

Сумма — в тийинах: 5000000 это 50 000 сум.

Ваш сервер · Списание после привязки
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": "Полис ОСАГО"
  }'
Ответ
{
  "id": "cmsr…",
  "object": "payment_intent",
  "status": "SUCCEEDED",
  "amount": 5000000,
  "card": "cmsr…",
  "rail": "mock",
  "livemode": false
}

Idempotency-Key — не формальность

Если ответ не дошёл из-за обрыва связи, повторите запрос с тем же ключом. Вы получите прежний результат, а не второе списание. Новый ключ на повтор — это новый платёж.

Проверьте сценарии отказов

В тестовом режиме отказ вызывается суммой: последние цифры 13 — отказ банка, 14 — недостаточно средств, 15 — таймаут. Обработайте их до боевого запуска.

Дальше по теме

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