Assalam Docs

Заказы

Создание, состояния, события и отмена заказа

Заказ — единственный объект, который вы создаёте на этой поверхности. Всё остальное — наша механика.

Создать заказ

POST/merchant/v1/orders

В ответе — paymentUrl, куда отправить покупателя. Ссылка живёт до expiresAt.

Поле

Тип

Запрос
curl -X POST https://api.assalam.uz/merchant/v1/orders \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: order-1024" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 112000,
    "returnUrl": "https://shop.uz/order/1024/done",
    "description": "Заказ A-1024"
  }'
Ответ
{
  "id": "cmsr…",
  "object": "order",
  "amount": 112000,
  "currency": "UZS",
  "status": "PENDING",
  "description": "Заказ A-1024",
  "paymentUrl": "https://checkout.assalam.uz/pay/44705b…",
  "returnUrl": "https://shop.uz/order/1024/done",
  "saveCard": false,
  "expiresAt": "2026-08-21T21:42:43.813Z",
  "livemode": false,
  "created": "2026-08-21T21:12:43.815Z"
}

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

GET/merchant/v1/orders/{id}

Опрашивать нас не нужно — об исходе приходит событие. Этот метод на случай, если ваш сервис лежал.

Запрос
curl https://api.assalam.uz/merchant/v1/orders/cmsr… \
  -H "Authorization: Bearer sk_test_..."
Оплачен
{
  "id": "cmsr…",
  "object": "order",
  "status": "PAID",
  "amount": 112000,
  "paidAt": "2026-08-21T21:25:10.000Z",
  "paymentIntent": "cmsr…"
}

Отменить заказ

POST/merchant/v1/orders/{id}/cancel

Возможно, только пока никто не начал платить. Отменить заказ, по которому идёт списание, значит разойтись с банком — такой запрос вернёт 409.

Запрос
curl -X POST https://api.assalam.uz/merchant/v1/orders/cmsr…/cancel \
  -H "Authorization: Bearer sk_test_..."

Состояния

Их шесть, и три из них означают «денег нет», но по разным причинам: разница между «просрочен» и «не оплачен» — это разные письма покупателю, а не оттенок статуса.

СостояниеЧто значит
PENDINGСоздан, ждёт покупателя. Ссылка на оплату жива.
PROCESSINGПокупатель на странице, идёт списание. Отменить уже нельзя.
PAIDДеньги списаны. Пришло событие order.paid.
FAILEDПопытки кончились, покупатель не заплатил.
EXPIREDИстёк срок, покупатель так и не пришёл.
CANCELEDВы отменили заказ до оплаты.

Отказ банка не закрывает заказ

Если карта не прошла, заказ возвращается в PENDING, а покупателю показывается причина и предложение заплатить другой картой. Событие order.failed придёт, только когда попытки кончатся: сказать вам «не оплачено» сразу значило бы соврать, если следующая карта пройдёт.

События

  • order.paid — деньги списаны. Если заказ был с saveCard, здесь же придёт savedCard.
  • order.failed — попытки кончились, оплаты не будет.
  • order.expired — истёк срок, покупатель не пришёл.

Как подписаться и проверять подпись — «Вебхуки».

Если исход неясен

У банка бывает третий ответ, кроме «прошло» и «отказано»: списание могло состояться, но подтверждения мы не получили. Такой заказ остаётся в PROCESSING, покупателю прямо сказано не платить повторно, а мы выясняем судьбу операции у банка. Дождитесь события — оно придёт, когда исход станет известен.

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

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