Skip to content

تأكيد الطلبات عبر واتساب (v1) ​

ابعت كل طلب جديد لـ Otpera. العميل بيستلم رسالة واتساب فيها تفاصيل الطلب واختيار بضغطة واحدة: تأكيد أو تأجيل التوصيل أو إلغاء. Otpera بيسجّل الرد ويبلّغ نظامك على Webhook. كده بتقلّل الشحنات المرتجعة في طلبات الدفع عند الاستلام.

بتستخدم Shopify؟ مش محتاج كود — شوف Shopify.

النقاط ​

النقطةالصلاحيةالغرض
POST /ordersorders:writeإنشاء طلب وإرسال التأكيد
GET /orders/{id}orders:readالطلب بالمنتجات والسجل والرسائل
POST /orders/{id}/confirmation/resendorders:writeإعادة إرسال رسالة التأكيد

إنشاء طلب ​

الحقلمطلوبملاحظات
externalIdأيوهرقم الطلب عندك، فريد لكل source
sourceلأapi (افتراضي)، shopify، easyorder، vondera، woocommerce، custom
customer.phoneأيوهE.164 أو رقم مصري محلي 01XXXXXXXXX
currencyأيوهمثلًا EGP
items[]أيوه{ name, quantity, unitPrice, variant?, sku? }
shipping / discountلأبالقروش، الافتراضي 0
totalلأللمراجعة: لازم يساوي المنتجات + الشحن − الخصم وإلا 422
paymentMethodلأمثلًا cod
shippingAddressلأ{ line1, line2, city, region, postalCode, country }

الفلوس بالقروش

unitPrice: 45000 مع EGP يعني ٤٥٠ جنيه.

bash
curl -X POST https://api.otpera.com/api/v1/orders \
  -H "Authorization: Bearer $OTPERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042" \
  -d '{
    "externalId": "1042",
    "customer": { "phone": "01012345678", "name": "منى عادل" },
    "currency": "EGP",
    "items": [{ "name": "أباجورة مكتب", "quantity": 1, "unitPrice": 45000 }],
    "shipping": 5000,
    "paymentMethod": "cod"
  }'

هيدر الرد Otpera-Confirmation بيقولك حصل إيه في رسالة واتساب: sent أو disabled أو no_number أو send_failed أو error.

لو بعت نفس (source, externalId) تاني، بيرجع 200 مع duplicate: true ومن غير رسالة تانية.

حالات التأكيد ​

الحالةالمعنى
pendingمستني رد العميل
confirmedالعميل أكّد
cancelledالعميل ألغى
needs_reviewالعميل طلب تأجيل أو الرد مش واضح — حد من الفريق يقرر
expiredمفيش رد في المدة اللي حددتها

العميل بيرد من استطلاع واتساب بضغطة، أو بكتابة 1 (تأكيد) أو 2 (تأجيل) أو 3 (إلغاء). قراءة الرسالة لوحدها مش تأكيد.

إعادة إرسال التأكيد ​

POST /orders/{id}/confirmation/resend — بس لو الحالة pending أو needs_review (غير كده 409)، وأقصى ٥ مرات في الساعة للطلب.

استقبال الرد ​

فعّل حدث order.status_changed من لوحة التحكم ← Webhooks. التفاصيل والتوقيع في Webhooks.

otpera.com · WhatsApp order confirmation & OTP