API Dokumentasiya

iSend.az REST API vasitəsilə rəsmi Meta WhatsApp Business Platform funksiyalarını öz CRM, ERP, e-ticarət və digər sistemlərinizə inteqrasiya edin.

Başlanğıc

Bütün sorğular HTTPS üzərindən JSON formatında göndərilir. API cavabları da JSON formatındadır.

Əsas ünvan https://api.isend.az
Rəsmi Meta inteqrasiyası

Bu sənədləşdirmə yalnız iSend.az-a qoşulmuş rəsmi Meta WhatsApp Business nömrələri üçündür.

Autentifikasiya

API açarı hər sorğunun JSON body hissəsində apikey sahəsi ilə göndərilir.

JSON
{
  "apikey": "YOUR_API_KEY"
}
API açarını qoruyun

API açarını frontend kodunda, açıq repozitoriyada və ya üçüncü şəxslərlə paylaşmayın.

Endpoint-lər

POST

/get-user-package.json

İstifadəçinin aktiv paketini, nömrə limitini, mesaj limitini və API/toplu göndəriş icazələrini qaytarır.

Sorğu nümunəsi

cURL
curl -X POST https://api.isend.az/get-user-package.json \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY"
  }'

Uğurlu cavab

JSON
{
  "success": true,
  "package": {
    "id": 4,
    "num_limit": 3,
    "num_used": 2,
    "msg_limit": 5000,
    "msg_used": 318,
    "allow_bulk": true,
    "allow_api": true,
    "is_unlimited": 0
  }
}
POST

/numbers-list.json

İstifadəçinin iSend.az hesabına qoşulmuş aktiv rəsmi Meta WhatsApp nömrələrini qaytarır.

cURL
curl -X POST https://api.isend.az/numbers-list.json \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY"
  }'
JSON
{
  "success": true,
  "numbers": {
    "205": {
      "number": "994501234567",
      "provider": "meta",
      "status": "active",
      "meta_status": "connected",
      "verified_name": "ERAsoft"
    }
  }
}
number_id istifadəsi

Cavabdakı obyekt açarı, məsələn 205, mesaj sorğularında number_id kimi istifadə olunur.

POST

/send-message.json

Müştərinin son mesajından sonra açıq olan 24 saatlıq xidmət pəncərəsində sərbəst mətn və ya media mesajı göndərir.

Sahə Tip Təsvir
apikeystring

iSend.az kabinetində yaradılmış API açarı.

number_idinteger

numbers-list.json cavabından alınan Meta nömrə ID-si.

number_tostring

Ölkə kodu ilə, + işarəsi olmadan 10–15 rəqəmli alıcı nömrəsi.

messagestring

Göndəriləcək mətn. Maksimum 4096 simvol.

media_urlstring

Göndəriləcək şəkil, video və ya sənədin açıq HTTPS ünvanı. Məcburi deyil.

file_namestring

Sənəd üçün göstəriləcək fayl adı. Məcburi deyil.

Mətn mesajı nümunəsi

cURL
curl -X POST https://api.isend.az/send-message.json \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "number_id": 205,
    "number_to": "994771234567",
    "message": "Salam, müraciətiniz qeydə alındı."
  }'

Media mesajı nümunəsi

cURL
curl -X POST https://api.isend.az/send-message.json \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "number_id": 205,
    "number_to": "994771234567",
    "message": "Fayl əlavə olunur.",
    "media_url": "https://example.com/files/document.pdf",
    "file_name": "document.pdf"
  }'
24 saatlıq xidmət pəncərəsi

Pəncərə bağlıdırsa sərbəst mesaj qəbul edilmir və META_FREE_TEXT_24H_WINDOW_ERROR qaytarılır. Belə halda təsdiqlənmiş Meta şablonundan istifadə edin.

Uğurlu cavab

JSON
{
  "success": true,
  "provider": "meta",
  "campaign_id": 102,
  "recipient_id": 5001,
  "message_id": 8001,
  "meta_message_id": "wamid.HBgL...",
  "status": "accepted",
  "message": "Your message was accepted by Meta."
}
POST

/send-bulk-message.json

Təsdiqlənmiş Meta mesaj şablonu ilə bir və ya bir neçə alıcı üçün kampaniya yaradır və göndəriş növbəsinə əlavə edir.

Yalnız təsdiqlənmiş şablon

template_name və template_language iSend.az hesabında sinxronlaşdırılmış və Meta tərəfindən APPROVED statusu almış şablonla uyğun olmalıdır.

Sahə Tip Təsvir
apikeystring

iSend.az kabinetində yaradılmış API açarı.

number_idinteger

numbers-list.json cavabından alınan Meta nömrə ID-si.

titlestring

Kampaniyanın iSend.az daxilində görünəcək adı.

template_namestring

Meta şablonunun kiçik hərflərlə adı.

template_languagestring

Şablonun Meta dil kodu, məsələn az, en_US və ya ru.

recipientsarray

Alıcı nömrələri və hər alıcıya aid dəyişənlər massivi.

Body dəyişənləri və dinamik URL düyməsi nümunəsi

cURL
curl -X POST https://api.isend.az/send-bulk-message.json \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "number_id": 205,
    "title": "Sifariş məlumatları",
    "template_name": "sifaris_melumati",
    "template_language": "az",
    "recipients": [
      {
        "number_to": "994771234567",
        "variables": {
          "{{1}}": "Elvin",
          "{{2}}": "TS-310111",
          "{{3}}": "Təsdiqləndi"
        },
        "button_values": {
          "0": "TS-310111"
        }
      }
    ]
  }'

Növbəyə əlavə olunan kampaniya cavabı

JSON
{
  "success": true,
  "provider": "meta",
  "campaign_id": 110,
  "queued_count": 1,
  "message": "Meta template campaign added to queue."
}
Dəyişənlərin uyğunluğu

variables, header_value və button_values şablonun real komponentləri ilə tam uyğun olmalıdır. Uyğunsuzluq olduqda recipient_index ilə xəta qaytarılır.

POST

/campaign-data.json

Kampaniyaya daxil olan alıcıların cari Meta statuslarını, xəta məlumatlarını və status tarixlərini qaytarır.

cURL
curl -X POST https://api.isend.az/campaign-data.json \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "YOUR_API_KEY",
    "campaign_id": 110
  }'
JSON
{
  "success": true,
  "data": {
    "5001": {
      "provider": "meta",
      "number_from": "994501234567",
      "number_to": "994771234567",
      "message": "Template preview",
      "meta_status": "delivered",
      "error_code": "",
      "error_message": "",
      "is_sent": 1,
      "sent_at": "2026-07-18 11:10:07",
      "delivered_at": "2026-07-18 11:10:10",
      "read_at": null,
      "failed_at": null,
      "created_at": "2026-07-18 11:10:05"
    }
  }
}

Mesaj statusları

Mesaj qəbul edildikdən sonra statuslar Meta webhook hadisələrinə əsasən yenilənir.

accepted

Sorğu Meta tərəfindən qəbul edilib və mesaj ID-si yaradılıb.

sent

Mesaj Meta tərəfindən göndərilib.

delivered

Mesaj alıcının WhatsApp cihazına çatdırılıb.

read

Mesaj alıcı tərəfindən oxunub.

failed

Mesaj göndərilməyib; error_code və error_message sahələrini yoxlayın.

Xəta kodları

Xəta cavablarında success false olur və error sahəsində sistem kodu qaytarılır.

META_FREE_TEXT_24H_WINDOW_ERROR24 saatlıq xidmət pəncərəsi bağlıdır.
META_TEMPLATE_NOT_APPROVEDŞablon tapılmadı və ya Meta tərəfindən təsdiqlənməyib.
META_TEMPLATE_VARIABLES_INVALIDŞablon dəyişənləri komponentlərə uyğun deyil.
API_NOT_ALLOWEDİstifadəçinin paketində API istifadəsinə icazə yoxdur.
MESSAGE_LIMIT_EXCEEDEDPaketin mesaj limiti kifayət etmir.
JSON
{
  "success": false,
  "provider": "meta",
  "error": "META_TEMPLATE_VARIABLES_INVALID",
  "recipient_index": 0
}