الواجهة البرمجية في مرحلة تجريبية. يجب أن تتبع مفاتيح API الشخصية متجراً ذا خطة Enterprise سارية، وإلا فكل نداء يُرجع 403؛ أما رموز التطبيقات المثبّتة فتعمل مع كل الخطط. وhttps://api.dzbuild.app هو المضيف الوحيد المدعوم.
v1.10 - 2026-10-09 (تجريبي)
✨ DZBuild POS. يرتبط برنامج الصندوق المجاني على ويندوز بالمتجر عبر OAuth، مع الاكتشاف في
https://dzbuild.com/.well-known/oauth-authorization-server، ويستدعي نقاطه الخاصة برمز الصندوق:GET /v1/meوPOST /v1/devicesونبضات الاتصال وGET /v1/locationsوPOST /v1/locationsوPOST /v1/products/batchوPOST /v1/media/uploadsوPOST /v1/inventory/adjustments/batchوPOST /v1/pos/salesوPOST /v1/pos/sales/{sale_id}/refundsوPOST /v1/pos/closuresوPOST /v1/orders/{id}/claimوGET /v1/events. مسارات النسخ الاحتياطية الأربعة تُرجع501 not_implemented. مفاتيح API الشخصية ورموز التطبيقات تتلقى403على المسارات الخاصة بالصندوق. انظر DZBuild POS.✨ يُرجع
GET /v1/storeالحقولcurrency(DZD) وstock_deduction(on_createأوon_confirm) وplanوplan_limits. الخطة المدفوعة المنتهية تُقرأfree، وplan_limits.active_productsيكونnullعندما لا يكون للخطة حدّ.⚠️ لا تغيير في
POST /v1/productsعند حدّ الخطة: ما زالت تُرجع400 bad_requestبنفس الرسالة. الرمز الجديد402 product_limit_reachedخاص بنداء الدفعة من الصندوق.
v1.9 - 2026-10-08 (تجريبي)
✨ حقول شريط الشراء. يقبل
PATCH /v1/store/designالحقولbuybar_show_mobileوbuybar_show_qtyوfc_show_qtyوproduct_button_size(normalأوlarge) في كل الخطط: تُظهر شريط الشراء على الهاتف والكمية في الشريط وفي نموذج الطلب السريع أو تُخفيها، وتضبط حجم أزرار الشراء. انظر المتجر.✨ يُرجع
GET /v1/storeالحقولstore_themeوfast_checkout_themeوvariant_card_style، أي المفاتيح الثلاثة المستعملة، للقراءة فقط.✨ يعرض
GET /v1/themesقوالب الطلب السريع وأنماط المتغيرات فيfast_checkoutوvariant_styles، ولكل عنصر خطته وهل يستطيع المتجر استعماله وأيّها المستعمل. انظر القوالب.✨ كتابات التصميم والقوالب تُرجع
change_id. تحملPATCH /v1/store/designوPOST /v1/store/themeوPOST /v1/store/fast-checkout-themeوPOST /v1/store/variant-styleالرقم الذي ترسله إلىPOST /v1/changes/{id}/undo.
v1.8.1 - 2026-10-02 (تجريبي)
⚠️ حذف منتج تستعمله صفحة هبوط صار مرفوضاً بـ
409 product_in_use_by_landing_page. يذكر الخطأ الصفحات فيlanding_pages[]معidوtitleوslug. احذف صفحة الهبوط أولاً، أو اربطها بمنتج آخر عبرPATCH /v1/landing-pages/{id}، ثم احذف المنتج. انظر المنتجات.
v1.8 - 2026-09-28 (تجريبي)
✨ أقسام الصفحة الرئيسية. تقرأ
GET /v1/store/home-layoutأقسام الصفحة الرئيسية للمتجر وأنواع الأقسام التي يقبلها قالبه. تضيفPOST /v1/store/home-layout/sectionsقسماً، وتغيّرPATCHوDELETE /v1/store/home-layout/sections/{id}قسماً أو تحذفه، وتحدّدPOST /v1/store/home-layout/reorderالترتيب، وتستبدلPUT /v1/store/home-layoutالقائمة كلها. يمكن إضافة عشرة أنواع من الأقسام في كل قالب، منهاcategory-productsوbannerوfaqوvideo. إعدادات الصور تأخذ صورة رُفعت من لوحة التحكم: لا يمكن رفعها عبر الواجهة البرمجية بعد. تستعمل هذه النقاطstore:readوstore:write، فالمفاتيح الحالية تعمل معها. انظر أقسام الصفحة الرئيسية.✨ كل كتابة على تخطيط الصفحة الرئيسية يمكن التراجع عنها، بما فيها إضافة قسم. تحمل الاستجابة
change_idلـPOST /v1/changes/{id}/undo، التي تُرجع409 layout_changedإذا تغيّرت الصفحة من جديد منذ ذلك.⚠️ لكتابات تخطيط الصفحة الرئيسية ميزانيتها الخاصة: 30 في الدقيقة و5 في الوقت نفسه لكل متجر. انظر حدود المعدل.
v1.7 - 2026-09-26 (تجريبي)
✨ تطبيقات الأطراف الأخرى. يُثبَّت التطبيق على المتجر عبر OAuth ويستدعي الواجهة البرمجية برمز تثبيت، مع أي خطة. قد تتلقى نداءات التطبيق أربعة رموز
403جديدة، هيapp_uninstalledوapp_suspendedوapp_not_approvedوapp_plan_required، ولكل تثبيت حدّ خاص قدره 120 طلباً في الدقيقة يُفحص قبل حدّ المتجر. انظر الأخطاء.⚠️ تاريخ
expires_atللمفتاح صار مُطبَّقاً: بعد انقضائه يُرجع المفتاح401.⚠️ مفاتيح Copilot والموصلات لا تدير المفاتيح: تتلقى
403على/v1/keys.✨ المفاتيح الجديدة تحمل
analytics:read؛ أما المفاتيح الأقدم فتبقى على النطاقات التي أُنشئت بها.⚠️ webhooks الخاصة بـ API v1 صارت موقَّعة بسر كل webhook (
X-DZ-Signature: t=<ts>,v1=<hmac>)، والتسجيل يقبلhttps://فقط، و408و429يُعادان، وأي 4xx أو 3xx آخر ينتقل فوراً إلى قائمة الرسائل الميتة. الـ webhooks المسجّلة قبل ذلك تحتاج تسجيلاً جديداً. انظر التحقق من التواقيع.✨
PUTيقبلIdempotency-Keyاختيارياً، ومعه تنطبق قواعد إعادة التشغيل نفسها.⚠️ إعادة التشغيل idempotent تعمل على المضيفين معاً، وإعادة استعمال مفتاح بجسم مختلف تُرجع
422 idempotency_key_reuse. انظر التكرار الآمن.⚠️ لا يوجد طلب تمهيدي CORS: طلب
OPTIONSيتلقى401المعتاد، والواجهة البرمجية مخصّصة للنداءات من خادم إلى خادم فقط.⚠️ حالات الرفض تعبر الحافة كما هي: رد
403الخاص بالتطبيقات، أو429، منapi.dzbuild.appيصل بحالته ومحتواه الحقيقيين بدل401.
v1.6 - 2026-09-26 (تجريبي)
✨ رسائل واتساب عبر الواجهة البرمجية.
GET /v1/whatsapp/templatesيسرد قوالب رسائل الطلبات التي اعتمدتها المنصة مع حالة اعتمادها، وGET /v1/whatsapp/balanceيقرأ رصيد واتساب الخاص بالمتجر، وGET /v1/whatsapp/messagesيسرد الرسائل المرسلة للزبائن، وPOST /v1/orders/{id}/whatsappيرسل قالباً واحداً لزبون طلب معيّن ويخصمه من الرصيد. يجب أن تكون إضافة مرسل واتساب مفعّلة. النطاقان الجديدان هماwhatsapp:readوwhatsapp:send. انظر رسائل واتساب.⚠️ النطاقات تُجمَّد لحظة إنشاء المفتاح، فالمفتاح الذي أُنشئ قبل هذا الإصدار لا يملك النطاقين الجديدين: أنشئ مفتاحاً جديداً لاستعمالهما.
⚠️ إعادة المحاولة بعد
402 no_creditأو422تحتاجIdempotency-Keyجديداً. أول استجابة تُحفظ 24 ساعة وتُعاد للمفتاح نفسه والجسم نفسه، فشحن الرصيد أو تصحيح الطلب لا يغيّر شيئاً مع المفتاح القديم.✨ كل رسالة في
GET /v1/whatsapp/messagesتحمل الحقلbilling:chargedعندما يفوتر WhatsApp الرسالة، وfreeعندما يعود رصيدها إلى المحفظة، وnullما دامت النتيجة غير معروفة بعد.
v1.5 - 2026-09-23 (تجريبي)
⚠️ صارت إعادة محاولة تسليم الـ webhooks تتباعد (دقيقة، 5 دقائق، 30 دقيقة، ساعتان) وتتوقف بعد 5 محاولات فاشلة؛ وصار انتهاء المهلة وفشل DNS/TLS يُعاد بدل أن يُهجر.
v1.4 — 2026-09-05 (تجريبي)
✨ صار بالإمكان كتابة الطلبات.
POST /v1/ordersينشئ طلباً، وPATCH /v1/orders/{id}ينقل حالته، وPOST /v1/orders/{id}/cancelيلغيه، وPOST /v1/orders/{id}/send-to-deliveryيسلّم طرداً واحداً لشركة التوصيل الخاصة بالمتجر. النطاقان الجديدان هماorders:writeوdelivery:send.⚠️ النطاقات تُجمَّد لحظة إنشاء المفتاح، فالمفتاح القائم لا يكتسب النطاقين الجديدين: أنشئ مفتاحاً جديداً أو أعد ربط الموصل لاستعمالهما. والمفتاح المُنشأ من لوحة التحكم يحصل على
orders:write. أما المفاتيح المُنشأة من لوحة التحكم أو عبرPOST /v1/keysفلا تحصل أبداً علىdelivery:send، فلا تستطيع استدعاءsend-to-delivery.⚠️ التسليم لشركة التوصيل يحتاج دائماً تأكيداً صادراً من الخادم. النداء الأول يُرجع
409 confirmation_requiredمع رمز يُستعمل مرة واحدة وملخّص يذكر الزبون والهاتف والوجهة والمبلغ وشركة التوصيل؛ وهذا الرمز وحده يُرسل الطرد. القيمةconfirm: trueفي جسم الطلب غير مقبولة في هذه النقطة من أي مستدعٍ. والطلب المُرسَل سابقاً يُرفض بـ409 already_sent.⚠️ حساب مال الطلب صار من الخادم. قيمتا
shipping_costوpayment_feeالقادمتان من المستدعي تُتجاهلان: سعر التوصيل يأتي من جدول أسعار المتجر نفسه حسب الولاية ونوع التوصيل، وdiscountمسقوف بمجموع الطلب زائد التوصيل. أسعار المنتجات كانت تعمل هكذا أصلاً.✨
GET /v1/shipping/coverageيجيب هل تخدم شركة التوصيل المرتبطة بلديةً معيّنة، وهل لها مكتب في ولاية معيّنة، مع تاريخ تحديث بيانات الشركة نفسها.✨
GET /v1/shipping/providersصار يذكر أيضاً شركة توصيل مضبوطة مباشرة على المتجر لا مضافة من قائمة المزوّدين، إضافة إلىis_send_defaultوeconomic_availableوsynced_tierوstock_accountوauto_validateوcustom_name. لا تُرجَع بيانات الاعتماد ولا العناوين أبداً.✨
GET /v1/landing-pages/{id}/checkيذكر ما سيصطدم به الزبون في الصفحة: استمارة طلب بلا منتج، أو غياب استمارة الطلب، أو أكثر من واحدة، أو قسم يشير إلى منتج من متجر آخر.⚠️ نشر صفحة هبوط معطوبة مرفوض. نداء
PATCH /v1/landing-pages/{id}بـstatus: activeيفشل بـlanding_page_has_no_productعندما تكون الصفحة ستأخذ الطلبات بصفر. وتعديل صفحة منشورة أصلاً ما زال يعمل حتى يمكن إصلاحها. وكتابة قسم يذكرproduct_idمن متجر آخر تُرفض كخطأ تحقق.⚠️
PATCH /v1/landing-page-sections/{id}معreplace: trueصار يعيد وضع الإعدادات الافتراضية لنوع القسم تحت ما ترسله، فالمفتاح المحذوف يعود إلى قيمته الافتراضية بدل أن يختفي من الصفحة.✨
GET /v1/connectionيسرد المتاجر التي يغطيها ربط واحد وأيّها نشط، وPOST /v1/connection/active-storeينقل المؤشّر. المؤشّر ليس صلاحية: المتجر الذي لم يوافق عليه التاجر لا مفتاح له ولا يمكن اختياره.
v1.3 — 2026-08-13 (تجريبي)
✨ إدارة ذاتية للمفاتيح — أصبح بإمكان مالكي المتاجر على خطة Enterprise إنشاء مفاتيح API وإلغاؤها من لوحة التحكم عبر الإعدادات ← واجهة API (
/dashboard/api). تُعرض الأسرار مرة واحدة عند الإنشاء.⚠️ حد المعدل في الدقيقة يُطبَّق الآن لكل متجر، مشتركًا بين جميع مفاتيح المتجر (كان سابقًا لكل مفتاح). سقف Enterprise دون تغيير عند 600 طلب/دقيقة.
⚠️ يمكن للمتجر الآن الاحتفاظ بـ 3 مفاتيح نشطة كحد أقصى (بدلًا من 20)، عبر جميع طرق الإنشاء — لوحة التحكم و
POST /v1/keysوالمفاتيح الصادرة من الدعم. إلغاء مفتاح يحرّر مكانه.
v1.2 — 2026-08-13 (تجريبي)
⚠️ صارت الواجهة البرمجية حصرية لخطة Enterprise. لا تُوثَّق المفاتيح إلا ما دام متجرها على خطة Enterprise سارية؛ وكل خطة أخرى — وكذلك اشتراك Enterprise منتهي الصلاحية — تتلقى
403 forbidden(برسالةAPI access requires an active Enterprise plan). ولا تُصدَر المفاتيح الجديدة إلا لمتاجر Enterprise. أما المفاتيح الموجودة لدى متاجر غير Enterprise فتتوقف عن العمل فورًا دون أن تُحذف: تعود إلى العمل لحظة انتقال المتجر إلى Enterprise (أو تجديده)، دون أي إعادة إصدار.⚠️ أُلغيت خطط حدود المعدل القديمة Free / Pro / Unlimited. ويبقى سقف Enterprise عند 600 طلب/دقيقة لكل مفتاح دون سقف شهري؛ والتجاوزات الخاصة بالمتجر من الدعم تبقى سارية.
v1.1 — 2026-08-12 (تجريبي)
✨ صور المنتجات عبر الواجهة البرمجية —
POST /v1/products/{id}/imagesيضيف صورة من رابطhttpsعمومي (تتكفّل DZBuild بتنزيلها وتحسينها واستضافتها)، وPATCH .../images/{image_id}يضبط النص البديل وترتيب العرض والصورة الرئيسية، وDELETE .../images/{image_id}يحذف صورة. الروابط المكرّرة لا تُضاف مرتين، وأول صورة تصبح الرئيسية تلقائيًا، والحد الأقصى 20 صورة لكل منتج.✨
PUT /v1/products/{id}/variants— إنشاء وإدارة مجموعات الأنواع وخياراتها ومخزون التركيبات في نداء واحد (استبدال كامل). أصبحت الحقولprice_adjustmentوstockوskuوimage_idوshow_as_cardلكل خيار قابلة للكتابة، وتُضبط أعلام وضع المخزون نيابةً عنك.✨
GET /v1/products/{id}يُرجع الآن كتلةcombinationsإضافةً إلى حقول الخيارات الكاملة (price_adjustment،sku،show_as_card،sort_order،is_active) والنص البديلalt_textللصور.⚠️ تغيير مؤثّر: أصبح
primary_imageوimages[].urlيُرجعان روابط CDN كاملة بدل أسماء الملفات المجرّدة. إذا كان كودك يضيف البادئة يدويًا فاحذف ذلك المنطق.
v1.0.1 — 2026-05-02 (تجريبي)
✨
POST /v1/orders— إنشاء الطلبات عبر الواجهة البرمجية. مصمَّم للثيمات المخصصة والمتاجر بدون رأس وتطبيقات الجوال وأتمتة الموزّعين. تسعير سطور الطلب معتمد على الخادم؛ دعم كامل للمتغيرات؛ idempotent.📚 دليل جديد: الثيمات والواجهات المخصصة — بناء كامل من العرض إلى السلة إلى الـ checkout والـ webhooks.
📚 دليل جديد: للموزّعين — إدارة متاجر متعددة للعملاء، عمليات بالجملة، علامة بيضاء، نماذج فوترة.
📚 دليل جديد: إعداد البيئة و .env — تخزين آمن لبيانات الاعتماد عبر Node, Python, PHP, Go, Vercel, Cloudflare, AWS, Docker/K8s, GitHub Actions.
📚 توسيع مرجع
Orders— توثيق كامل للمتغيرات بما في ذلك المخزون لكل متغيّر، المخزون لكل تركيبة، المتغيرات المتدرجة، متغيرات الصورة-نص، عروض القطع المتعددة.
v1.0 — 2026-04-30 (تجريبي)
🎉 إطلاق نسخة تجريبية أولى.
مصادقة وحد معدل وذاكرة قراءة مؤقتة، لكل مفتاح.
نقاط نهاية قراءة للمتجر / المنتجات / الطلبات / العملاء / صفحات الهبوط.
نقاط نهاية كتابة مع idempotency للمنتجات / الطلبات / صفحات الهبوط.
استيعاب غير متزامن لـ
/v1/signupsو/v1/events(202 Accepted).Webhooks صادرة مع إعادة محاولة تلقائية.