Разработчикам

Три способа подключить приём платежей — от готовой ссылки без единой строки кода до полноценной интеграции по API с вебхуками.

01

Ссылка на оплату

Создаётся в кабинете. Подходит для мессенджеров, счетов и QR-кода на витрине.

Без кода
02

Готовый модуль

Интеграция с InSales и другими платформами: платёжный метод появляется прямо в корзине магазина.

Установка за час
03

REST API

Создание платежа запросом с сервера, готовая страница оплаты на нашем домене или форма прямо на вашем сайте, автосписания по сохранённой карте, статус — вебхуком с подписью HMAC-SHA256.

Полный контроль

Как выглядит интеграция

Сервер магазина создаёт платёж и получает ссылку, куда отправить покупателя. Когда платёж завершается, мы вызываем ваш адрес вебхука и подписываем вызов. Ключ выдаётся в кабинете мерчанта, раздел «API и вебхуки».

Создание платежаPOST /api/v2/payments
curl -X POST https://exezine.az/api/v2/payments \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1024-try-1" \
  -d '{
    "amount": 4990,
    "currency": "AZN",
    "order_id": "1024",
    "description": "Заказ №1024",
    "customer": { "email": "client@example.com" },
    "return_url": "https://your-site.az/thanks"
  }'
Ответ201 Created
{
  "id": "EXZ-20260922-1FA5E8A416",
  "object": "payment",
  "status": "pending",
  "amount": 4990,
  "currency": "AZN",
  "order_id": "1024",
  "checkout_url": "https://exezine.az/checkout/EXZ-20260922-1FA5E8A416",
  "created_at": "2026-09-22T20:15:00+04:00"
}
Уведомление о результатеPOST /your-webhook
X-Exezine-Event: payment.succeeded
X-Exezine-Event-Id: evt_9f1c2b3a4d5e
X-Exezine-Signature: t=1758560100,v1=<HMAC-SHA256>

{
  "id": "evt_9f1c2b3a4d5e",
  "type": "payment.succeeded",
  "livemode": true,
  "data": { "object": {
    "id": "EXZ-20260922-1FA5E8A416",
    "status": "succeeded",
    "amount": 4990,
    "currency": "AZN",
    "order_id": "1024"
  } }
}
Проверка подписи вебхукаPHP
$body = file_get_contents('php://input');
[$t, $v1] = sscanf($_SERVER['HTTP_X_EXEZINE_SIGNATURE'], 't=%d,v1=%s');
$ok = hash_equals(hash_hmac('sha256', $t . '.' . $body, $secret), $v1)
      && abs(time() - $t) < 300;   // подпись действительна 5 минут
Форма оплаты на вашем сайтеHTML
<div id="pay"></div>
<script src="https://exezine.az/assets/js/exezine-checkout.js?v=2"></script>
<script>
  ExezineCheckout.mount('#pay', {
    url: payment.checkout_url,
    onSuccess: function (p) { location.href = '/thanks'; }
  });
</script>

Подписки и автосписания

Покупатель один раз оплачивает на нашей странице с сохранением карты — дальше вы списываете по ней сами, без страницы оплаты: подписки, автоплатежи, оплата в один клик. Номер карты не видите ни вы, ни мы: у вас только идентификатор pm_… и маска карты. Подключается по запросу.

Первая оплата: карта сохраняетсяPOST /api/v2/payments
{
  "amount": 4990,
  "order_id": "sub-77-1",
  "save_payment_method": true,
  "customer": { "id": "user-77", "email": "client@example.com" },
  "return_url": "https://your-site.az/thanks"
}

→ payment.succeeded: "payment_method": { "id": "pm_3f9a1c7e5b2d4f6a8c0e1b3d",
                       "card": { "brand": "visa", "last4": "4242", "exp_month": 7, "exp_year": 2030 } }
Дальше — автосписание без покупателяPOST /api/v2/payments
curl -X POST https://exezine.az/api/v2/payments \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: sub-77-2026-11" \
  -d '{
    "amount": 4990,
    "order_id": "sub-77-2026-11",
    "description": "Подписка, ноябрь",
    "payment_method": "pm_3f9a1c7e5b2d4f6a8c0e1b3d",
    "customer": { "id": "user-77" }
  }'

→ { "id": "EXZ-20261101-5C2E9A0B17", "status": "succeeded", "initiator": "merchant", … }

Что ещё умеет API

  • Полные и частичные возвраты одним запросом — с защитой от двойного возврата.
  • Отмена неоплаченного платежа: ссылка на оплату сразу перестаёт работать, приходит вебхук payment.canceled.
  • Свой срок оплаты для каждого платежа — от 5 минут до 24 часов; payment.expired приходит через несколько минут после срока.
  • Защита от двойной оплаты: второй платёж по уже оплаченному номеру заказа не создаётся.
  • Тестовый ключ и отдельный адрес для тестовых вебхуков со своим секретом — проверяйте интеграцию, не трогая боевую.
  • Платёжные ссылки через API и встроенная форма оплаты прямо на вашем сайте.

Полная спецификация в формате OpenAPI 3.1 — её можно импортировать в Postman или Insomnia.

Полная документация

Справочник по всем методам: создание платежей, статусы, возвраты и отмена, сохранённые карты и автосписания, платёжные ссылки, вебхуки с проверкой подписи и встроенная форма. Ссылку можно отправить своему разработчику — кабинет для этого не нужен.

Безопасность интеграции

  • Ключ API передаётся только в заголовке Authorization и никогда — в адресе страницы.
  • Каждый вебхук подписан HMAC-SHA256: проверьте подпись до того, как менять статус заказа.
  • Считайте вебхук возможным дублем: запоминайте id события (evt_…) и повторы просто подтверждайте ответом 200.
  • Данные карты никогда не проходят через ваш сервер — их принимает страница банка.
  • Сохранённая карта у нас — это зашифрованный токен банка, номера карты нет нигде. Карту удаляют одним запросом, и списать ею после этого нельзя.

Нужна полная спецификация или тестовый доступ? Напишите на support@exezine.az — вышлем документацию и ключи песочницы.