AVİ Partnyor API
Tətbiqinizdən AVİ-yə analiz sifarişi verin. Kataloqu göstərin, qiyməti hesablayın, ödənişi özünüz qəbul edin və sifarişi yaradın.
https://avi.medicare.az/integration/v1
https://api.avimed.az/integration/v1
Autentifikasiya
Hər sorğuda X-API-KEY header-i göndərin. Format: <partnerCode>.<secret>. Açarı AVİ bir dəfə verir. İtirilmiş açarı bərpa etmək mümkün deyil; yeni açar verilir.
Cavab formatı
Bütün cavablar eyni formatda qaytarılır. Nəticəni messageKey ilə yoxlayın. message istifadəçi üçün nəzərdə tutulub və dəyişə bilər.
Sifariş axını
Hər ssenari dörd addımdır. Ödənişi siz qəbul edirsiniz; AVİ ödəniş prosesinə müdaxilə etmir. Sifariş dərhal PAID statusunda yaradılır.
serviceIds.Müştəri paymentCode-u klinikada və ya kuryerə təqdim edir. Statusu GET /orders/{orderCode} ilə yoxlayın.
Ssenarilər
Ssenarilər yalnız kataloq və delivery parametrlərinə görə fərqlənir. Check-up paketi adi serviceId-dir. Paketi həm klinikada, həm də evdə sifariş etmək olar.
/medical-categoriesKateqoriyalar
Kataloqun ən yüksək səviyyəsidir. Kateqoriyalar: LAB, FUN, KON, CHECKUP. Adlar Accept-Language başlığında göstərilən dildə qaytarılır.
data[]/medical-sub-categoriesAlt-kateqoriyalar
Kateqoriya daxilindəki qruplar, məs. «Qan», «Hormonlar». category məcburidir. Göndərilmədikdə — 400 VALIDATION_ERROR.
data[]/medical-servicesXidmətlər
Analiz və xidmətlərin siyahısı. Qiymət burada göstərilmir, çünki klinikadan asılıdır. Qiyməti calculate sorğusu ilə əldə edin.
Parametrlərdən birini mütləq göndərin. Hər ikisi göndərilərsə, subCategory əsas götürülür. Heç biri yoxdursa — 400 VALIDATION_ERROR.
data[]?category=CHECKUP sorğusu ilə əldə edin. Paket adi xidmətdir: onun id-sini serviceIds-ə əlavə edin./clinicsKlinikalar
Aktiv klinikaların siyahısıdır; məsələn, xəritədə göstərmək üçün istifadə oluna bilər. Sifariş üçün adətən lazım deyil: klinika və qiymət calculate sorğusunun cavabında qaytarılır.
data[]/medical-services/calculateQiymət hesabla
Seçilmiş xidmətlər üzrə klinikaları və qiymətləri qaytarır. Sifariş yaratmır.
data[], hər element bir klinikaprice + deliveryPrice göstərin. Sifarişdə bu məbləği payment.amount kimi göndərin.delivery=true olduqda evdə xidmət göstərməyən klinikalar da siyahıdan çıxarılır.failedCount > 0 — klinikada bəzi xidmətlər yoxdur. Bu klinika üçün sifariş yaradıla bilməz; 404 SERVICE_NOT_AVAILABLE qaytarılır. Onu siyahıdan çıxarın və ya «natamam» kimi göstərin./ordersSifariş yarat
Müştəri ödədikdən sonra sifarişi yaradın. Uğurlu sorğuda 200 OK qaytarılır. Şəbəkə xətasında eyni externalOrderId ilə təkrarlayın. İkinci sifariş yaradılmır (ətraflı).
patientpaymentdetail — yalnız delivery=truedatapaymentCode müştəriyə göstərilir. orderCode yalnız backend üçündür: status və ləğv sorğularında./orders/{orderCode}Sifariş statusu
Cavab POST /orders ilə eynidir. Yalnız öz sifarişlərinizi görürsünüz. Başqa sifariş üçün 404 ORDER_NOT_FOUND qaytarılır.
PAID statusunda yaradılır. Ləğvdən sonra REJECTED olur. PARTIALLY_* — xidmətlərin yalnız bir hissəsi bu statusdadır./orders/{orderCode}/cancelSifarişi ləğv et
Yalnız heç bir analiz götürülməyibsə mümkündür (bütün itemStatus = PENDING). Uğurlu sorğuda 200 OK və yenilənmiş sifariş qaytarılır. orderStatus REJECTED olur. paymentCode etibarsız olur. Sifariş aylıq akta daxil edilmir.
Təkrar sorğular
Sorğu serverimizə çata bilər, lakin cavab sizə çatmaya bilər. Müştəri artıq ödəyib. Təkrar sorğu ikinci sifariş yaratmamalıdır. Bunu externalOrderId təmin edir:
externalOrderId.externalOrderId.409 DUPLICATE_EXTERNAL_ORDER_ID qaytarılarsa, sifariş artıq mövcuddur. data.orderCode ilə GET /orders/{orderCode} çağırın və paymentCode-u götürün.Eyni anda iki eyni sorğu göndərilsə belə, yalnız bir sifariş yaradılır. X-Trace-Id bunu etmir. O yalnız log üçündür.
Retry tövsiyələri
Xəta kodları
Xətanı messageKey əsasında müəyyən edin. Validasiya xətasının detalları errors[]-dədir.
Məbləğ uyğun gəlmədikdə calculate sorğusunu yenidən göndərin. Yeni məbləği müştəriyə göstərin. 500 xətasında cavabdakı X-Trace-Id header-ini bizə göndərin.
Hesablaşma
payment.amount hesabladığımız məbləğlə uyğun gəlmədikdə sifariş yaradılmır.payment.reference aktda uzlaşdırma üçün saxlanılır. Ləğv edilmiş sifarişlər akta daxil edilmir.Test ssenariləri
Real mühitə keçməzdən əvvəl test mühitində (avi.medicare.az) yoxlayın. Test açarını AVİ ayrıca verir.
Dəstək
Texniki suallarınız üçün AVİ komandası ilə əlaqə saxlayın. Müraciətinizə aşağıdakı məlumatları əlavə edin: