api

API транзакций

API транзакций охватывает весь жизненный цикл платежа: от создания сессий оформления заказа до запроса статуса транзакций и проверки подтверждений в блокчейне.

Обновлено: 09.03.2026

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   │                         │               │
                   └──────────────┘                         └───────────────┘
  1. Ваш сервервызываетcreate-checkout-sessionс суммой и валютой платежа.
  2. Вы получаетеpayment_urlи перенаправляете на него клиента.
  3. Клиент выбирает криптовалюту, сканирует QR-код и отправляет платеж.
  4. QuantaPay отслеживает блокчейн и ожидает подтверждений.
  5. После подтверждения 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"

Параметры

ПараметрТипОбязательныйОписание
pricenumberДаСумма платежа в указанной валюте.
currencystringДаКод валюты ISO 4217 (например,USD, EUR, GBP).
order_idstringНетВаш внутренний ID заказа для справки.
redirectstringНетURL-адрес для перенаправления клиента после успешной оплаты.
cancel_urlstringНетURL-адрес для перенаправления клиента в случае отмены.
notestringНетВнутренняя заметка, прикрепленная к транзакции.
itemsJSON-строкаНетМассив позиций (см. ниже).
customerJSON-строкаНетОбъект с информацией о клиенте.
signaturestringНетПодпись HMAC-SHA256 для защиты от несанкционированного доступа.
timestampintegerНетUnix timestamp (требуется, если предоставлена подпись).
external_referencestringНетЗашифрованная ссылка из плагина WordPress.
pluginstringНетИдентификатор исходного плагина (например,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 минут.

Ответы об ошибках

MessageCause
Отсутствуют обязательные поля: price, currencypriceравен 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_idstringДа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"

Параметры

Все параметры необязательны:

ПараметрТипОписание
paginationintegerНомер страницы (индексация с 0). Каждая страница возвращает до 100 транзакций.
searchstringПоиск по ID транзакции, хешу, сумме или описанию.
statusstringФильтр по статусу:C(завершена),P(в ожидании),X(недоплачена),E(просрочена).
cryptocurrencystringФильтр по коду криптовалюты (например,btc, eth).
date_rangearrayФильтр по диапазону дат в виде массива из двух элементов:date_range[0]=2026-01-01&date_range[1]=2026-03-01.
checkout_idstringФильтр по 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_idintegerДа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"

Параметры

ПараметрТипОбязательныйОписание
transactionJSON-строкаДаОбъект транзакции для проверки (как возвращено функциейget-transaction).

Ответ

Возвращает обновленный объект транзакции с текущим статусом подтверждения. Если достигнуто необходимое количество подтверждений, статус транзакции меняется наC(completed).

Примечание: Обычно эта функция не требуется при нормальной работе. QuantaPay автоматически проверяет подтверждения через свою систему cron. Используйте это только в том случае, если вам нужно принудительно выполнить немедленную проверку.