دليل API كامل للامتثال للمرحلة الثانية من الفوترة الإلكترونية
آخر تحديث: ٣٠ مارس ٢٠٢٦
**بوابة فاتورة** هي منصة الفوترة الإلكترونية لهيئة الزكاة والضريبة والجمارك. يجب على جميع المكلفين في السعودية دمج أنظمتهم مع واجهات برمجة تطبيقات فاتورة للامتثال للمرحلة الثانية. يغطي هذا الدليل الشامل كل شيء من المصادقة إلى النشر في الإنتاج.
| Endpoint Name | Endpoint URL | Method | Description |
|---|---|---|---|
| الموافقة (B2B) | https://api.fatoora.zatca.gov.sa/api/v1/invoice/clearance | POST | التحقق في الوقت الفعلي لفواتير B2B |
| الإبلاغ (B2C) | https://api.fatoora.zatca.gov.sa/api/v1/invoice/reporting | POST | تقديم خلال ٢٤ ساعة لفواتير B2C |
| إنشاء CSR | https://api.fatoora.zatca.gov.sa/api/v1/csr | POST | إنشاء طلب توقيع الشهادة |
| فحص الامتثال | https://sandbox.fatoora.zatca.gov.sa/api/v1/compliance | POST | التحقق من XML قبل التقديم |
تستخدم واجهات برمجة تطبيقات فاتورة OAuth 2.0 مع بيانات اعتماد العميل. بعد تثبيت شهادة CSD، يجب الحصول على بيانات الاعتماد من بوابة زكاتكا:
نقطة نهاية الرمز المميز: https://api.fatoora.zatca.gov.sa/oauth2/token
إليك مثال كامل لـ PHP cURL لتقديم فاتورة إلى نقطة نهاية الموافقة:
تم قبول الفاتورة من قبل زكاتكا. يمكنك مشاركتها مع المشتري.
Action: المتابعة مع التسليم
فشل التحقق من الفاتورة. تحقق من هيكل XML والحقول.
Action: تصحيح وإعادة تقديم فاتورة جديدة
تم قبول الفاتورة للإبلاغ (لا يوجد تحقق في الوقت الفعلي).
Action: لا حاجة لمزيد من الإجراءات
الفاتورة قيد المراجعة. انتظر الحالة النهائية.
Action: تنفيذ webhook لتلقي التحديث
| HTTP Code | Meaning | Solution |
|---|---|---|
| 200 | نجاح - تمت معالجة الفاتورة بشكل صحيح | مواصلة التدفق الطبيعي |
| 400 | طلب غير صالح - تنسيق XML غير صالح أو حقول مفقودة | التحقق من XML مقابل مخطط UBL 2.1 |
| 401 | غير مصرح - فشلت المصادقة | التحقق من صحة access_token وإعادة إنشائه إذا انتهت صلاحيته |
| 403 | محظور - شهادة CSD منتهية الصلاحية أو غير صالحة | تجديد شهادة CSD فورًا |
| 429 | تم تجاوز حد المعدل - عدد الطلبات كبير جدًا | تنفيذ التراجع الأسي وتقليل معدل الطلبات |
| 500 | خطأ في الخادم الداخلي - مشكلة في خادم زكاتكا | إعادة المحاولة مع التراجع الأسي |
| 503 | الخدمة غير متوفرة - صيانة أو حمل زائد | الانتظار وإعادة المحاولة بعد ٥-١٠ دقائق |
اختبر دائمًا تكاملك في بيئة اختبار زكاتكا قبل الانتقال إلى الإنتاج:
🔗 https://sandbox.fatoora.zatca.gov.sa
A: نقطة نهاية الموافقة: ٢-٥ ثوانٍ (متزامن). نقطة نهاية الإبلاغ: رد في غضون ثوانٍ (غير متزامن)، ولكن قد يتم تحديث حالة الفاتورة لاحقًا عبر webhook.
A: الحد القياسي هو ١٠ طلبات في الثانية. للأحجام الأعلى، اتصل بدعم زكاتكا لطلب حدود متزايدة. قم بتنفيذ نظام قائمة انتظار للتقديمات المجمعة.
A: نعم، تنتهي صلاحية رموز الوصول عادةً بعد ساعة واحدة. قم بتنفيذ منطق التحديث التلقائي للحصول على رمز جديد قبل انتهاء الصلاحية.
A: لا يمكنك تحرير فاتورة مرفوضة. يجب عليك تصحيح المشكلة في نظامك وتقديم فاتورة جديدة برقم فاتورة جديد. لا يمكن إعادة تقديم الفواتير المرفوضة.
A: توفر بيئة اختبار زكاتكا شهادات CSD اختبارية مجانًا. يمكنك إنشاؤها مباشرة من بوابة بيئة الاختبار دون الشراء من مقدمي الخدمات التجاريين.
A: الموافقة متزامنة - تنتظر ردًا فوريًا. الإبلاغ غير متزامن - تقدم وتتلقى إقرارًا، لكن الحالة النهائية تأتي لاحقًا عبر webhook.
A: لا، IP الثابت غير مطلوب. ومع ذلك، تأكد من عدم حظر IP الصادر لخادمك بواسطة جدار حماية زكاتكا.
A: تقبل زكاتكا نقاط نهاية HTTPS فقط. يجب أن يكون عنوان URL متاحًا للجمهور. استخدم طريقة POST لاستقبال حمولات JSON مع تحديثات حالة الفاتورة.