Русский O'zbek English

API Документация

Интегрируйте SmartPay на сайт за пару минут: REST API, webhook и платёжные ссылки.

Аутентификация

Все запросы к API (кроме создания заказа) требуют заголовок:

X-Api-Key: spk_ваш_api_ключ

API ключ доступен в панели управления → Настройки.

Создание платежа (инвойса)

POST /api/create

Создаёт инвойс и возвращает 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)
email string Email покупателя для уведомлений
user_data string Дополнительные данные продавца

Формирование подписи (sign)

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"
}

Получение информации о платеже

GET /api/info?invoice_id=SP…

Требует заголовок 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 возвращает активные кассиры вашего мерчант-профиля.

Webhook уведомления

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...

Проверка webhook-подписи

sign = SHA256(отсортированные_значения_через_двоеточие + ":" + secret_key2).

$data = ['invoice_id'=>..., 'order_id'=>..., 'amount'=>..., 'currency'=>..., 'status'=>...];
ksort($data);
$sign = hash('sha256', implode(':', array_values($data)).':'.$secret_key2);

Алгоритм интеграции

  1. Зарегистрируйте мерчант-аккаунт и получите UUID вместе с ключами.
  2. Добавьте кассиры и задайте валюты, лимиты и иконки.
  3. Создайте инвойс через /api/create с суммой, order_id и подписью.
  4. Перенаправьте клиента на полученную ссылку и отслеживайте статус через /api/info или webhook.

Работа с платформой