Vergi API

Vergi modülünün tüm işlemleri (7) ve veri modelleri (4): adresler, izinler, girdiler, ön koşullar, olaylar ve örnekler.

Ülkeye ve ürün tipine göre vergi oranları; her satışa uygulanır.

Modül kodu tax · 7 işlem · 4 veri modeli · 4 olay. Bir anahtar ya da token, arkasındaki kişinin bu modülde yapabildiğinden fazlasını asla yapamaz; satır düzeyindeki güvenlik uygulamadakiyle birebir aynıdır. Yetki kapsamları: tax (hepsi), tax:read (yalnız okuma) ya da tax:<yetenek>.

Kaynaklar

KaynakTabloListeleme ve okumaPOSTPATCHDELETE
tax_classestax_class/api/v1/tax_classes
tax_configuration_countriestax_configuration_country/api/v1/tax_configuration_countries
tax_configurationstax_configuration/api/v1/tax_configurations
tax_ratestax_rate/api/v1/tax_rates

Listeler limit (en çok 200), cursor, order (ör. -created_at), fields ve q alır; diğer her sorgu parametresi bir sütun süzgecidir: ?status=paid, ?total[gte]=100, ?id[in]=a,b, ?x=null.

İşlemler

İşlemGereken izinNe yapar
tax.archive_classtax:manageVergi sınıfını arşivle
tax.remove_country_exceptiontax:manageÜlke istisnasını kaldır
tax.remove_ratetax:manageVergi oranını kaldır
tax.save_classtax:manageVergi sınıfını kaydet
tax.save_configurationtax:manageVergi yapılandırmasını kaydet
tax.set_country_exceptiontax:manageÜlke istisnası belirle
tax.set_ratetax:manageVergi oranı belirle

tax.archive_class

Vergi sınıfını arşivle — Bir sınıfı, fiyatlandırdığı belgeleri değiştirmeden kullanımdan kaldırır.

Gereken izin tax:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/tax_classes/{id}/actions/archive_class
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.archive_class

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Vergi sınıfı · kimliği: tax_class
archivedbooleanevetArşivlendi

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
tax_class_not_foundSınıf bulunmalı.

Yayımladığı olaylar: tax.class_archived

Neye yazar: tax_class (update) — Archives or restores it

curl -X POST https://app.getera.io/api/v1/tax_classes/TAX_CLASSE_ID/actions/archive_class \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"archived":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.class_archived"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxClasses.archiveClass("TAX_CLASSE_ID", {
  archived: true
})
era tax_classes archive_class TAX_CLASSE_ID \
  --archived true
tools/call
{
  "name": "era__tax__archive_class",
  "arguments": {
    "id": "TAX_CLASSE_ID",
    "archived": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 tax_class_not_found · 429 çok sık istek

tax.remove_country_exception

Ülke istisnasını kaldır — Ülke ait olduğu yapılandırmaya geri döner.

Gereken izin tax:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/tax_configuration_countries/{id}/actions/remove_country_exception
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.remove_country_exception

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · İstisna · kimliği: tax_configuration_country

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
tax_exception_not_foundİstisna bulunmalı.

Yayımladığı olaylar: tax.configuration_changed

Neye yazar: tax_configuration_country (delete) — Removes the exception

curl -X POST https://app.getera.io/api/v1/tax_configuration_countries/TAX_CONFIGURATION_COUNTRY_ID/actions/remove_country_exception \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.configuration_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxConfigurationCountries.removeCountryException("TAX_CONFIGURATION_COUNTRY_ID")
era tax_configuration_countries remove_country_exception TAX_CONFIGURATION_COUNTRY_ID
tools/call
{
  "name": "era__tax__remove_country_exception",
  "arguments": {
    "id": "TAX_CONFIGURATION_COUNTRY_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 tax_exception_not_found · 429 çok sık istek

tax.remove_rate

Vergi oranını kaldır — Bir ülke oranını kaldırır. Fiyatlandırılmış belgeler kopyalarını korur.

Gereken izin tax:manage · siler ya da geri alınamaz · Era çalıştırırken bir kişiye onaylatır

POSThttps://app.getera.io/api/v1/tax_rates/{id}/actions/remove_rate
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.remove_rate

Girdi

AlanTürZorunluAçıklama
iduuidevetDoldurulduğu yer: adresteki {id} · Oran · kimliği: tax_rate

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
tax_rate_not_foundOran bulunmalı.

Yayımladığı olaylar: tax.rate_changed

Neye yazar: tax_rate (delete) — Removes the rate

curl -X POST https://app.getera.io/api/v1/tax_rates/TAX_RATE_ID/actions/remove_rate \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.rate_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxRates.removeRate("TAX_RATE_ID")
era tax_rates remove_rate TAX_RATE_ID
tools/call
{
  "name": "era__tax__remove_rate",
  "arguments": {
    "id": "TAX_RATE_ID"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 tax_rate_not_found · 429 çok sık istek

tax.save_class

Vergi sınıfını kaydet — Bir vergi sınıfı oluşturur veya yeniden adlandırır — bir fiyatın hangi kategoride vergilendirildiği.

Gereken izin tax:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/tax_classes/{id}/actions/save_class
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.save_class

Girdi

AlanTürZorunluAçıklama
iduuidDoldurulduğu yer: adresteki {id} · Vergi sınıfı · kimliği: tax_class
namestringevetAd · en çok 255
descriptionstringAçıklama · en çok 2000

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
tax_class_not_foundYeniden adlandırılan sınıf bulunmalı.
tax_class_name_takenİki vergi sınıfı aynı adı paylaşamaz.

Yayımladığı olaylar: tax.class_saved

Neye yazar: tax_class (upsert) — Writes the class

curl -X POST https://app.getera.io/api/v1/tax_classes/TAX_CLASSE_ID/actions/save_class \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"name":"Name"}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.class_saved"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxClasses.saveClass("TAX_CLASSE_ID", {
  name: "Name"
})
era tax_classes save_class TAX_CLASSE_ID \
  --name "Name"
tools/call
{
  "name": "era__tax__save_class",
  "arguments": {
    "id": "TAX_CLASSE_ID",
    "name": "Name"
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 tax_class_not_found, tax_class_name_taken · 429 çok sık istek

tax.save_configuration

Vergi yapılandırmasını kaydet — Verginin alınıp alınmayacağı ve nasıl alınacağı — çalışma alanı için ya da tek bir satış kanalı için.

Gereken izin tax:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/tax_configurations/actions/save_configuration
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.save_configuration

Girdi

AlanTürZorunluAçıklama
channelIduuidKanal
chargeTaxesbooleanevetVergi uygula
calculationStrategystring (enum)Hesaplama yöntemi · İzin verilen değerler: flat_rates, tax_app
displayGrossPricesbooleanFiyatları vergi dâhil göster
pricesEnteredWithTaxbooleanFiyatlar vergi dâhil girilir
taxAppIdstringVergi uygulaması · en çok 256
useWeightedTaxForShippingbooleanKargo için ağırlıklı vergi

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
tax_app_id_requiredVergi uygulaması stratejisi, vergiyi hesaplayan uygulamayı gerektirir.

Yayımladığı olaylar: tax.configuration_changed

Neye yazar: tax_configuration (upsert) — Writes the configuration

curl -X POST https://app.getera.io/api/v1/tax_configurations/actions/save_configuration \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"chargeTaxes":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.configuration_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxConfigurations.saveConfiguration({
  chargeTaxes: true
})
era tax_configurations save_configuration \
  --charge-taxes true
tools/call
{
  "name": "era__tax__save_configuration",
  "arguments": {
    "chargeTaxes": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 tax_app_id_required · 429 çok sık istek

tax.set_country_exception

Ülke istisnası belirle — Tek bir ülke için yapılandırmayı geçersiz kılar.

Gereken izin tax:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/tax_configuration_countries/actions/set_country_exception
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.set_country_exception

Girdi

AlanTürZorunluAçıklama
configurationIduuidevetYapılandırma · kimliği: tax_configuration
countrystringevetÜlke · en çok 2
chargeTaxesbooleanevetVergi uygula
calculationStrategystring (enum)Hesaplama yöntemi · İzin verilen değerler: flat_rates, tax_app
displayGrossPricesbooleanFiyatları vergi dâhil göster
taxAppIdstringVergi uygulaması · en çok 256

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_countryÜlke, iki harfli bir ISO-3166 kodu olmalı.
tax_configuration_not_foundYapılandırma bulunmalı.

Yayımladığı olaylar: tax.configuration_changed

Neye yazar: tax_configuration_country (upsert) — Writes the exception

curl -X POST https://app.getera.io/api/v1/tax_configuration_countries/actions/set_country_exception \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"configurationId":"TAX_CONFIGURATION_ID","country":"Country","chargeTaxes":true}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.configuration_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxConfigurationCountries.setCountryException({
  configurationId: "TAX_CONFIGURATION_ID",
  country: "Country",
  chargeTaxes: true
})
era tax_configuration_countries set_country_exception \
  --configuration-id "TAX_CONFIGURATION_ID" \
  --country "Country" \
  --charge-taxes true
tools/call
{
  "name": "era__tax__set_country_exception",
  "arguments": {
    "configurationId": "TAX_CONFIGURATION_ID",
    "country": "Country",
    "chargeTaxes": true
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_country, tax_configuration_not_found · 429 çok sık istek

tax.set_rate

Vergi oranı belirle — Bir ülkenin oranı — bir sınıf için ya da sınıf verilmezse ülke varsayılanı.

Gereken izin tax:manage · veriyi değiştirir

POSThttps://app.getera.io/api/v1/tax_rates/actions/set_rate
API anahtarı ya da OAuth token · tax:manage
  • Asıl adres: POST /api/v1/actions/tax.set_rate

Girdi

AlanTürZorunluAçıklama
taxClassIduuidVergi sınıfı · kimliği: tax_class
countrystringevetÜlke · en çok 2
ratenumberevetOran (%) · en az 0 · en çok 100

Ön koşullar

Koşul tutmazsa işlem 409 ve şu kodlardan biriyle reddedilir:

KodNe zaman reddedilir
invalid_countryÜlke, iki harfli bir ISO-3166 kodu olmalı.
tax_class_not_foundSınıf bulunmalı.

Yayımladığı olaylar: tax.rate_changed

Neye yazar: tax_rate (upsert) — Writes the rate

curl -X POST https://app.getera.io/api/v1/tax_rates/actions/set_rate \
  -H "Authorization: Bearer $ERA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"country":"Country","rate":1}'
Yanıt
{
  "ok": true,
  "result": "…",
  "events": [
    "tax.rate_changed"
  ]
}
import { createEra } from "@getera/sdk"

const era = createEra({ apiKey: process.env.ERA_API_KEY })
const res = await era.taxRates.setRate({
  country: "Country",
  rate: 1
})
era tax_rates set_rate \
  --country "Country" \
  --rate 1
tools/call
{
  "name": "era__tax__set_rate",
  "arguments": {
    "country": "Country",
    "rate": 1
  }
}

Hatalar: 401 kimlik bilgisi yok ya da süresi dolmuş · 403 kimlik bilgisinde tax:manage izni yok · 404 kayıt ya da modül erişim dışında · 422 geçersiz girdi (problems[]) · 409 invalid_country, tax_class_not_found · 429 çok sık istek

Veri modelleri

TaxClass

Tablo tax_class · Kaynak tax_classes

  • GET /api/v1/tax_classes
  • GET /api/v1/tax_classes/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
namestring · text
descriptionstring · textevet
archived_atstring (date-time) · timestamptzevet
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((length(TRIM(BOTH FROM name)) > 0))

TaxConfigurationCountry

Tablo tax_configuration_country · Kaynak tax_configuration_countries

  • GET /api/v1/tax_configuration_countries
  • GET /api/v1/tax_configuration_countries/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
tax_configuration_idstring (uuid) · uuidtax_configuration
countrystring · bpcharen çok 2
charge_taxesboolean · bool
calculation_strategystring · textevet
display_gross_pricesboolean · bool
tax_app_idstring · textevet
use_weighted_tax_for_shippingboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Tekil: tax_configuration_id, country

Denetimler:

  • CHECK (((calculation_strategy IS NULL) OR (calculation_strategy = ANY (ARRAY['flat_rates'::text, 'tax_app'::text]))))
  • CHECK ((country ~ '^[A-Z]{2}$'::text))

TaxConfiguration

Tablo tax_configuration · Kaynak tax_configurations

  • GET /api/v1/tax_configurations
  • GET /api/v1/tax_configurations/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
channel_idstring (uuid) · uuidevet
charge_taxesboolean · bool
calculation_strategystring · textflat_rates, tax_app
display_gross_pricesboolean · bool
prices_entered_with_taxboolean · bool
tax_app_idstring · textevet
use_weighted_tax_for_shippingboolean · bool
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK (((calculation_strategy <> 'tax_app'::text) OR (tax_app_id IS NOT NULL)))

TaxRate

Tablo tax_rate · Kaynak tax_rates

  • GET /api/v1/tax_rates
  • GET /api/v1/tax_rates/{id}
SütunTürBoş olabilirİzin verilen değerlerBağlı olduğu tablo
idstring (uuid) · uuid
organization_idstring (uuid) · uuidorganization
workspace_idstring (uuid) · uuidworkspace
tax_class_idstring (uuid) · uuidevettax_class
countrystring · bpcharen çok 2
ratestring (decimal) · numeric
created_atstring (date-time) · timestamptz
updated_atstring (date-time) · timestamptz

Birincil anahtar: id

Denetimler:

  • CHECK ((country ~ '^[A-Z]{2}$'::text))
  • CHECK (((rate >= (0)::numeric) AND (rate <= (100)::numeric)))

Olaylar

İş akışları ve webhook'lar bu olaylara tepki verir.

OlayNe olurTaşıdığı alanlar
tax.class_archivedBir vergi sınıfı arşivlendi ya da geri getirildi.id, archived
tax.class_savedBir vergi sınıfı oluşturuldu ya da yeniden adlandırıldı.id, name
tax.configuration_changedVergi hesaplama ayarları değişti.id, channelId, country
tax.rate_changedBir ülke oranı değişti.id, country, taxClassId, rate
Bu sayfa yardımcı oldu mu?