بيئة الاختبار
أي مفتاح يبدأ بـ fwt_test_ يعمل في بيئة معزولة تمامًا:
لا اتصال ببوابة الفوترة الوطنية، ولا أثر ضريبي، ولا حدّ على عدد الفواتير.
المسارات وأشكال الطلب والردّ مطابقة للإنتاج حرفيًا.
ما يتغيّر في بيئة الاختبار
| الجانب | الاختبار | الإنتاج |
|---|---|---|
| الاتصال بالبوابة | لا يحدث | يحدث فعليًا |
| الحصة الشهرية | غير محدودة | حسب الخطة |
| حدّ الطلبات في الدقيقة | مطبَّق (نفس الخطة) | مطبَّق |
qr_content | بنية TLV محاكاة | من البوابة (EINV_QR) |
jofotara.status | SANDBOX_SUBMITTED | SUBMITTED أو ما تُعيده البوابة |
| بيانات اعتماد البوابة | غير مطلوبة | مطلوبة، وإلّا 409 |
| الويب هوك | يُرسل فعليًا إلى رابطك | يُرسل فعليًا |
محاكاة الرفض
اختبار المسار السعيد وحده لا يكفي. لمحاكاة رفض من البوابة،
اجعل invoice_number يبدأ بـ TEST-REJECT:
curl -X POST https://fawtara.codexal.co/api/v1/invoices \
-H "Authorization: Bearer fwt_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"invoice_number": "TEST-REJECT-001",
"customer": { "name": "عميل اختبار" },
"lines": [ { "name": "صنف", "quantity": 1, "unit_price": 10 } ]
}'
HTTP/1.1 202 Accepted
{
"data": {
"id": "inv_…",
"status": "rejected",
"qr_content": null,
"jofotara": { "status": "SANDBOX_REJECTED", "http_code": 400 },
"error": {
"type": "jofotara_rejected",
"message": "رفض محاكى من بيئة الاختبار (رقم الفاتورة يبدأ بـ TEST-REJECT)."
}
},
"warning": "لم تُقبل الفاتورة من البوابة. راجع الحقل error …"
}
لماذا الاختبار هنا ليس اختيارياً
لن يتمكن المكلف من تنظيم الفواتير باستخدام المنصة إذا قام بالربط مع الأجهزة.
هذه رسالة تنبيهية يعرضها نظام الفوترة الوطني قبل تأكيد الربط. بمجرد تفعيله لتسلسل مصدر دخل معيّن، يتوقّف إصدار الفواتير يدوياً من المنصة لذلك التسلسل ويصبح نظامك هو المصدر الوحيد — فلا توجد شبكة أمان تعود إليها إن اكتشفت ثغرة في تكاملك بعد الإطلاق. أنهِ القائمة التالية هنا أولاً. التفاصيل في مفاتيح البوابة من المنصة.
قائمة فحص قبل الإنتاج
- نجاح إنشاء فاتورة نقدية وأخرى ذمم.
- التعامل الصحيح مع
202وstatus = rejected(لا تعتبرها نجاحًا!). - التعامل مع
422وعرضerror.fieldsلمستخدمك. - التعامل مع
429بإعادة محاولة بعدRetry-After. - إرسال
Idempotency-Keyفريد لكل فاتورة في نظامك. - تخزين
idوuuidوicvوqr_contentفي جدول فواتيرك. - اختبار إشعار دائن على فاتورة اختبارية.
- التحقّق من توقيع الـ Webhook إن كنت تستخدمه.
- مراقبة
GET /v1/usageللتنبيه قبل نفاد الحصة.
مختبر داخل اللوحة
إن لم ترغب بكتابة كود بعد، استخدم مختبر الـ API في لوحة التحكم: ألصق JSON، وعايِن مستند UBL، أو أرسل على بيئة الاختبار بزر واحد.