Заказы
Создание, состояния, события и отмена заказа
Заказ — единственный объект, который вы создаёте на этой поверхности. Всё остальное — наша механика.
Создать заказ
/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"
}Состояние заказа
/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…"
}Отменить заказ
/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, покупателю прямо сказано не платить повторно, а мы выясняем
судьбу операции у банка. Дождитесь события — оно придёт, когда исход станет
известен.