# Let the API pick the default rate for BG (no explicit vat_rate)
curl -s -X POST "https://api.yeb.to/v1/vat" ^
-H "X-API-Key: YOUR_KEY" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
--data "action=calculate&net=100&country_code=BG&vat_type=standard"
واجهة برمجة حاسبة ضريبة القيمة المضافة — Practical Guide
A practical guide to واجهة برمجة حاسبة ضريبة القيمة المضافة: how to calculate VAT from any combination
of net, gross, VAT amount or rate, how to leverage country profiles, and how to read both single-rate
and multi-rate scenarios in your billing or invoicing logic.
Last updated: 07 مارس 2026, 11:14
API Version: v1
Burst: 20 req/s
Latency: 2.6 ms
Cost:
0.001 credits/req
Instead of re-implementing VAT rules in every project, you send net / gross / VAT amount / rate
(any two are enough), plus optional country and VAT type. The API calculates the
missing numbers, applies country-specific rounding, and can even return multi-rate scenarios when you need to
compare standard vs reduced rates.
{
"country_code": null,
"scenario_type": "single_rate",
"net": null,
"gross": null,
"vat_amount": null,
"vat_rate": null,
"warnings": [
"Not enough information to compute VAT. Provide at least two of: net, gross, vat_amount, vat_rate (or a country_code with rates)."
],
"formatted": null
}
401 invalid/missing key: pass api_key or X-API-Key from your backend.
400 missing country_code: required for country-profile and country-rates.
Calculation warnings: if you see only a warning and no numbers, send at least two monetary inputs.
Conflicting inputs: If you send net, gross and vat_amount that don’t match, the API relies on its internal math; log your raw params if you suspect rounding issues.
Zero-rate logic: For vat_rate = 0 or vat_type = zero, net = gross and VAT amount = 0.
Custom vs country rate: A provided vat_rate always wins over country_code/vat_type. Omit vat_rate if you want pure “country default” behaviour.
Locales & separators: You can safely accept user input with , or . — normalization is handled for you.
Batch use: For bulk imports, keep requests ≤ 100 rps, reuse HTTP connections, and cache stable country profiles.
Added advanced multi-rate mode and improved warning messages for under-specified inputs.
2025-12-01
First public v1 release of VAT API with calculate, list-countries,
country-profile and country-rates actions.
الأسئلة الشائعة
يجب تقديم اثنين على الأقل من: الصافي، الإجمالي، مبلغ الضريبة أو معدل الضريبة. اختيارياً، أرسل country_code و vat_type ليختار النظام المعدل الصحيح تلقائياً.
تعمل الواجهة مع أي بلد تقوم بتكوينه في ملفات ضريبة القيمة المضافة الخاصة بك. أنت تتحكم في المعدلات المتاحة والعملة وقواعد التقريب لكل بلد.
في الوضع المتقدم (وبدون معدل ضريبة صريح)، تُرجع الواجهة سيناريوهات متعددة لجميع المعدلات المكوّنة في بلد: قياسي، مخفض، مخفض جداً وصفر.
يتبع التقريب ملف كل بلد (الدقة والوضع مثل half_up و half_even و floor وغيرها). يمكنك أيضاً تعطيل التقريب تماماً بإرسال round = false.
يستهلك كل حساب لضريبة القيمة المضافة عدداً صغيراً وثابتاً من الأرصدة لكل طلب. راجع جدول التسعير ومقدّر الأرصدة أعلاه للقيم الدقيقة.
نعم. كل طلب، حتى تلك التي تؤدي إلى أخطاء، تستهلك أرصدة. هذا لأن أرصدتك مرتبطة بعدد الطلبات، بغض النظر عن النجاح أو الفشل. إذا كان الخطأ بسبب مشكلة في المنصة من جانبنا، سنستعيد الأرصدة المتأثرة (بدون استرداد نقدي).
تواصل معنا على [email protected]. نأخذ الملاحظات بجدية—إذا كان تقرير الخطأ أو طلب الميزة ذا معنى، يمكننا إصلاح أو تحسين الواجهة بسرعة ومنحك 50 رصيدًا مجانيًا كشكر لك.
يعتمد على الواجهة وأحيانًا حتى على نقطة النهاية. بعض النقاط النهائية تستخدم بيانات من مصادر خارجية، والتي قد تكون لها حدود أكثر صرامة. نفرض أيضًا حدودًا لمنع إساءة الاستخدام والحفاظ على استقرار منصتنا. راجع الوثائق لمعرفة الحد المحدد لكل نقطة نهاية.
نعمل بنظام الأرصدة. الأرصدة هي وحدات مسبقة الدفع وغير قابلة للاسترداد تنفقها على استدعاءات API والأدوات. تُستهلك الأرصدة بنظام FIFO (الأقدم أولاً) وصالحة لمدة 12 شهرًا من تاريخ الشراء. تعرض لوحة التحكم تاريخ كل عملية شراء وانتهاء صلاحيتها.
نعم. جميع الأرصدة المشتراة (بما في ذلك الأرصدة الجزئية) صالحة لمدة 12 شهرًا من الشراء. تنتهي صلاحية الأرصدة غير المستخدمة تلقائيًا وتُحذف نهائيًا في نهاية فترة الصلاحية. لا يمكن استعادة الأرصدة المنتهية أو تحويلها إلى نقد أو قيمة أخرى. قاعدة انتقالية: الأرصدة المشتراة قبل 22 سبتمبر 2025 تُعامل كمشتراة في 22 سبتمبر 2025 وتنتهي في 22 سبتمبر 2026 (ما لم يُذكر تاريخ انتهاء أبكر عند الشراء).
نعم—ضمن فترة الصلاحية. تبقى الأرصدة غير المستخدمة متاحة وتُترحل من شهر لآخر حتى تنتهي صلاحيتها بعد 12 شهرًا من الشراء.
الأرصدة غير قابلة للاسترداد. اشترِ فقط ما تحتاجه—يمكنك دائمًا إعادة الشحن لاحقًا. إذا تسبب خطأ في المنصة في فشل الشحن، قد نستعيد الأرصدة المتأثرة بعد التحقيق. لا استرداد نقدي.
الأسعار محددة بالأرصدة وليس بالدولارات. كل نقطة نهاية لها تكلفتها الخاصة—انظر شارة "الأرصدة / الطلب" أعلاه. ستعرف دائمًا بالضبط ما تنفقه.