Oracle FusionOracle Fusion · دليل مهندس المؤسسة
Oracle Fusion Cloud ERP → الفوترة الإلكترونية للهيئة عبر تراست بل
هذا الدليل مكتوب لمهندس Oracle Fusion ومسؤول OIC ومسؤول ضريبة تقنية المعلومات لديكم. يستعرض الطرق الثلاث لربط Fusion بشبكة الفوترة الإلكترونية للهيئة الاتحادية للضرائب عبر تراست بل، ويحدد بوضوح أي جانب يملك أي عمل في التكامل المتقدم المدفوع بالأحداث — بحيث لا يُترك شيء ليُكتشف أثناء اختبار القبول.
0. مصطلحات مستخدمة في هذا الدليل
مسرد قصير حتى يبدأ كل قارئ من نفس الأساس. تستخدم بقية الوثيقة هذه المصطلحات دون إعادة شرح.
| المصطلح | المعنى |
|---|---|
| الهيئة (FTA) | الهيئة الاتحادية للضرائب في الإمارات. الجهة التي تستلم وتُقاصّ وتخزّن الفواتير الإلكترونية. |
| ASP | مزوّد خدمة معتمد — الطرف المرخّص قانونيًا من الهيئة لإرسال الفواتير بالنيابة عن الممولين. تُرسل تراست بل عبر شريك ASP لديها. |
| PINT-AE | تخصيص Peppol للإمارات. ملف XML الذي تقبله الهيئة. |
| UBL 2.1 | معيار XML الذي يُبنى عليه PINT-AE. |
| Peppol AS4 | بروتوكول النقل بين ASPs لحمل رسائل PINT-AE. |
| نموذج الزوايا الخمس | طوبولوجيا Peppol للإمارات: مرسل → ASP المرسل → الهيئة → ASP المستلم → المستلم. تدير تراست بل مسار ASP المرسل. |
| TRN | رقم التسجيل الضريبي — 15 رقمًا، يصدر عن الهيئة لكل كيان قانوني إماراتي. |
| OIC | Oracle Integration Cloud — خدمة Oracle PaaS التي تُنسّق بين Fusion والأنظمة الخارجية. |
| Oracle ERP Cloud Adapter | محوّل OIC الذي يشترك بأحداث Fusion ويستدعي خدمات Fusion REST. |
| DFF | Descriptive Flexfield — طريقة Oracle القياسية لإضافة سمات مخصصة إلى كيان قياسي دون تخصيص الشاشة. |
| BU | وحدة أعمال — تقسيم محاسبي في Oracle Fusion. وحدة إماراتية واحدة تُطابق TRN واحدًا عادة. |
| HMAC | رمز مصادقة الرسالة بالتجزئة. نستخدم HMAC-SHA256 لتوقيع كول باك الحالة الذي نرسله لكم. |
| Idempotency-Key | ترويسة يختارها العميل على كل كتابة. تضمن أن إعادة محاولة نفس العملية المنطقية تُعيد نفس النتيجة بدل إنشاء تكرار. |
| واجهة الشركاء | سطح REST الخاص بتراست بل على `https://api.trustbill.ae/v1/partner/*` الذي يستدعيه تدفق OIC لديكم. |
1. نظرة عامة — ما تقدمه تراست بل لـ Fusion
لا يحتوي Oracle Fusion Cloud ERP على نقطة وصول أصلية للهيئة الاتحادية للضرائب. فهو لا يُنشئ ملفات PINT-AE XML، ولا يتحدث Peppol AS4، ولا يمكنه التواصل مباشرة مع بوابة الفوترة الإلكترونية للهيئة. تجلس تراست بل بين Fusion والهيئة: نأخذ بيانات الفاتورة البيعية من Fusion، ونحولها إلى ملف PINT-AE UBL للإمارات، ونتحقق منها وفق قواعد الأعمال للهيئة، ونرسلها عبر ASP معتمد من الهيئة ببروتوكول Peppol AS4، ثم نُعيد إلى Fusion الوثيقة الموقعة المعتمدة كتحديث للحالة إضافة إلى نسخة PDF/A-3 الرسمية.
تبقى بصمة Fusion لديكم كما هي. لا نُخصّص شاشات Fusion القياسية، ولا نطلب تغيير استراتيجية ترقيم الفواتير، ولا نحتاج إلى ارتباط مع Oracle Managed Services، ولا نُثبّت أي شيء داخل بيئة Fusion. تعمل كل منطق التحويل والهيئة داخل تراست بل.
2. ثلاثة خيارات للتكامل — مقارنة جنبًا إلى جنب
لا يحتاج كل عميل Fusion نفس عمق التكامل. نقدّم ثلاثة خيارات بثلاث نقاط سعرية. اختاروا الأنسب لحجم فواتيركم، ومرحلة إدارة التغيير لديكم، ومدى الحاجة لعودة UUID الهيئة على الفاتورة المطبوعة فورًا.
تستخدم الخيارات الثلاثة نفس خط PINT-AE وASP المعتمد من الهيئة. يختلف فقط محفّز Fusion ومسار الكتابة العكسية. البدء بالخيار 1 والترقية لاحقًا هو تغيير إعداد وليس إعادة بناء.
لمحة عامة
| الخيار 1 — إيداع ملف | الخيار 2 — سحب REST مجدول | الخيار 3 — دفع مدفوع بالأحداث (متقدم) | |
|---|---|---|---|
| محفّز Fusion | وظيفة ESS تُصدّر فواتير AR بصيغة CSV / UBL إلى SFTP أو تخزين كائنات. | تستعلم تراست بل من Fusion REST / BI Publisher كل 5–60 دقيقة. | حدث 'اكتمال معاملة' AR القياسي عبر Oracle ERP Cloud Adapter. |
| زمن الوصول للهيئة | دقائق إلى ساعات. | دقائق. | ثوانٍ (شبه آني). |
| كتابة الحالة عكسيًا إلى Fusion | تقرير حالة CSV لكل حزمة (تسوية يدوية). | اختياري: تراست بل تكتب UUID عبر Fusion REST PATCH إلى DFF. | إلزامي: كول باك OIC وارد يتحقق من HMAC ويكتب DFF. |
| جهدنا | 3–5 أيام عمل. | 8–12 يوم عمل. | 5–8 أيام عمل (استشارة + UAT؛ واجهة الشركاء مبنية بالفعل). |
| جهدكم (فريق Fusion / IT) | 4–8 أيام عمل. | 5–10 أيام عمل. | 15–25 يوم عمل (OIC صادر ووارد + DFF + إدارة تغيير). |
| المدة النموذجية للإطلاق | 4–6 أسابيع من الانطلاق. | 6–10 أسابيع من الانطلاق. | 10–16 أسبوعًا من الانطلاق. |
| الأنسب لـ | حجم منخفض (< 500 فاتورة / شهر)، مرحلة طيار، أو بيئات Fusion لا تسمح بفتح HTTPS صادر بعد. | حجم متوسط (500–5,000 / شهر)، فرق لا تستطيع إطلاق OIC، أو بلا ترخيص OIC. | نشرات المؤسسات، أحجام عالية، متعدد BU، ومن يحتاج UUID على الفاتورة المطبوعة فورًا. |
يُفصّل القسم §4 النطاق والجهد لكل خيار حتى تستطيعوا (أو MSP الخاص بكم) التخطيط للعمل الداخلي قبل التوقيع. التسعير مُدار منفصلًا على صفحة أسعار تكامل ERP — تبقى هذه الوثيقة تقنية.
3. معمارية التكامل المتقدم
مسار الخيار المتقدم ثلاثة أنظمة متسلسلة. Fusion هو نظام السجل، وOracle Integration Cloud (OIC) هو المنسّق داخل محيطكم، وتراست بل هي طبقة الامتثال في الإمارات التي تنتهي عند ASP المعتمد والهيئة.
- يُطلق Fusion حدث عمل (قياسي: `oracle.apps.financials.receivables.transactions.transactionCreated` أو `.transactionComplete`) عند اكتمال فاتورة البيع وحساب الضريبة.
- يشترك تكامل OIC بالحدث، ويُثريه ببيانات العميل وسعر الصرف والكيان القانوني، ثم يرسل JSON إلى `https://api.trustbill.ae/v1/partner/invoices`.
- تتحقق تراست بل من الحمولة، وتحوّلها إلى PINT-AE 1.0 UBL، وتطبّق قواعد الهيئة، وتوقّعها، وترسلها إلى ASP المعتمد عبر Peppol AS4.
- يُرسل ASP الفاتورة للهيئة. تُعيد الهيئة حالة المقاصة ورقم UUID الرسمي.
- ترسل تراست بل كول باك موقّعًا بـ HMAC إلى نقطة OIC الواردة المسجّلة، يحمل UUID وطابع المقاصة الزمني ورابط PDF/A-3 والـ UBL الموقّع.
- يُعيد تدفق OIC كتابة UUID والحالة إلى فاتورة Fusion (دمج قياسي: Descriptive Flexfield + عمود حالة ظاهر على شاشة AR Transactions).
4. النطاق والجهد — لكل خيار
هذا القسم مرجع فريقكم وفريقنا في اتفاقية العمل. نُدرج لكل خيار ما تُسلّمه تراست بل، وما يُسلّمه فريق Fusion لديكم، وعدد أيام العمل اللازمة من كل جانب. التسعير يُدار منفصلًا على صفحة أسعار تكامل ERP.
— — — — — — — — — — — — — — — — — — — — — — — — — — —
4.1 — الخيار 1 — إيداع ملف (CSV / UBL)
| نطاق تراست بل (نُسلّمه) | نطاقكم (تُسلّمونه) |
|---|---|
| تقديم حساب SFTP (أو دلو S3) خاص لكل مستأجر في me-central-1 ببيانات اعتماد قابلة للتدوير. | وظيفة ESS في Fusion تُصدّر فواتير AR إلى SFTP / الدلو على جدول (ساعي أو يومي). |
| نشر قالب CSV / UBL وملف عينة؛ ربط كل عمود بعنصر PINT-AE. | مطابقة أعمدة التصدير لقالبنا (العناوين، الترتيب، UTF-8، الفاصلة العشرية). |
| السحب، التحليل، التحقق وفق قواعد الهيئة، التحويل إلى PINT-AE UBL، الإرسال عبر ASP المعتمد، تخزين UBL + PDF/A-3. | التقاط TRN المشتري لكل فاتورة (شرط من الهيئة) — DFF على حساب العميل أو السمة القياسية. |
| إنتاج تقرير حالة لكل حزمة (مُسلّمة / مرفوضة) ضمن 15 دقيقة على نفس مسار SFTP. | مراجعة بسيطة في فريق AR (فتح CSV الحالة وتسوية المرفوضات). |
| UAT: 10 فواتير عبر الحالات الأساسية (قياسي، صفري، عكسي، منطقة حرة، إشعار دائن). | اعتماد UAT (مسؤول ضريبي + مسؤول AR). |
| جهدنا: 3–5 أيام عمل. | جهدكم: 4–8 أيام عمل (Fusion للـ ESS + AR لـ TRN + IT للشبكة). |
— — — — — — — — — — — — — — — — — — — — — — — — — — —
4.2 — الخيار 2 — سحب REST مجدول
| نطاق تراست بل (نُسلّمه) | نطاقكم (تُسلّمونه) |
|---|---|
| بناء واستضافة محوّل Fusion REST داخل تراست بل يستعلم من بيئتكم كل 5–60 دقيقة. | تقديم حساب خدمة Fusion REST بصلاحية قراءة Receivables و Customer و Tax. |
| التعامل مع OAuth2 / Basic، الترقيم، المزامنة المتزايدة (watermark)، حدود المعدل، إعادة المحاولة، التعبئة التاريخية. | مشاركة رابط Fusion لكل بيئة (DEV / UAT / PROD) والسماح لـ CIDR الخاص بنا في سياسة الشبكة. |
| التحويل إلى PINT-AE UBL، التحقق، الإرسال، الاحتفاظ — نفس الخط للخيارات الثلاثة. | التقاط TRN المشتري وضمان قراءته عبر REST. |
| اختياري: PATCH من تراست بل يكتب UUID + الحالة على فاتورة AR عبر DFF (إن أضفتموه). بلا DFF، تظهر الحالة في لوحة تراست بل فقط. | عند تفعيل الكتابة العكسية: إضافة DFF (`TB_FTA_UUID`, `TB_FTA_STATUS`) ومنح الخدمة صلاحية PATCH. |
| UAT: 20 فاتورة عبر جميع فئات الضريبة؛ تعبئة تاريخية 90 يومًا في submission-sandbox. | ترشيح مسؤولي UAT ومسؤول IT لتدوير الاعتمادات. |
| جهدنا: 8–12 يوم عمل. | جهدكم: 5–10 أيام (Fusion للخدمة + DFF + IT للشبكة + UAT). |
— — — — — — — — — — — — — — — — — — — — — — — — — — —
4.3 — الخيار 3 — دفع متقدم مدفوع بالأحداث
| نطاق تراست بل (نُسلّمه) | نطاقكم (تُسلّمونه) |
|---|---|
| واجهات الشركاء الجاهزة: `POST /v1/partner/invoices`، `/invoices/bulk`، `/invoices/:id/retry`، `/invoices/:id/replay-webhook`، `/invoices/:id/webhook-deliveries`، `/customers`، `/validate-trn`، `/whoami`، `/ping`. OpenAPI 3.1 + Postman منشوران. | بناء تكامل OIC صادر: الاشتراك بحدث 'اكتمال معاملة' AR عبر Oracle ERP Cloud Adapter، إثراء بالمشتري والضريبة، POST إلى واجهة الشركاء مع `Idempotency-Key`. |
| مصادقة ثنائية (`X-API-Key` + `X-API-Secret` + `x-erp-partner-secret`)؛ اعتمادات لكل كيان؛ تدوير بلا توقف. | بناء تكامل OIC وارد: استلام كول باك `invoice.status_changed` الموقّع بـ HMAC، التحقق من `X-Webhook-Signature` بفحص قدم 300 ث، كتابة UUID والحالة إلى DFF. |
| تحويل PINT-AE UBL، فحوصات Schematron وقواعد الإمارات، إرسال Peppol AS4 عبر ASP المعتمد، تخزين UBL + PDF/A-3 في me-central-1. | تفعيل أحداث فواتير AR في Setup and Maintenance لكل BU. تقديم لقطة / تصدير يؤكّد التفعيل. |
| كول باك موقّع بـ HMAC مع إعادة محاولة 30ث → 2د → 10د → 30د → 1س → 3س؛ نقطة إعادة إطلاق يدوية؛ إيصالات في اللوحة. | إضافة DFF إلى رأس AR Transactions: `TB_FTA_UUID` (64) و `TB_FTA_STATUS` (32). نشر على البيئات الثلاث وإظهارهما. |
| SLA: 99.9% واجهة الشركاء، 99.5% مسار ASP. صفحة حالة + قناة P1. 30 يومًا دعم مكثّف. | فتح 443/TCP صادرًا من OIC إلى `api.trustbill.ae` وواردًا من CIDR نقدّمه إلى نقطة OIC. TLS 1.2+. |
| كتاب تشغيل UAT: 20 فاتورة + TRN محجوزان (`100000000000000` يقبل دائمًا؛ `100000000000666` يرفض). | إنشاء حساب خدمة OIC بأدوار قراءة AR + كتابة DFF. ترشيح مهندس مؤسسة + مسؤول AR + مطوّر OIC. |
| جهدنا: 5–8 أيام (استشارة + مراجعة OIC + UAT + دعم مكثّف). واجهة الشركاء مبنية مسبقًا. | جهدكم: 15–25 يومًا إجمالًا (OIC صادر 5–8 + وارد 3–5 + DFF 1 + حساب 1 + جدار ناري 1 + UAT 2–3 + إدارة تغيير 2–6). |
4.4 — خارج النطاق صراحةً (ينطبق على الخيارات الثلاثة)
| البند | السبب | من يُغطّيه بدلًا |
|---|---|---|
| حسابات الدفع / فواتير الشراء | المرحلة الأولى بيعية. | مرحلة 2 ضمن اتفاقية جديدة. |
| GL / HR / البيانات الرئيسية | غير مطلوبة للامتثال. | تبقى في Fusion كما هي. |
| تعديلات شاشات Fusion | نبقى داخل DFF. | غير مطلوب. |
| تصحيحات Fusion والترقيات الفصلية | من اختصاص MSP / فريقكم. | فريق عمليات Oracle لديكم. |
| تسجيل EmaraTax / الهيئة | فعل قانوني للممول. | وكيلكم الضريبي. |
| إقرار VAT 201 | خدمة منفصلة. | وكيلكم الضريبي؛ تنتج تراست بل مسودة لتبسيط التقديم. |
5. قائمة المتطلبات
جهّزوا ما يلي قبل الانطلاق. أي بند ناقص يؤجّل عادة تاريخ الإطلاق أسبوعًا.
- Oracle Fusion Cloud ERP: الإصدارات المدعومة 24A فأحدث. يُدعم 23D حتى يوليو 2026.
- Oracle Integration Cloud (OIC Gen 2 أو Gen 3) — إصدار Standard كافٍ.
- مهندس مؤسسة محدَّد من جهتكم، مُفوَّض باعتماد قرارات تصميم الواجهة في اجتماع واحد.
- مسؤول وظيفي محدَّد لـ Fusion AR + Tax.
- مطوّر OIC محدَّد يستطيع النشر على البيئات الثلاث ضمن قطار الإصدار.
- اتفاقية عمل موقّعة تحدد النطاق على فواتير AR / البيع فقط.
- TRN واحد لكل كيان قانوني في النطاق، مُطابق لوحدات أعمال Fusion.
- بيئات DEV وUAT وPROD متاحة من OIC (غير محصورة بـ SSO فقط).
- تذاكر تغيير جدار ناري مرفوعة للخروج إلى `api.trustbill.ae` والدخول من CIDR نحن نُقدّمه.
- موافقة من مدير المالية/الضرائب بأن فواتير AR قابلة للإرسال للهيئة من تاريخ الإطلاق.
6. نموذج المصادقة
تستخدم واجهة الشركاء مصادقة من طبقتين. الطبقة الأولى تُثبت أن المُستدعي شريك ERP معروف لدى تراست بل. الطبقة الثانية سرّ لكل SME تُثبت أن هذا الدفع يخص الكيان الذي صدرت فاتورته. كلاهما مطلوب في كل كتابة.
| الترويسة | الغرض | التدوير |
|---|---|---|
| X-API-Key | تُعرّف مؤسستكم كشريك. معرّف عام. | عند الطلب عبر بوابة الشركاء، بلا توقف. |
| X-API-Secret | السرّ المُقترن بـ API-Key. يُعامَل كاعتماد. | عند الطلب؛ نافذة سرّ مزدوج 24 ساعة. |
| x-erp-partner-secret | سرّ لكل مستأجر مربوط بكيان SME محدَّد. | عند الطلب لكل مستأجر، لمنع التوجيه بين المستأجرين. |
| Idempotency-Key | نص بين 1 و128 حرفًا، فريد لكل كتابة منطقية خلال 24 ساعة. مطلوب في كل POST. | يختاره العميل. |
7. الحمولة — ما يُرسله OIC إلى تراست بل
تبدو حمولة فاتورة ضريبية بسيطة كالآتي. المخطط الكامل منشور في `https://api.trustbill.ae/v1/partner/openapi.json` ويغطّي الفواتير المبسطة والتجارية وإشعارات الدائن والمدين تحت نفس الشكل.
POST /v1/partner/invoices HTTP/1.1
Host: api.trustbill.ae
Content-Type: application/json
X-API-Key: tbp_live_7f3c…
X-API-Secret: tbs_live_••••••••
x-erp-partner-secret: ers_live_••••••••
Idempotency-Key: fusion-inv-2026-10-16-00042
{
"documentType": "tax_invoice",
"externalRef": "INV-2026-00042",
"issueDate": "2026-10-16",
"dueDate": "2026-11-15",
"currency": "AED",
"seller": {
"trn": "100123456700003",
"legalName": "Acme Trading L.L.C"
},
"buyer": {
"trn": "100987654300003",
"legalName": "Beta Distribution F.Z.E"
},
"lines": [
{
"description": "Industrial pump, model X9",
"quantity": 2,
"unitPrice": 1500.00,
"taxCategory": "S",
"taxRate": 5
}
],
"totals": {
"netAmount": 3000.00,
"taxAmount": 150.00,
"grossAmount": 3150.00
}
}عند النجاح نُعيد `202 Accepted` مع ظرف يحتوي معرف الفاتورة في تراست بل وهاش المستند الموحّد وحقل `status: "queued"`. الكول باك هو القناة المرجعية لتسليم المقاصة النهائية.
8. خريطة الحقول Fusion ↔ تراست بل
تدفق OIC هو موضع هذه الخريطة. استخدموا الجدول كمعيار قبول لبناء OIC — متى اكتمل كل صف اكتمل 95% من UAT الوظيفي.
| حقل تراست بل | المصدر في Fusion | ملاحظات |
|---|---|---|
| externalRef | RA_CUSTOMER_TRX.TRX_NUMBER | فريد لكل TRN. |
| issueDate | RA_CUSTOMER_TRX.TRX_DATE | تاريخ فقط؛ بتوقيت الإمارات. |
| dueDate | RA_CUSTOMER_TRX.TERM_DUE_DATE | يرجع إلى issueDate إذا كان NULL. |
| currency | RA_CUSTOMER_TRX.INVOICE_CURRENCY_CODE | ISO 4217؛ الافتراضي AED. |
| seller.trn | TRN الكيان القانوني (DFF أو ملحق XLE_ENTITY_PROFILES) | 15 رقمًا؛ مُطابق لـ BU. |
| seller.legalName | XLE_ENTITY_PROFILES.NAME | |
| buyer.trn | HZ_CUST_ACCOUNTS DFF `TRN` أو HZ_PARTY_TAX_PROFILE.TRN | مطلوب لفواتير B2B بالإمارات. |
| buyer.legalName | HZ_PARTIES.PARTY_NAME | الاسم القانوني المسجّل. |
| lines[*].description | RA_CUSTOMER_TRX_LINES.DESCRIPTION | |
| lines[*].quantity | RA_CUSTOMER_TRX_LINES.QUANTITY_INVOICED | |
| lines[*].unitPrice | RA_CUSTOMER_TRX_LINES.UNIT_SELLING_PRICE | بدون الضريبة. |
| lines[*].taxCategory | ZX_LINES.TAX_RATE_CODE_ID → رمز ضريبة إماراتي | S / Z / E / O / RC حسب رموز PINT-AE. |
| lines[*].taxRate | ZX_LINES.TAX_RATE | 5 أو 0 أو NULL للمعفى. |
| totals.* | تجميع من RA_CUSTOMER_TRX_LINES | تُعيد تراست بل التحقق ±0.01 درهم. |
| indicators.freeZone | DFF `TB_INDICATORS.FREE_ZONE` على المعاملة | يُحدَّد على شاشة AR. |
| indicators.reverseCharge | DFF أو مُستنتج من رمز ضريبة = RC |
9. كول باك الحالة من تراست بل
عندما تصل الفاتورة إلى حالة نهائية (`delivered` أو `rejected`) ترسل تراست بل حدثًا واحدًا `invoice.status_changed` إلى رابط الكول باك المسجّل. الإرسال دائم وموقّع، ويُعاد محاولته بجدول ثابت.
POST /your-oic-webhook-url HTTP/1.1
Content-Type: application/json
X-Webhook-Timestamp: 1760606062
X-Webhook-Signature: t=1760606062,v1=4e9c3d…hex…
{
"event": "invoice.status_changed",
"deliveredAt": "2026-10-16T09:14:22Z",
"payload": {
"event": "invoice.status_changed",
"invoiceId": "inv_01HZ…",
"externalRef": "INV-2026-00042",
"status": "delivered",
"ftaUuid": "f1b8c7e2-9d4a-4b11-9c38-7c7a3a9c0e8b",
"deliveredAt": "2026-10-16T09:14:19Z",
"assets": {
"signedUbl": "https://api.trustbill.ae/…/signed.xml",
"pdfA3": "https://api.trustbill.ae/…/invoice.pdf"
}
}
}- `status: "delivered"` — سُلّمت الفاتورة إلى الهيئة؛ `ftaUuid` هو المعرّف الرسمي الذي يُخزَّن على فاتورة Fusion ويُطبع.
- `status: "rejected"` — رفضت الهيئة (أو التحقق قبل الإرسال). تحمل الحمولة الكود وسببًا بشريًا. تبقى الفاتورة مرفوضة في تراست بل؛ تُصحَّح بإصدار فاتورة جديدة أو إشعار دائن.
التحقق من التوقيع إلزامي. يجب على تدفق OIC الوارد تنفيذ هذه الفحوصات الأربعة قبل قبول الحمولة:
- قراءة `X-Webhook-Timestamp` واستخراج `v1=<hex>` من `X-Webhook-Signature`.
- رفض إذا كان `|now − t| > 300` ثانية — يمنع هجمات إعادة التشغيل.
- حساب `hmac_sha256(webhook_secret, `${t}.${raw_body}`)` ومقارنته بـ `v1` بزمن ثابت.
- فقط بعد نجاح الفحصين، حلّلوا JSON وحدّثوا حقول DFF على فاتورة Fusion.
جدول إعادة المحاولة عند 2xx- أو فشل نقل: 30 ث → 2 د → 10 د → 30 د → 1 س → 3 س. بعد المحاولة السادسة يُعلَّم الإرسال `exhausted`. حالة الفاتورة ذاتها في تراست بل لا تتأثر؛ يمكنكم `GET /v1/partner/invoices/:id` أو إطلاق محاولة جديدة بـ `POST /v1/partner/invoices/:id/replay-webhook`.
10. التعامل مع الأخطاء
كل استجابات الخطأ مستندات RFC 7807 بنوع `application/problem+json`. اعتمدوا على `type` المستقر في فروع OIC بدل العنوان البشري أو كود HTTP وحده. الأخطاء التي ستلتقونها فعلًا من واجهة الشركاء:
| type | HTTP | المعنى | إجراء OIC |
|---|---|---|---|
| invalid_body | 400 | خلل في المخطط أو قاعدة أعمال (`detail` يُسمّي الحقول). | فشل فوري؛ ارفعوا حادثة على فاتورة Fusion؛ لا تعيدوا المحاولة. |
| idempotency_required | 400 | لا توجد `Idempotency-Key` أو طولها خارج النطاق. | صحّحوا تدفق OIC؛ يجب ألّا يصل هذا إلى PROD بعد UAT. |
| missing_api_credentials | 401 | لا توجد ترويستا `X-API-Key` / `X-API-Secret`. | تنبيه؛ راجعوا إعداد الاتصال في OIC. لا تعيدوا. |
| invalid_api_credentials | 401 | رُفض زوج مفتاح/سر الشريك. | تنبيه — دُوِّر الاعتماد أو أُلغي. دوّروا من جانبكم؛ لا تعيدوا بغير وعي. |
| missing_connection_credential | 401 | لا توجد ترويسة `x-erp-partner-secret` حيث يُطلب. | صحّحوا OIC Lookup؛ يجب إرفاق سر الكيان لكل BU. |
| invalid_connection_credential | 401 | `x-erp-partner-secret` لا يُحلّ إلى اتصال SME نشط. | فصل أو تدوير من جهة SME. نبّهوا مدير شركاء تراست بل. |
| connection_partner_mismatch | 403 | `x-erp-partner-secret` يعود لشريك مختلف. | خطأ خريطة قاتل — توقّفوا واستدعوا. |
| sme_not_connected | 403 | لم يُكمل SME تدفق الاتصال في تراست بل بعد. | أوقفوا الدفع لذلك BU؛ أبلغوا SME لإكمال الاتصال. |
| trn_mismatch | 403 | TRN في الجسم لا يطابق SME المُستنتج من `x-erp-partner-secret`. | خطأ خريطة قاتل — توقّفوا واستدعوا. |
| erp_partner_revoked | 403 | علّق مسؤول تراست بل مجموعة اعتماد الشريك لديكم. | تواصلوا مع دعم شركاء تراست بل. لا تعيدوا. |
| not_live_yet | 422 | SME لا يزال في test / sandbox والحمولة تستلزم التوجيه الحي. | متوقّع في UAT؛ انقلوا SME إلى live عند الجاهزية. |
11. البيئات وخطة الانتقال
نشر Fusion ↔ تراست بل الصحي يمر على أربع بيئات متطابقة على الجانبين. كل انتقال يتطلب توقيع المسؤول المقابل في المستوى نفسه.
| Fusion | تراست بل | الغرض | من يوقّع |
|---|---|---|---|
| DEV | Sandbox | تطوير تدفق OIC؛ لا إرسال فعلي للهيئة. | مسؤول OIC |
| TEST | Submission-sandbox | اختبار شامل مقابل بيئة الهيئة التجريبية؛ سيناريوهات UAT. | مسؤول المالية والضرائب |
| UAT | Submission-sandbox | قبول من مسؤولي الأعمال؛ آخر فرصة لاكتشاف ثغرات الخريطة. | رئيس المالية |
| PROD | Live | مقاصة فعلية من الهيئة. | CFO أو من يُفوَّض (لمرة واحدة) |
| TRN | السلوك | حالة الاستخدام |
|---|---|---|
| 100000000000000 | يقبل دائمًا. يتجاوز التحقق وإرسال ASP، ينقل من `draft` إلى `delivered` تزامنًا، ويُطلق كول باك HMAC حقيقيًا خلال ~5 ثوانٍ. | اختبار شامل لتدفق OIC الوارد (استقبال الكول باك) دون الحاجة إلى مشترٍ حقيقي. |
| 100000000000666 | يرفض دائمًا بـ `403 test_trn_reject`. | اختبار فرع `status: "rejected"` ومسار الحادثة لفريق AR. |
الأسئلة الشائعة
هل تُثبّت تراست بل شيئًا داخل بيئة Fusion لدينا؟
لا. نبقى خارج Oracle Fusion. التغييرات الوحيدة من جانب Fusion هي حقلا DFF (TB_FTA_UUID وTB_FTA_STATUS)، ودور حساب خدمة، وتكامل OIC يبنيه فريقكم. يعمل كل منطق التحويل والهيئة داخل تراست بل.
هل يمكن أن نبدأ بالخيار 2 وننتقل إلى الخيار 3 لاحقًا؟
نعم. واجهة الشركاء هي نفسها؛ يختلف فقط جانب التحفيز. نرى عملاء كثيرين ينطلقون على الخيار 2 في الأسبوع الرابع، ثم يترقّون إلى الخيار 3 بعد ربع عندما تتوفر طاقة فريق OIC.
ماذا يحدث إن رفضت الهيئة فاتورة؟
يصل حدث `invoice.rejected` ومعه كود الخطأ وسبب بشري. تبقى الفاتورة في تراست بل مرفوضة؛ يُصدر فريق AR فاتورة مصحّحة (نفس externalRef بتسلسل فرعي متزايد) أو إشعار دائن. لا نعيد الإرسال بصمت أبدًا.
كيف تتعاملون مع عملاء Fusion متعددي TRN؟
سرّ `x-erp-partner-secret` واحد لكل كيان قانوني؛ صف لكل BU في جدول الخريطة. يختار تدفق OIC السرّ المناسب حسب BU البيع. أي دفع عبر TRN يُرفض كآلية دفاع.
أين تُخزَّن بيانات الفواتير؟
تُخزَّن نسخ UBL الموقّعة ونسخ PDF/A-3 في AWS me-central-1 (منطقة دبي) طوال نافذة الحفظ. لا تغادر بيانات الفاتورة الإمارات.
هل يمكن استخدام تراست بل جنبًا إلى جنب مع Oracle Managed Services؟
نعم. تبقى اتفاقيتنا محصورة في فواتير AR / البيع. ننسّق مع MSP لديكم على نوافذ الإصدار الفصلية عبر تقويم إدارة التغيير الذي نشاركه في الأسبوع الأول.
ماذا إذا كنا على Oracle EBS أو NetSuite بدل Fusion؟
تنطبق نفس واجهة الشركاء. في EBS يكون المحفّز عادة برنامج متزامن + BPEL، وفي NetSuite SuiteScript 2.x user event. راجع /documentation/oracle للأدلة التفصيلية.
قراءات ذات صلة
صفحة Oracle الركيزة
نظرة قصيرة على جميع منتجات Oracle المدعومة من تراست بل.
الوثائق التقنية لـ Oracle
صفحات تقنية مفصّلة لـ NetSuite و Fusion و EBS و JD Edwards.
مرجع واجهة شركاء ERP
واجهة REST التي يستخدمها هذا الدليل — المصادقة والنقاط والأخطاء والكول باك.
تسعير تكامل ERP
الرسوم والجداول الزمنية ومعدلات الزيارات الموقعية وخصومات الشركاء.
