API транзакций
API транзакций охватывает весь жизненный цикл платежа: от создания сессий оформления заказа до запроса статуса транзакций и проверки подтверждений в блокчейне.
Transactions API охватывает полный жизненный цикл платежа: создание сессий оформления заказа, запрос статуса транзакции и проверка подтверждений в блокчейне.
Обзор процесса оплаты
┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐
│ Your Server │───>│ Create │───>│ Customer │───>│ Blockchain │
│ │ │ Checkout │ │ Pays on │ │ Confirms │
│ POST api.php│ │ Session │ │ Payment Page │ │ Transaction │
└─────────────┘ └──────────────┘ └──────────────┘ └───────────────┘
│ │
│ payment_url │
▼ ▼
┌──────────────┐ ┌───────────────┐
│ Redirect │ │ Webhook POST │
│ Customer │ │ to Your Server│
│ to pay.php │ │ │
└──────────────┘ └───────────────┘
- Ваш сервервызывает
create-checkout-sessionс суммой и валютой платежа. - Вы получаете
payment_urlи перенаправляете на него клиента. - Клиент выбирает криптовалюту, сканирует QR-код и отправляет платеж.
- QuantaPay отслеживает блокчейн и ожидает подтверждений.
- После подтверждения QuantaPay отправляетwebhookна ваш сервер и/или перенаправляет клиента.
create-checkout-session
Создает новую платежную сессию. Возвращает URL-адрес платежа, на который нужно перенаправить клиента.
Запрос
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=create-checkout-session" \
-d "api-key=YOUR_API_KEY" \
-d "price=49.99" \
-d "currency=USD"
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
price | number | Да | Сумма платежа в указанной валюте. |
currency | string | Да | Код валюты ISO 4217 (например,USD, EUR, GBP). |
order_id | string | Нет | Ваш внутренний ID заказа для справки. |
redirect | string | Нет | URL-адрес для перенаправления клиента после успешной оплаты. |
cancel_url | string | Нет | URL-адрес для перенаправления клиента в случае отмены. |
note | string | Нет | Внутренняя заметка, прикрепленная к транзакции. |
items | JSON-строка | Нет | Массив позиций (см. ниже). |
customer | JSON-строка | Нет | Объект с информацией о клиенте. |
signature | string | Нет | Подпись HMAC-SHA256 для защиты от несанкционированного доступа. |
timestamp | integer | Нет | Unix timestamp (требуется, если предоставлена подпись). |
external_reference | string | Нет | Зашифрованная ссылка из плагина WordPress. |
plugin | string | Нет | Идентификатор исходного плагина (например,woo, edd). |
Формат Items
[
{
"name": "Product Name",
"qty": 2,
"price": 24.99,
"image": "https://example.com/product.jpg"
}
]
- Максимум 50 позиций за сессию.
name: Макс. 200 символов.image: Должен быть HTTP или HTTPS URL, макс. 500 символов.
Ответ
{
"success": true,
"response": {
"session_id": "cs_a1b2c3d4e5f6a1b2c3d4",
"payment_url": "https://cloud.quantapay.app/pay.php?session=cs_a1b2c3d4e5f6a1b2c3d4",
"expires_at": "2026-03-08T11:00:00+00:00"
}
}
session_id: Уникальный идентификатор сессии (формат:cs_+ 24 шестнадцатеричных символа).payment_url: URL-адрес для перенаправления клиента для завершения оплаты.expires_at: ISO 8601 timestamp. Срок действия сессий истекает через60 минут.
Ответы об ошибках
| Message | Cause |
|---|---|
Отсутствуют обязательные поля: price, currency | priceравен 0/отсутствует илиcurrencyпустой. |
Недействительная подпись | Не удалось проверить подпись HMAC. |
Срок действия запроса истек | Временная метка отличается от времени сервера более чем на 5 минут. |
Не удалось создать сессию оформления заказа | Ошибка базы данных. |
get-checkout-session
Запрос текущего статуса сессии оформления заказа.
Запрос
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-checkout-session" \
-d "api-key=YOUR_API_KEY" \
-d "session_id=cs_a1b2c3d4e5f6a1b2c3d4"
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
session_id | string | Да | ID сессии оформления заказа (начинается сcs_). |
Ответ
{
"success": true,
"response": {
"session_id": "cs_a1b2c3d4e5f6a1b2c3d4",
"status": "paid",
"price": 49.99,
"currency": "usd",
"order_id": "ORD-12345",
"created_at": "2026-03-08T10:00:00+00:00",
"expires_at": "2026-03-08T11:00:00+00:00",
"paid_at": "2026-03-08T10:15:23+00:00"
}
}
Статусы сессии
| Статус | Описание |
|---|---|
active | Сессия открыта и ожидает оплаты. |
paid | Платеж получен и подтвержден в блокчейне. |
expired | Срок действия сессии истек без получения оплаты (через 60 минут). |
cancelled | Сессия была отменена до получения оплаты. |
get-transactions
Запрос списка транзакций с разбивкой на страницы. Полезно для сверки и отчетности.
Запрос
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-transactions" \
-d "api-key=YOUR_API_KEY" \
-d "pagination=0"
Параметры
Все параметры необязательны:
| Параметр | Тип | Описание |
|---|---|---|
pagination | integer | Номер страницы (индексация с 0). Каждая страница возвращает до 100 транзакций. |
search | string | Поиск по ID транзакции, хешу, сумме или описанию. |
status | string | Фильтр по статусу:C(завершена),P(в ожидании),X(недоплачена),E(просрочена). |
cryptocurrency | string | Фильтр по коду криптовалюты (например,btc, eth). |
date_range | array | Фильтр по диапазону дат в виде массива из двух элементов:date_range[0]=2026-01-01&date_range[1]=2026-03-01. |
checkout_id | string | Фильтр по ID кнопки оформления заказа/оплаты. |
Ответ
Возвращает массив объектов транзакций:
{
"success": true,
"response": [
{
"id": "123",
"title": "Payment #ORD-12345",
"description": "",
"from": "0xCustomerAddress...",
"to": "0xYourAddress...",
"hash": "0xTransactionHash...",
"amount": "0.025",
"amount_fiat": "49.99",
"cryptocurrency": "eth",
"currency": "usd",
"external_reference": "",
"creation_time": "2026-03-08 10:00:00",
"status": "C",
"webhook": "1",
"vat": ""
}
]
}
Статусы транзакций
| Код | Статус | Описание |
|---|---|---|
C | Завершена | Платеж подтвержден в блокчейне. |
P | В ожидании | Ожидание оплаты или подтверждения в блокчейне. |
X | Оплачено не полностью | Платеж получен, но сумма меньше требуемой. |
E | Истекло | Время ожидания платежа истекло, оплата не произведена в достаточном объеме. |
R | Возвращено | Платеж был возвращен. |
get-transaction
Получить подробную информацию об одной транзакции по ID.
Запрос
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=get-transaction" \
-d "api-key=YOUR_API_KEY" \
-d "transaction_id=123"
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
transaction_id | integer | Да | ID транзакции. |
Ответ
Возвращает объект одной транзакции (в том же формате, что иget-transactions).
check-transaction
Запустить проверку подтверждения блокчейна для определенной транзакции вручную.
Запрос
curl -X POST https://cloud.quantapay.app/api.php \
-d "function=check-transaction" \
-d "api-key=YOUR_API_KEY" \
-d "transaction=TRANSACTION_JSON"
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
transaction | JSON-строка | Да | Объект транзакции для проверки (как возвращено функциейget-transaction). |
Ответ
Возвращает обновленный объект транзакции с текущим статусом подтверждения. Если достигнуто необходимое количество подтверждений, статус транзакции меняется наC(completed).
Примечание: Обычно эта функция не требуется при нормальной работе. QuantaPay автоматически проверяет подтверждения через свою систему cron. Используйте это только в том случае, если вам нужно принудительно выполнить немедленную проверку.