اصنع رمز QR لفاتورة
كل شي يصير داخل متصفحك، وما نرسل أي بيانات لأي مكان.
اقرأ رمز موجود
لمين هذا المولّد
للمطوّرين اللي يبنون نظام فوترة ويبون يتأكدون إن ترميزهم صحيح، ولأصحاب المحلات والمحاسبين اللي يبون يفهمون وش داخل الرمز المطبوع على الفاتورة.
المولّد يصنع الحقول الخمسة الأساسية. أما رمز المرحلة الثانية فيزيد عليها حقول توقيع يصنعها نظام الفوترة نفسه بمفتاحه الخاص، وهذا ما يقدر يسويه أي موقع، ولا يصير يسويه.
كيف ينبني الرمز خطوة بخطوة
- كل حقل يبدأ ببايت واحد فيه رقم الوسم (من 1 إلى 5).
- بعده بايت واحد فيه طول القيمة بالبايت بترميز UTF-8، مو بعدد الحروف.
- بعده القيمة نفسها.
- الحقول تنرصّ ورا بعض بالترتيب، والناتج كله يتحوّل إلى Base64.
- نص Base64 هو اللي ينحط داخل رمز QR.
الحقول الخمسة
| الوسم | الحقل | مثال |
|---|---|---|
| 1 | اسم البائع | مكتب آركيبي التجارية |
| 2 | الرقم الضريبي للبائع | 300089699700003 |
| 3 | تاريخ ووقت الفاتورة | 2026-10-26T09:15:00Z |
| 4 | إجمالي الفاتورة شامل الضريبة | 57.50 |
| 5 | مبلغ الضريبة | 7.50 |
أخطاء نشوفها كثير
- حساب الطول بعدد الحروف بدل البايتات: الحرف العربي ياخذ بايتين في UTF-8، فاسم عربي من 20 حرف طوله قرابة 40 بايت.
- ترميز النص بـBase64 قبل ما ينبني TLV، والصح إن Base64 يكون آخر خطوة على البايتات كلها.
- رقم ضريبي ناقص أو فيه مسافات. الرقم الضريبي 15 رقم.
- مبلغ الضريبة ما يطابق الإجمالي. في الفاتورة المبسطة الضريبة من مبلغ شامل تساوي الإجمالي ضرب 15 على 115.
- قيمة طولها أكثر من 255 بايت. بايت الطول ما يتحمّل أكثر، فاختصر الاسم.
المرحلة الثانية: وش يزيد على الرمز
في المرحلة الثانية يضيف نظام الفوترة على الرمز تجزئة الفاتورة (الوسم 6) والتوقيع الرقمي (الوسم 7) والمفتاح العام (الوسم 8)، وفي الفاتورة المبسطة توقيع الشهادة (الوسم 9).
هذي الحقول تنصنع داخل الجهاز اللي أصدر الفاتورة، بمفتاح مرتبط بشهادته من منصة فاتورة. لو لصقت رمز مرحلة ثانية في خانة القراءة فوق، بتشوف الحقول هذي كبايتات بصيغة Base64.
وش لازم تعرف عن رمز QR في الفاتورة
الكود مفتوح
المولّد يشتغل كله داخل متصفحك، وما يرسل أي بيانات. وكود الترميز منشور بترخيص MIT في الملف /js/zatca-tlv.js، وتقدر تستخدمه في نظامك.
المصادر: مراحل تطبيق الفوترة الإلكترونية: هيئة الزكاة والضريبة والجمارك
أسئلة شائعة
هل الرمز اللي يطلع من هنا يصلح لفاتورة حقيقية؟
يطلع بنفس ترميز حقول الهيئة الخمسة. لكن فاتورة المرحلة الثانية تحتاج كمان حقول التوقيع اللي يصنعها نظام الفوترة المربوط بمنصة فاتورة. فاستخدمه للاختبار والفهم.
ليش طول الاسم العربي ضعف عدد حروفه؟
لأن الطول ينحسب بالبايت بترميز UTF-8، والحرف العربي ياخذ بايتين.
هل ترسلون بيانات الفاتورة لأي مكان؟
لا. الحساب كله داخل متصفحك.
كيف أحسب مبلغ الضريبة من الإجمالي؟
اضرب الإجمالي في 15 واقسمه على 115، أو اضغط زر حساب الضريبة في المولّد.
صفحات قريبة
أول 500 منشأة من المطاعم والكافيهات والمخابز والحلويات: حدها الشهري 99 ريال.
بدل 149، لكل فرع ولمدة سنة. التسجيل مجاني وبدون أي التزام.