المشكلة
على المنشآت المسجلة في ضريبة القيمة المضافة في المملكة إصدار فواتير ضريبية إلكترونية وفق متطلبات هيئة الزكاة والضريبة والجمارك. وفي المرحلة الثانية (مرحلة الربط والتكامل) تُتبادل الفواتير مع الهيئة أيضًا: الفواتير الضريبية بين المنشآت تُعتمد قبل وصولها إلى المشتري، والفواتير المبسطة يُبلَّغ عنها خلال 24 ساعة. بناء ذلك في كل نظام يبيع شيئًا مكلف.
ما تفعله الواجهة البرمجية
يرسل نظامك عملية البيع، وتصدر وندرفاتورة الفاتورة الضريبية:
- أرقام فواتير متسلسلة بلا فجوات، تُمنح عند الإصدار.
- ضريبة القيمة المضافة لكل بند: الأساسية والصفرية والمعفاة، مع رموز أسباب الهيئة.
- رمز QR على كل فاتورة.
- للمنشآت المرتبطة بالهيئة: اعتماد الفواتير الضريبية والإبلاغ عن المبسطة تلقائيًا، والنتيجة في حقل
zatca. - صفحة وملف PDF يفتحهما المشتري.
- مستندات فواتير بالعربية أو الإنجليزية (
locale).
طلب واحد
curl -X POST https://fatoora.tw.sa/api/v1/invoices \
-H "Authorization: Bearer wbk_test_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"external_reference": "ORDER-10045",
"issue_date": "2026-11-03",
"customer": { "id": 381 },
"items": [
{ "description": "Annual subscription", "quantity": 1, "unit_price": 1200 }
]
}'
<?php
// Issuing is the default when "issue" is omitted. The key needs
// invoices:write AND invoices:issue. external_reference makes the call
// safe to retry: a repeat returns the invoice already created.
$response = $client->post('invoices', [
'json' => [
'external_reference' => 'ORDER-10045',
'issue_date' => '2026-11-03',
'customer' => ['id' => 381],
'items' => [
['description' => 'Annual subscription', 'quantity' => 1, 'unit_price' => 1200],
],
],
'http_errors' => false,
]);
const res = await fetch("https://fatoora.tw.sa/api/v1/invoices", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WONDERFATOORA_API_KEY}`,
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify({
external_reference: "ORDER-10045", // safe to retry
issue_date: "2026-11-03",
customer: { id: 381 },
items: [{ description: "Annual subscription", quantity: 1, unit_price: 1200 }],
}),
});
const body = await res.json();
// 201 = created now, 200 with data.replayed = true = created by an earlier call
console.log(res.status, body.data?.replayed === true, body.data?.invoice?.zatca);
res = requests.post(
"https://fatoora.tw.sa/api/v1/invoices",
headers={"Authorization": f"Bearer {os.environ['WONDERFATOORA_API_KEY']}",
"Accept": "application/json"},
json={
"external_reference": "ORDER-10045", # safe to retry
"issue_date": "2026-11-03",
"customer": {"id": 381},
"items": [{"description": "Annual subscription", "quantity": 1, "unit_price": 1200}],
},
timeout=60,
)
لمن هي
- المتاجر الإلكترونية التي تصدر فاتورة لكل طلب.
- أعمال الاشتراكات و SaaS التي تفوتر كل فترة.
- أنظمة الحجوزات والعيادات ونقاط البيع.
- أنظمة تخطيط الموارد والأدوات الإدارية التي تحتاج فواتير ضريبية سعودية دون بناء ربط مع الهيئة.
المتطلبات
الوصول إلى الواجهة البرمجية جزء من باقتي الأعمال والمؤسسات. تكمل منشأتك ملفها وتربطها بالهيئة مرة واحدة من لوحة تحكم وندرفاتورة، وبعدها تتبع الفواتير المنشأة عبر الواجهة القواعد نفسها تمامًا كالفواتير المنشأة يدويًا. ابدأ من البدء السريع.
صفحات ذات صلة
جاهز للبدء؟
الوصول إلى الواجهة البرمجية ضمن باقات: الأعمال والمؤسسات. أنشئ مفتاحًا من الإعدادات ← مفاتيح API وأرسل أول طلب خلال دقائق.