Vergilendirme Kuralları
Vergi oranlarını, ülke kurallarını ve fatura belgesi ayarlarını yöneten yedi uç.
Genel Bakış
Vergi üç katmanda kurulur. En altta temel ayar vardır: vergilendirme açık mı, varsayılan oran nedir ve vergi tutarın içinde mi yoksa üstünde mi.
Üstünde ülke ve eyalet kuralları durur. Bir müşterinin adresine uyan kural varsa oran ondan gelir; eyalet kuralı ülke kuralından, ülke kuralı da varsayılan orandan önceliklidir.
Ayrı bir grup ise fatura belgesinin kendisiyle ilgilidir: numaralandırma biçimi, resmileştirme, kurumsal müşteriden istenecek vergi alanları ve basılı fatura gönderimi.
Referans
Vergi Ayarlarını Getirme
Verginin açık olup olmadığını, oranını ve nasıl hesaplandığını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/financial/taxation' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/taxation', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/taxation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Buradaki oran VARSAYILANDIR; musterinin ulkesine kural tanimliysa o kural once gelir.
$t = Api::Financial()->GetTaxation()['data'];Vergi Ayarlarını Yazma
Vergilendirmeyi açar, oranını ve hesaplama biçimini yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/financial/taxation' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"enabled":true,"rate":20,"taxation_type":"exclusive"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/taxation', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
enabled: true,
rate: 20,
taxation_type: 'exclusive',
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/taxation');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['enabled' => true, 'rate' => 20]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Hesaplama bicimini degistirmek AYNI fiyati farkli bir toplama cevirir; ilan ettiginiz
// fiyatlarin hangisini anlattigini bir kez daha dusunun.
Api::Financial()->UpdateTaxation(['taxation_type' => 'inclusive']);Gelişmiş Ayarları Getirme
Fatura numaralandırma ve kurumsal vergi alanlarının ayarlarını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/financial/taxation/advanced' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/taxation/advanced', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/taxation/advanced');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Iki ayri numara dizisi vardir: normal fatura ve ODENMIS fatura icin.
$a = Api::Financial()->GetTaxationAdvanced()['data'];Gelişmiş Ayarları Yazma
Gönderdiğiniz gelişmiş vergi ve fatura ayarlarını değiştirir.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/financial/taxation/advanced' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"invoice_number_format":"FTR-{NUMBER}","invoice_number_format_status":true}'const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/taxation/advanced', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
invoice_number_format: 'INV-{NUMBER}',
invoice_number_format_status: true,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/taxation/advanced');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'invoice_number_format' => 'INV-{NUMBER}',
'invoice_number_format_status' => true,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Numara BASLANGICINI dusurmek ayni numaranin ikinci kez verilmesine yol acabilir;
// mevcut en yuksek numaradan asagi inmeyin.
Api::Financial()->UpdateTaxationAdvanced(['invoice_increment' => 1000]);Vergi Kurallarını Listeleme
Ülke ve eyalet bazlı vergi oranlarını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/financial/tax-rules' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/tax-rules', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/tax-rules');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Eyalet kurali ULKE kuralindan once gelir; ikisi de yoksa varsayilan oran uygulanir.
$rules = Api::Financial()->GetTaxRules()['data'];Vergi Kuralı Yazma
Bir ülke ya da eyalet için vergi oranını yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/financial/tax-rules' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"country_id":792,"state_id":0,"rates":[{"name":"KDV","value":20}]}'const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/tax-rules', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
country_id: 840,
state_id: 0,
rates: [{ name: 'VAT', value: 20 }],
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/tax-rules');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'country_id' => 840,
'rates' => [['name' => 'VAT', 'value' => 20]],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bilesenler YERINE GECER: gonderdiginiz liste eskisini siler, uzerine eklemez.
Api::Financial()->UpdateTaxRule([
'country_id' => 840,
'rates' => [['name' => 'VAT', 'value' => 20]],
]);Avrupa Oranlarını Tanımlama
Avrupa Birliği ülkelerinin katma değer vergisi oranlarını toplu tanımlar.
curl -X POST 'https://panel.ornek.com/api/v1/admin/financial/tax-rules/define-all' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/financial/tax-rules/define-all', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
console.log(data.defined);$ch = curl_init('https://panel.ornek.com/api/v1/admin/financial/tax-rules/define-all');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kurulumun ulkesi de listedeyse VARSAYILAN oran degisir; once mevcut kurallari kaydedin.
$before = Api::Financial()->GetTaxRules()['data'];
Api::Financial()->DefineAllTaxRates();Tuzaklar
Bir faturaya uygulanan oran önce müşterinin eyalet kuralından, o yoksa ülke kuralından, o da yoksa varsayılan orandan alınır. Varsayılanı değiştirmek, kuralı olan ülkelerdeki müşterilerde hiçbir şeyi değiştirmez. "Oran güncellemesi işe yaramadı" durumlarının sebebi çoğunlukla budur.
Vergi kuralı yazarken gönderdiğiniz bileşen listesi eskisinin yerine geçer; üzerine eklenmez. Bir ülkeye ikinci bir bileşen eklemek istiyorsanız önce mevcut listeyi okuyup ikisini birlikte gönderin. Tek bileşen göndermek diğerlerini sessizce düşürür.
Avrupa oranlarını toplu tanımlamak, o ülkeler için elle girdiğiniz kuralların üzerine yazar. Kurulumun kendi ülkesi de listedeyse varsayılan oran da değişir. Çalıştırmadan önce mevcut kuralları okuyup saklayın; geri almanın başka yolu yoktur.
Fatura numarası başlangıcını mevcut en yüksek numaranın altına indirmek, aynı numaranın ikinci kez verilmesine yol açar. Muhasebede iki belgenin aynı numarayı taşıması ciddi bir sorundur ve sonradan düzeltmek zordur. Başlangıcı yalnız yukarı taşıyın.
Verginin tutarın içinde mi üstünde mi olduğu ayarı, ilan ettiğiniz fiyatların ne anlattığını değiştirir. İçinde olduğunda yüz liralık ürün yüz liraya satılır ve vergi içinden çıkar; üstünde olduğunda müşteri yüz yirmi lira öder. Bu ayarı kurulum yayına girdikten sonra değiştirmek bütün fiyat listesini yeniden gözden geçirmeyi gerektirir.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.