Developers

Three ways to accept payments — from a ready-made link with no code at all to a full API integration with webhooks.

01

Payment link

Created in the dashboard. Good for messengers, invoices and a QR code at the counter.

No code
02

Ready-made module

Integration with InSales and other platforms: the payment method appears right in the shop basket.

Set up in an hour
03

REST API

Create a payment with a server-side request; receive the status via an HMAC-SHA256 signed webhook.

Full control

What the integration looks like

Your server creates a payment and receives the link to send the customer to. When the payment completes, we call your webhook URL. The key is issued in the merchant dashboard under “API and webhooks”.

Creating a paymentPOST /api/v1/payments
curl -X POST https://exezine.az/api/v1/payments \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 49.90,
    "currency": "AZN",
    "description": "Order #1024",
    "customer_email": "client@example.com",
    "return_url": "https://your-site.az/thanks"
  }'
Result notificationPOST /your-webhook
{
  "event": "payment.succeeded",
  "order_id": "EXZ-20260812-1FA5E8A416",
  "amount": 49.90,
  "currency": "AZN",
  "status": "paid",
  "signature": "<HMAC-SHA256>"
}

Integration security

  • The API key is sent in the Authorization header only — never in the page URL.
  • Every webhook is signed with HMAC-SHA256: verify the signature before changing an order status.
  • Treat a webhook as a possible duplicate: process it idempotently by order_id.
  • Card data never passes through your server — it is captured on the bank page.

Need the full specification or sandbox access? Write to support@exezine.az and we will send the documentation and test keys.