Developerlərə
Ödəniş qəbulunu qoşmağın üç yolu — bir sətir kod yazmadan hazır linkdən tutmuş, vebhuklarla tam API inteqrasiyasına qədər.
Ödəniş linki
Kabinetdə yaradılır. Messencerlər, hesab-fakturalar və vitrindəki QR kod üçün uyğundur.
KodsuzHazır modul
InSales və digər platformalarla inteqrasiya: ödəniş üsulu birbaşa mağazanın səbətində görünür.
Bir saata quraşdırmaREST API
Serverdən sorğu ilə ödəniş yaratmaq, bizim domendə hazır ödəniş səhifəsi və ya birbaşa saytınızda forma, saxlanmış kartdan avtomatik silinmələr, status isə HMAC-SHA256 imzalı vebhukla.
Tam nəzarətİnteqrasiya necə görünür
Mağazanın serveri ödəniş yaradır və alıcını yönləndirmək üçün keçid alır. Ödəniş bitdikdə sizin vebhuk ünvanınıza imzalı çağırış göndəririk. Açar mərçant kabinetində «API və vebhuklar» bölməsində verilir.
POST /api/v2/paymentscurl -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": "Sifariş №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-webhookX-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; // imza 5 dəqiqə etibarlıdır
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>
Abunəliklər və avtomatik silinmələr
Alıcı bir dəfə bizim səhifədə kartı saxlamaqla ödəyir — sonra siz ödəniş səhifəsi olmadan həmin kartdan özünüz silirsiniz: abunəliklər, avtomatik ödənişlər, bir kliklə ödəniş. Kart nömrəsini nə siz, nə də biz görürük: sizdə yalnız pm_… identifikatoru və kartın maskası olur. Sorğu ilə qoşulur.
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/paymentscurl -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": "Abunəlik, noyabr",
"payment_method": "pm_3f9a1c7e5b2d4f6a8c0e1b3d",
"customer": { "id": "user-77" }
}'
→ { "id": "EXZ-20261101-5C2E9A0B17", "status": "succeeded", "initiator": "merchant", … }
API daha nələri bacarır
- Tam və qismən geri qaytarmalar bir sorğu ilə — ikiqat geri qaytarmadan qorunma ilə.
- Ödənilməmiş ödənişin ləğvi: ödəniş linki dərhal işləməyi dayandırır, payment.canceled vebhuku gəlir.
- Hər ödəniş üçün öz ödəniş müddəti — 5 dəqiqədən 24 saata qədər; payment.expired müddətdən bir neçə dəqiqə sonra gəlir.
- İkiqat ödənişdən qorunma: artıq ödənilmiş sifariş nömrəsi üzrə ikinci ödəniş yaradılmır.
- Sınaq açarı və öz sirri olan sınaq vebhukları üçün ayrıca ünvan — inteqrasiyanı real işə toxunmadan yoxlayın.
- API vasitəsilə ödəniş linkləri və birbaşa saytınızda quraşdırılmış ödəniş forması.
Tam spesifikasiya OpenAPI 3.1 formatında — Postman və ya Insomnia-ya import etmək olar.
Tam sənədləşmə
Bütün metodlar üzrə arayış: ödənişlərin yaradılması, statuslar, geri qaytarmalar və ləğv, saxlanmış kartlar və avtomatik silinmələr, ödəniş linkləri, imza yoxlaması ilə vebhuklar və quraşdırılmış forma. Linki öz developerinizə göndərə bilərsiniz — bunun üçün kabinet lazım deyil.
İnteqrasiyanın təhlükəsizliyi
- API açarı yalnız Authorization başlığında ötürülür, heç vaxt səhifənin ünvanında yox.
- Hər vebhuk HMAC-SHA256 ilə imzalanır: sifarişin statusunu dəyişməzdən əvvəl imzanı yoxlayın.
- Vebhuku mümkün təkrar sayın: hadisənin id-sini (evt_…) yadda saxlayın və təkrarları sadəcə 200 cavabı ilə təsdiqləyin.
- Kart məlumatları heç vaxt sizin serverdən keçmir — onları bankın səhifəsi qəbul edir.
- Bizdə saxlanmış kart — bankın şifrələnmiş tokenidir, kart nömrəsi heç yerdə yoxdur. Kart bir sorğu ilə silinir və bundan sonra ondan silmək olmur.
Tam spesifikasiya və ya test girişi lazımdır? support@exezine.az ünvanına yazın — sənədləri və sandbox açarlarını göndərəcəyik.