DOCS

Vergi muafiyetleri

ABD satış vergisi muafiyeti sertifikalarını bir müşteri profiline senkronize edin.

Yeniden satıcılara, devlet kurumlarına veya kâr amacı gütmeyen kuruluşlara satış yapıyorsanız, bu alıcılar belirli eyaletlerde satış vergisinden muaf tutulmalarını sağlayan muafiyet sertifikaları taşır. Zonos bu sertifikaları bir müşteri profiliyle ilişkilendirerek saklar, böylece muaf bir alıcı ödeme sırasında tanınabilir.

Muafiyetler her yetki alanı için ayrı ayrı kaydedilir. South Carolina'da muaf olan bir müşteri Texas'ta otomatik olarak muaf sayılmaz; bu nedenle müşterinin sertifikasının bulunduğu her eyalet, kendi tarihleri ve sertifika numarasına sahip ayrı bir kayıttır.

Muafiyetler mevcut bir müşteriye eklenir, bu nedenle senkronizasyon iki çağrıdan oluşur: önce müşteriyi oluşturun, ardından sertifikalarını senkronize edin. Her ikisi de kendi müşteri kimliğinize göre anahtarlanır — Checkout içinde başka yerlerde kullandığınız aynı customerId. Zonos sizden hiçbir zaman dahili bir kimlik saklamanızı istemez.

Bu özellik yalnızca özel API entegrasyonları için kullanılabilir.

Muafiyetler henüz landed cost tekliflerine uygulanmıyor

Muafiyetleri bugün senkronize edip yönetebilirsiniz ve kayıtlar müşteri profiliyle ilişkilendirilerek saklanır. Bir muafiyetin landed cost üzerindeki vergiden düşülmesi yakında geliyor, bu nedenle senkronize edilen bir muafiyet henüz bir alıcıya teklif edilen vergiyi değiştirmez. Şimdi senkronize etmek, bu özellik geldiğinde sertifikalarınızın zaten hazır olması demektir.

Müşteriyi oluşturun veya güncelleyin 

checkoutCustomerUpsert, bir müşteri profili oluşturur veya o customerId için zaten bir profil varsa günceller. checkoutCustomerProfileAuthenticate'in aksine, bu, alıcının hazır bulunmasını gerektirmez, bu nedenle müşteri listenizi önceden hazırlayabilirsiniz. Tüm alan davranışı için bir alıcı olmadan profil oluşturma veya güncelleme bölümüne bakın.

1mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {
2 checkoutCustomerUpsert(input: $input) {
3 customerId
4 email
5 name
6 phone
7 }
8}

customerId üzerinden eşleştiği için, tekrar tekrar çağırmak yinelenen kayıtlar oluşturmak yerine aynı profili günceller. Her senkronizasyonda tüm müşteri listeniz genelinde çalıştırmak güvenlidir.

Vergi muafiyetlerini senkronize edin 

checkoutCustomerTaxExemptionsSync, aynı anda birden fazla müşteriyi kabul eder. Her giriş, o müşterinin tüm muafiyet kümesinin yerini alır.

1mutation checkoutCustomerTaxExemptionsSync(
2$input: [CheckoutCustomerTaxExemptionSyncInput!]!
3) {
4 checkoutCustomerTaxExemptionsSync(input: $input) {
5 customerId
6 accepted {
7 id
8 countryCode
9 administrativeArea
10 effectiveAt
11 expiresAt
12 exemptionReason
13 }
14 rejected {
15 code
16 message
17 administrativeArea
18 effectiveAt
19 }
20 }
21}

expiresAt belirtilmemişse sertifikanın süresi dolmaz. exemptionReason belirtilmemişse varsayılan olarak UNSPECIFIED olur.

Senkronizasyon nasıl çalışır 

Her senkronizasyonu üç kural yönetir.

Liste yetkilidir. taxExemptions, değişikliklerin bir listesi değil, müşterinin eksiksiz kümesidir. Zaten kayıtlı olan ve listede bulunmayan herhangi bir muafiyet kaldırılır — geri çekilen bir sertifikanın artık kabul edilmemesi bu şekilde sağlanır. Kısmi bir liste göndermek, dışarıda bıraktığı her şeyi sessizce kaldırır.

Her kayıt bir muafiyettir. Bir müşterinin bir yerde muaf olmadığını kaydetmenin bir yolu yoktur — aşağıdaki nota bakın.

Tüm muafiyetleri kaldırmak boş bir listedir. Bir müşterinin sertifikalarını temizlemek için, onları "taxExemptions": [] ile gönderin. Müşteriyi yükten tamamen çıkarmak, mevcut kayıtlarını dokunulmadan bırakır.

Yalnızca müşterinin muaf olduğu yetki alanlarını gönderin

Zonos'ta "muaf değil" diye bir kayıt yoktur — bir yetki alanı ya listededir ya da değildir. Sisteminiz muaf ve muaf olmayan yetki alanlarını birlikte saklıyorsa, senkronize etmeden önce muaf olanları filtreleyin. Muaf olmayan bir kayıt gerçek bir sertifikadan ayırt edilemez, bu nedenle reddedilmek yerine kabul edilir ve müşteri o eyalette muaf olarak değerlendirilir.

Muafiyet nedenleri 

exemptionReason, müşterinin neden muaf olduğunu açıklar. İsteğe bağlıdır ve varsayılan olarak UNSPECIFIED olur, ancak belirtmeye değer — aşağıya bakın.

Değer↕Uygulandığı durum↕
RESALETüketmek yerine yeniden satmak amacıyla satın alınan mallar
FEDERAL_GOVERNMENTBir ABD federal kurumu veya departmanı
STATE_LOCAL_GOVERNMENTBir eyalet kurumu, ilçe, belediye veya okul bölgesi
TRIBAL_GOVERNMENTFederal düzeyde tanınan bir kabile veya kabile üyesi
CHARITABLEKâr amacı gütmeyen bir hayır kurumu
RELIGIOUS_ORGANIZATIONBir kilise veya başka bir dini kuruluş
EDUCATIONAL_ORGANIZATIONBir okul veya üniversite
DIRECT_PAYDoğrudan ödeme izni olan ve vergiyi kendisi aktaran bir alıcı
OTHERYabancı diplomat, tarımsal üretim, sınai üretim ve doğrudan posta dahil olmak üzere diğer her şey
UNSPECIFIEDNeden belirtilmedi

Nedenler iki gruba ayrılır ve bu fark önemlidir. Varlık temelli nedenler — devlet, hayır kurumu, dini, eğitim — alıcıyı ne satın alırsa alsın muaf tutar. Kullanım temelli nedenler, hepsinin başında RESALE, yalnızca uygun malları kapsar: bir yeniden satış sertifikası, alıcının yeniden satacağı envanteri kapsar, aynı siparişteki ofis mobilyalarını değil.

Bir neden olmadan, Zonos ikisini birbirinden ayırt edemez ve yalnızca siparişlerin tamamını muaf tutabilir; bu da yeniden satış sertifikaları için savunulması en zor durumdur. Muafiyetlerinizin çoğu yeniden satışsa, varsayılan olarak RESALE göndermek ve istisnaları tek tek listelemek, genellikle her müşteriyi sınıflandırmaktan çok daha az iş gerektirir.

Muafiyet referansı 

exemptionReference, müşterinin muafiyet belgelerinde yazılı olan numaradır. Eyalete ve muafiyet türüne bağlı olarak bu, bir yeniden satış veya satıcı izni numarası, bir eyalet muafiyet sertifikası numarası, bir doğrudan ödeme izni numarası veya bir federal vergi kimliği olabilir.

Her kayıtta zorunludur. Sertifikada göründüğü şekliyle tam olarak saklayın ve gönderin — biçimler yetki alanına göre büyük ölçüde değişir (SR EAA 12-345678, 85-8012345678C-9, 12-3456789) ve Zonos, çevresindeki boşlukları kırpmak dışında değeri gönderildiği gibi korur. Büyük/küçük harf kullanımını değiştirmeyin veya tire ve boşlukları kaldırmayın.

Gizlilik nedeniyle, exemptionReference gönderilebilir ancak muafiyetler geri okunurken döndürülmez, çünkü bir federal vergi kimliği içerebilir.

Reddedilen kayıtlar 

Kayıtlar tek tek doğrulanır. Reddedilen bir kayıt rejected içinde bildirilir ve grubun geri kalanının başarısız olmasına neden olmaz, ayrıca o yetki alanı için zaten kayıtlı olan muafiyeti de bozmaz.

Kod↕Neden↕
UNKNOWN_CUSTOMERcustomerId ile eşleşen müşteri yok. Önce müşteriyi oluşturun
UNKNOWN_JURISDICTIONadministrativeArea, tanınan bir ABD eyaleti, bölgesi veya toprağı değil
INVALID_DATE_RANGEexpiresAt, effectiveAt'ten sonra değil
MISSING_EXEMPTION_REFERENCEexemptionReference boş
DUPLICATE_JURISDICTIONBir yükte iki kayıt aynı ülke, bölge ve geçerlilik tarihini paylaşıyor. İlki tutulur

Bilinmeyen müşteriler oluşturulmak yerine reddedilir, böylece yanlış yazılmış bir customerId, gerçek bir alıcıyla asla eşleşmeyecek bir profil oluşturmak yerine yanıtta ortaya çıkar.

Yalnızca ABD idari bölgeleri doğrulanır. Diğer ülkelerin alt bölümleri gönderildiği gibi kabul edilir.

Geri okuma ve kaldırma 

Bir senkronizasyonun başarılı olduğunu doğrulamak için müşterinin muafiyetlerini okuyun:

1query checkoutCustomerTaxExemptions($customerId: String!) {
2 checkoutCustomerTaxExemptions(customerId: $customerId) {
3 countryCode
4 administrativeArea
5 effectiveAt
6 expiresAt
7 exemptionReason
8 }
9}

Bir müşterinin tüm muafiyetlerini kaldırmak için — örneğin hesabını kapattığında — checkoutCustomerTaxExemptionsDelete kullanın. Müşterinin herhangi bir muafiyeti olsun ya da olmasın SUCCESS döndürür, bu nedenle birden fazla kez çağırmak güvenlidir.

1mutation checkoutCustomerTaxExemptionsDelete($customerId: String!) {
2 checkoutCustomerTaxExemptionsDelete(customerId: $customerId)
3}

Bu sayfa faydalı mıydı?