استخراج بيانات الفاتورة الضريبية
أداة تقرأ الفاتورة الضريبية — الورقية المصورة أو ملف PDF — وتستخرج رقمها الضريبي واسم البائع والمبلغ وضريبة القيمة المضافة كبيانات منظمة جاهزة للإدخال في نظام محاسبي. تفيد من يستقبل عشرات الفواتير شهريًا من موردين مختلفين، وتعمل من المتصفح ومن الـAPI معًا.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
ما تقرؤه من الفاتورة
تستخرج الأداة من الفاتورة الضريبية اسم البائع ورقمه الضريبي، تاريخ الإصدار، المبلغ قبل الضريبة، قيمة ضريبة القيمة المضافة، والمبلغ الإجمالي، إضافة إلى رقم الفاتورة نفسه حين يكون مطبوعًا بوضوح على الصفحة. تصلح للفاتورة الورقية المصورة بالجوال وكذلك ملف PDF الصادر إلكترونيًا من نظام محاسبي، وتقرأ الأرقام كما وردت دون تقريب أو تحويل عملة. حتى الفاتورة التي تضم عدة بنود منفصلة تُقرأ بحقولها الإجمالية بدقة، مع تمييز واضح بين المبلغ قبل الضريبة وبعدها.
علاقتها بالفوترة الإلكترونية
منذ إلزامية الفوترة الإلكترونية في السعودية، تحمل الفاتورة المبسطة رمز QR يوثّق بياناتها لدى هيئة الزكاة والضريبة والجمارك. هذه الأداة لا تصدر فواتير ولا تعتمدها رسميًا؛ هي وسيلة لقراءة بيانات فاتورة موجودة بالفعل وتحويلها إلى صيغة يسهل إدخالها في نظام المحاسبة، خصوصًا حين تصل عشرات الفواتير من موردين مختلفين خلال الشهر الواحد بتصاميم متفاوتة يصعب توحيدها يدويًا كل مرة، وهذا التنوع نفسه هو ما يجعل الإدخال اليدوي بطيئًا ومملًا لأي محاسب.
التكلفة لكل صفحة
السعر معلن: $0.009 للطلب زائد $0.0571 لكل صفحة، أي نحو $0.05 للفاتورة ذات الصفحة الواحدة. فاتورة من ثلاث صفحات تكلف نحو $0.14، وهو مبلغ زهيد مقارنة بوقت الإدخال اليدوي لعشرات الفواتير. لا اشتراك شهريًا ولا رصيدًا مسبقًا؛ الدفع عبر PayPal لكل عملية، أو التواصل معنا مباشرة عبر واتساب أو البريد لحجم أكبر من الفواتير شهريًا يحتاج ترتيبًا خاصًا للفوترة الدورية.
فاتورة بلغتين
كثير من فواتير الخليج تُطبع بلغتين، عربية وإنجليزية، في المستند نفسه، وبعضها يضع اسم الشركة بالإنجليزية أعلى الصفحة والتفاصيل بالعربية أسفلها أو العكس. تقرأ الأداة الحقلين معًا وتربط القيمة بحقلها الصحيح حتى حين يتكرر الاسم بلغتين مختلفتين، فلا تختلط بيانات البائع بالمشتري في النتيجة النهائية، ولا يتكرر الرقم الضريبي مرتين بلا داعٍ في مخرجات البيانات المنظمة الجاهزة للإدخال المباشر في أي نظام محاسبي دون تعديل يدوي إضافي.
حالات الاستخدام
فواتير موردين متعددة كل شهر
محاسب في شركة الواحة للتجارة المحدودة يستلم فواتير من عشرة موردين مختلفين شهريًا، ويستخرج بياناتها عبر الـAPI بدل إدخال كل رقم ضريبي يدويًا.
أرشفة فواتير مقاولات المشروع
مؤسسة النخيل للمقاولات تصوّر فواتير مواد البناء فور استلامها وتستخرج مبالغها وضريبتها لتصنيفها حسب المشروع في نظامها المحاسبي.
مطابقة الفاتورة بأمر الشراء
عبدالله المنصوري، مسؤول مشتريات، يستخرج بيانات الفاتورة الواردة من المورد ليقارنها آليًا بأمر الشراء الأصلي قبل اعتماد الدفع.
الأسئلة الشائعة
هل الفاتورة الناتجة معتمدة رسميًا لدى هيئة الزكاة؟
لا، هذه أداة تقنية لقراءة بيانات فاتورة موجودة وتحويلها إلى بيانات منظمة؛ لا تصدر فواتير ولا تحمل اعتماد الهيئة.
هل تقرأ الأداة رمز QR الخاص بالفوترة الإلكترونية؟
تركّز هذه الأداة على استخراج بيانات الفاتورة نصيًا؛ قراءة رمز QR نفسه أداة منفصلة.
كم تكلفة استخراج بيانات فاتورة من صفحة واحدة؟
نحو $0.05 ($0.009 للطلب و$0.0571 للصفحة).
هل تُحفظ الفاتورة بعد استخراج بياناتها؟
لا، تُستخدم لإنتاج البيانات المطلوبة فقط، والفواتير مستندات حساسة نتعامل معها على هذا الأساس ولا نحتفظ بها بعد اكتمال الطلب.
هل تدعم الفاتورة ثنائية اللغة عربي-إنجليزي؟
نعم، تقرأ الحقلين معًا وتربط كل قيمة بحقلها الصحيح دون خلط.
هل يمكن الدفع بالريال السعودي أو الدرهم الإماراتي؟
الأسعار بالدولار الأمريكي، والدفع عبر PayPal؛ إن كان ذلك غير مناسب لك راسلنا عبر واتساب أو البريد لترتيب آخر.
ما حدود حجم وعدد صفحات الفاتورة؟
25 ميغابايت وحتى عشر صفحات في الطلب الواحد، وهو ما يكفي غالبية الفواتير التجارية.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/ocr/invoice \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/factura.jpg"}'const res = await fetch("https://api.kit.forhosting.com/ocr/invoice", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/factura.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/invoice",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/factura.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/invoice", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/factura.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/factura.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/invoice", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"image": "https://ejemplo.com/factura.jpg"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.invoice",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
max_pages | 10 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
413 | input_too_large | حجم المدخلات يتجاوز الحد المسموح لهذه المهمة — قسّم الملف أو صغّره. |
422 | task_failed | لم تنجح معالجة المهمة، ولن تُحتسب عليك؛ أعد المحاولة أو راسلنا مباشرة. |