Интегрируйте SmartPay на сайт за пару минут: REST API, webhook и платёжные ссылки.
Все запросы к API (кроме создания заказа) требуют заголовок:
X-Api-Key: spk_ваш_api_ключ
API ключ доступен в панели управления → Настройки.
Создаёт инвойс и возвращает URL платёжной страницы.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| merchant_id | string | ✔ | Ваш UUID мерчанта |
| amount | float | ✔ | Сумма платежа |
| currency | string | ✔ | Валюта (UZS, USD, EUR…) |
| order_id | string | ✔ | Уникальный ID заказа на вашей стороне |
| sign | string | ✔ | SHA256-подпись (см. ниже) |
| description | string | — | Описание платежа |
| success_url | string | — | Редирект после успеха |
| fail_url | string | — | Редирект после отклонения |
| webhook_url | string | — | Переопределить webhook URL |
| lang | string | — | Язык платёжной страницы (ru/uz/en) |
| string | — | Email покупателя для уведомлений | |
| user_data | string | — | Дополнительные данные продавца |
sign = SHA256(merchant_id:amount:currency:secret_key1:order_id)
// PHP example
$sign = hash('sha256',
$merchant_id.':'.$amount.':'.$currency.':'.$secret_key1.':'.$order_id
);
{
"type": "success",
"invoice_id": "SP3a7f...",
"url": "https://your-domain.com/pay/?id=SP3a7f...",
"amount": 50000,
"currency": "UZS",
"order_id": "ORD-123",
"expires_at": "2024-01-01 12:00:00"
}
Требует заголовок X-Api-Key и параметр invoice_id.
{
"type": "success",
"invoice_id": "SP3a7f...",
"order_id": "ORD-123",
"amount": 50000,
"currency": "UZS",
"status": "paid",
"paid_at": "2024-01-01 11:45:00"
}
Возможные статусы: pending, awaiting, checking, paid, rejected, expired.
GET /api/methods возвращает активные кассиры вашего мерчант-профиля.
SmartPay отправит POST-запрос на ваш webhook URL при изменении статуса платежа.
POST https://yoursite.com/webhook Content-Type: application/x-www-form-urlencoded invoice_id=SP3a7f...&order_id=ORD-123&amount=50000¤cy=UZS&status=paid&sign=SHA256...
sign = SHA256(отсортированные_значения_через_двоеточие + ":" + secret_key2).
$data = ['invoice_id'=>..., 'order_id'=>..., 'amount'=>..., 'currency'=>..., 'status'=>...];
ksort($data);
$sign = hash('sha256', implode(':', array_values($data)).':'.$secret_key2);