# 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"
A practical guide to VAT Calculator API: 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 Mar 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.
Pertanyaan yang Sering Diajukan
Anda harus memberikan setidaknya dua dari: neto, bruto, jumlah PPN atau tarif PPN. Opsional, kirim country_code dan vat_type agar API otomatis memilih tarif yang benar.
API bekerja dengan negara mana pun yang Anda konfigurasikan di profil PPN Anda. Anda mengontrol tarif yang tersedia, mata uang dan aturan pembulatan per negara.
Dalam mode lanjutan (dan tanpa vat_rate eksplisit), API mengembalikan beberapa skenario untuk semua tarif yang dikonfigurasikan di suatu negara: standar, dikurangi, super-dikurangi dan nol.
Pembulatan mengikuti profil setiap negara (presisi dan mode seperti half_up, half_even, floor, dll.). Anda juga dapat menonaktifkan pembulatan sepenuhnya dengan mengirim round = false.
Setiap perhitungan PPN menggunakan sejumlah kecil kredit tetap per permintaan. Lihat tabel harga dan Estimator Kredit di atas untuk nilai pastinya.
Ya. Setiap permintaan, bahkan yang menghasilkan error, mengonsumsi kredit. Kredit Anda terkait dengan jumlah permintaan, terlepas dari keberhasilan atau kegagalan. Jika error jelas disebabkan oleh masalah platform di pihak kami, kami akan memulihkan kredit yang terpengaruh (tanpa pengembalian uang tunai).
Hubungi kami di [email protected]. Kami menganggap umpan balik serius—jika laporan bug atau permintaan fitur Anda bermakna, kami dapat memperbaiki atau meningkatkan API dengan cepat dan memberikan Anda 50 kredit gratis sebagai terima kasih.
Tergantung pada API dan terkadang bahkan pada endpoint. Beberapa endpoint menggunakan data dari sumber eksternal, yang mungkin memiliki batas lebih ketat. Kami juga menerapkan batas untuk mencegah penyalahgunaan dan menjaga stabilitas platform kami. Periksa dokumentasi untuk batas spesifik setiap endpoint.
Kami beroperasi dengan sistem kredit. Kredit adalah unit prabayar yang tidak dapat dikembalikan yang Anda gunakan untuk panggilan API dan alat. Kredit dikonsumsi secara FIFO (yang terlama lebih dulu) dan berlaku selama 12 bulan sejak tanggal pembelian. Dashboard menampilkan setiap tanggal pembelian dan masa berlakunya.
Ya. Semua kredit yang dibeli (termasuk saldo pecahan) berlaku selama 12 bulan sejak pembelian. Kredit yang tidak digunakan kedaluwarsa secara otomatis dan dihapus secara permanen di akhir masa berlaku. Kredit yang kedaluwarsa tidak dapat dipulihkan atau dikonversi menjadi uang tunai atau nilai lainnya. Aturan transisi: kredit yang dibeli sebelum 22 Sep 2025 diperlakukan sebagai dibeli pada 22 Sep 2025 dan kedaluwarsa pada 22 Sep 2026 (kecuali kedaluwarsa lebih awal dinyatakan saat pembelian).
Ya—dalam masa berlakunya. Kredit yang tidak digunakan tetap tersedia dan dialihkan dari bulan ke bulan hingga kedaluwarsa 12 bulan setelah pembelian.
Kredit tidak dapat dikembalikan. Beli hanya yang Anda butuhkan—Anda selalu bisa mengisi ulang nanti. Jika error platform menyebabkan tagihan gagal, kami dapat memulihkan kredit yang terpengaruh setelah penyelidikan. Tidak ada pengembalian uang tunai.
Harga ditetapkan dalam kredit, bukan dolar. Setiap endpoint memiliki biayanya sendiri—lihat lencana "Kredit / permintaan" di atas. Anda akan selalu tahu persis berapa yang Anda keluarkan.