Starex Pay

Starex Pay — это платёжная страница. Вы перенаправляете покупателя на неё с номером заказа и суммой, он выбирает способ оплаты и платит. Starex Pay берёт на себя всю работу с платёжными системами — вам остаётся сформировать одну ссылку и реализовать два эндпоинта.

1. Общее

PAY_URL и SECRET_KEY выдаёт Starex; адреса prepare и complete вы передаёте Starex.

ДанныеОписание
PAY_URLБазовый адрес платёжной страницы
SECRET_KEYСекретный ключ для подписи — используется только на стороне сервера
Адрес prepareЭндпоинт проверки заказа
Адрес completeЭндпоинт подтверждения оплаты

2. Схема работы

Покупатель Ваш сайт Starex Pay Платёжная система 1. Оформляет заказ 2. Редирект на платёжную ссылку 3. GET /checkout (order_id, amount, sign) 4. Страница выбора способа оплаты 5. Выбирает способ 6. POST prepare 7. error = 0, prepare_id 8. Редирект на страницу оплаты 9. Подтверждает платёж 10. Платёж принят 11. POST complete 12. error = 0, confirm_id 13. Страница результата

зелёные запросы — ваши эндпоинты; остальное Starex Pay делает сам.

4. Запросы

Оба запроса отправляются методом POST с телом в формате JSON. Ответ должен иметь статус HTTP 200 и прийти в течение 10 секунд.

Prepare

POST {ВАШ_PREPARE_URL}

{
  "ext_trans_id": 1042,
  "ext_payment_id": 3311,
  "order_id": "A-10245",
  "amount": 4500000,
  "action": 0,
  "sign_time": "2026-07-28 14:05:21",
  "sign_string": "9c2f...b81d"
}
ПолеТипОписание
ext_trans_idintegerНомер платежа в системе Starex Pay
ext_payment_idintegerНомер транзакции в системе Starex Pay
order_idstringНомер заказа в вашей системе
amountintegerСумма платежа (в тийинах)
actionintegerВыполняемое действие. 0 — Prepare
sign_timestringВремя запроса. Формат YYYY-MM-DD HH:MM:SS
sign_stringstring Проверочная строка (SHA-256):
sha256(ext_trans_id + SECRET_KEY + order_id + amount + action + sign_time)
Ответ
{
  "error": 0,
  "error_note": "OK",
  "prepare_id": "778812"
}
ПолеТипОписание
errorintegerРезультат операции. 0 — успешно
error_notestringОписание результата
prepare_idstringИдентификатор платежа в вашей системе

Complete

POST {ВАШ_COMPLETE_URL}

{
  "ext_trans_id": 1042,
  "ext_payment_id": 3311,
  "order_id": "A-10245",
  "prepare_id": "778812",
  "amount": 4500000,
  "action": 1,
  "sign_time": "2026-07-28 14:07:03",
  "sign_string": "1ae4...7c02"
}
ПолеТипОписание
ext_trans_idintegerНомер платежа в системе Starex Pay
ext_payment_idintegerНомер транзакции в системе Starex Pay
order_idstringНомер заказа в вашей системе
prepare_idstringИдентификатор платежа в вашей системе, полученный в ответе на запрос prepare
amountintegerСумма платежа (в тийинах)
actionintegerВыполняемое действие. 1 — Complete
sign_timestringВремя запроса. Формат YYYY-MM-DD HH:MM:SS
sign_stringstring Проверочная строка (SHA-256):
sha256(ext_trans_id + SECRET_KEY + order_id + prepare_id + amount + action + sign_time)
Ответ
{
  "error": 0,
  "error_note": "OK",
  "confirm_id": "990145"
}
ПолеТипОписание
errorintegerРезультат операции. 0 — успешно
error_notestringОписание результата
confirm_idstringИдентификатор подтверждения в вашей системе

Ошибка, возвращённая в ответе complete, помечает платёж как неуспешный.

5. Возвращаемые коды ошибок

КодСообщение покупателюКогда возвращается
0Операция успешно выполненаВсё в порядке
-1Не удалось проверить платёжsign_string не совпал
-2Неверная сумма платежаamount не равен сумме заказа
-3Запрошенная операция недоступнаНеизвестное значение action
-4Этот заказ уже оплаченПовторная попытка оплаты
-5Заказ не найденНет заказа по order_id
-6Транзакция не найденаПлатёж по prepare_id не найден
-7Не удалось обновить заказ, попробуйте ещё разВнутренний сбой
-8Некорректный платёжный запросОтсутствует обязательное поле
-9Эта транзакция уже отмененаПопытка продолжить отменённый платёж

Код, которого нет в списке, считается неуспешным платежом.