Synchronizuj certyfikaty zwolnienia z podatku od sprzedaży w USA z profilem klienta.
Jeśli sprzedajesz odsprzedawcom, agencjom rządowym lub organizacjom non-profit, ci kupujący posiadają certyfikaty zwolnienia, które zwalniają ich z podatku od sprzedaży w określonych stanach. Zonos przechowuje te certyfikaty w profilu klienta, dzięki czemu zwolniony kupujący może zostać rozpoznany podczas realizacji zakupu.
Zwolnienia są rejestrowane według jurysdykcji. Klient zwolniony z podatku w Karolinie Południowej nie jest automatycznie zwolniony w Teksasie, więc każdy stan, dla którego klient posiada certyfikat, stanowi osobny rekord z własnymi datami i numerem certyfikatu.
Zwolnienia są przypisywane do istniejącego klienta, więc synchronizacja to dwa wywołania: utworzenie klienta, a następnie synchronizacja jego certyfikatów. Oba są indeksowane na podstawie Twojego własnego identyfikatora klienta — tego samego customerId, którego używasz w innych miejscach w Checkout. Zonos nigdy nie wymaga przechowywania wewnętrznego identyfikatora.
Zwolnienia nie są jeszcze stosowane do wycen kosztu dostarczenia
Możesz już dziś synchronizować i zarządzać zwolnieniami, a rekordy są przechowywane w profilu
klienta. Odliczanie zwolnienia od podatku w koszcie dostarczenia pojawi się wkrótce, więc
zsynchronizowane zwolnienie nie zmienia jeszcze podatku podawanego kupującemu w wycenie.
Synchronizowanie już teraz oznacza, że Twoje certyfikaty będą gotowe, gdy ta funkcja zostanie
wprowadzona.
checkoutCustomerUpsert tworzy profil klienta lub aktualizuje go, jeśli już istnieje dla danego customerId. W przeciwieństwie do checkoutCustomerProfileAuthenticate, nie wymaga to obecności kupującego, więc możesz przygotować listę klientów z wyprzedzeniem. Pełny opis działania pól znajdziesz w sekcji utwórz lub zaktualizuj profil bez kupującego.
Ponieważ dopasowanie odbywa się na podstawie customerId, wielokrotne wywołanie aktualizuje ten sam profil zamiast tworzyć duplikaty. Można je bezpiecznie uruchamiać dla całej listy klientów przy każdej synchronizacji.
Lista jest wiążąca.taxExemptions to pełny zestaw zwolnień klienta, a nie lista zmian. Każde zwolnienie już zarejestrowane, którego brakuje na liście, zostaje usunięte — w ten sposób wycofany certyfikat przestaje być honorowany. Wysłanie niepełnej listy po cichu usuwa wszystko, czego na niej nie ma.
Każdy rekord jest zwolnieniem. Nie ma sposobu, aby zarejestrować, że klient nie jest zwolniony gdziekolwiek — zobacz uwagę poniżej.
Usunięcie wszystkich zwolnień to pusta lista. Aby usunąć certyfikaty klienta, wyślij je z wartością "taxExemptions": []. Pominięcie klienta w całym ładunku pozostawia jego istniejące rekordy nienaruszone.
Wysyłaj wyłącznie jurysdykcje, w których klient jest zwolniony
Zonos nie ma rekordu „brak zwolnienia” — dana jurysdykcja albo znajduje się na liście, albo nie.
Jeśli Twój system przechowuje razem jurysdykcje zwolnione i niezwolnione, przefiltruj listę do
tych zwolnionych przed synchronizacją. Rekord bez zwolnienia jest nieodróżnialny od
prawdziwego certyfikatu, więc zostanie zaakceptowany zamiast odrzucony, a klient zostanie
potraktowany jako zwolniony w tym stanie.
exemptionReason opisuje, dlaczego klient jest zwolniony. Pole to jest opcjonalne i domyślnie przyjmuje wartość UNSPECIFIED, ale warto je podać — zobacz poniżej.
Wartość↕
Dotyczy↕
RESALE
Towarów kupowanych w celu odsprzedaży, a nie konsumpcji
FEDERAL_GOVERNMENT
Federalnej agencji lub departamentu USA
STATE_LOCAL_GOVERNMENT
Agencji stanowej, hrabstwa, gminy lub okręgu szkolnego
TRIBAL_GOVERNMENT
Plemienia uznanego federalnie lub jego członka
CHARITABLE
Organizacji charytatywnej non-profit
RELIGIOUS_ORGANIZATION
Kościoła lub innej organizacji religijnej
EDUCATIONAL_ORGANIZATION
Szkoły lub uniwersytetu
DIRECT_PAY
Kupującego posiadającego zezwolenie na bezpośrednią płatność, który samodzielnie odprowadza podatek
OTHER
Wszystkiego innego, w tym zagranicznych dyplomatów, produkcji rolnej, produkcji przemysłowej i przesyłek reklamowych
UNSPECIFIED
Brak podanego powodu
Powody dzielą się na dwie grupy, a różnica ma znaczenie. Powody oparte na podmiocie — rządowy, charytatywny, religijny, edukacyjny — zwalniają kupującego niezależnie od tego, co kupuje. Powody oparte na zastosowaniu, przede wszystkim RESALE, obejmują wyłącznie towary kwalifikujące się: certyfikat odsprzedaży obejmuje towary, które kupujący odsprzeda, a nie meble biurowe z tego samego zamówienia.
Bez podanego powodu Zonos nie może rozróżnić tych dwóch przypadków i może zwolnić wyłącznie całe zamówienia, co jest najtrudniejsze do obronienia w przypadku certyfikatów odsprzedaży. Jeśli większość Twoich zwolnień dotyczy odsprzedaży, wysyłanie RESALE jako wartości domyślnej z indywidualnie wymienionymi wyjątkami zwykle wymaga znacznie mniej pracy niż klasyfikowanie każdego klienta.
exemptionReference to numer wydrukowany na dokumentach zwolnienia klienta. W zależności od stanu i rodzaju zwolnienia może to być numer zezwolenia na odsprzedaż lub zezwolenia sprzedawcy, numer stanowego certyfikatu zwolnienia, numer zezwolenia na bezpośrednią płatność lub federalny numer identyfikacji podatkowej.
Jest on wymagany w każdym rekordzie. Zapisuj i wysyłaj go dokładnie tak, jak widnieje na certyfikacie — formaty znacznie różnią się w zależności od jurysdykcji (SR EAA 12-345678, 85-8012345678C-9, 12-3456789), a Zonos zachowuje wartość w przesłanej postaci, jedynie usuwając otaczające białe znaki. Nie zmieniaj wielkości liter ani nie usuwaj myślników i spacji.
Ze względu na ochronę prywatności exemptionReference można wysłać, ale nie jest on zwracany
podczas odczytu zwolnień, ponieważ może zawierać federalny numer identyfikacji podatkowej.
Rekordy są walidowane pojedynczo. Odrzucony rekord jest zgłaszany w rejected i nie powoduje niepowodzenia pozostałej części paczki, ani nie narusza zwolnienia już zarejestrowanego dla danej jurysdykcji.
Kod↕
Przyczyna↕
UNKNOWN_CUSTOMER
Żaden klient nie odpowiada customerId. Najpierw utwórz klienta
UNKNOWN_JURISDICTION
administrativeArea nie jest rozpoznawanym stanem, dystryktem ani terytorium USA
INVALID_DATE_RANGE
expiresAt nie przypada po dacie effectiveAt
MISSING_EXEMPTION_REFERENCE
exemptionReference jest puste
DUPLICATE_JURISDICTION
Dwa rekordy w jednym ładunku mają ten sam kraj, obszar i datę wejścia w życie. Zachowywany jest pierwszy z nich
Nieznani klienci są odrzucani, a nie tworzeni, więc błędnie wpisany customerId ujawnia się w odpowiedzi zamiast tworzyć profil, który nigdy nie będzie pasował do prawdziwego kupującego.
Walidowane są wyłącznie amerykańskie obszary administracyjne. Jednostki podziału administracyjnego innych krajów są akceptowane w przesłanej postaci.
Aby usunąć wszystkie zwolnienia klienta — na przykład gdy zamyka on swoje konto — użyj checkoutCustomerTaxExemptionsDelete. Zwraca ono SUCCESS niezależnie od tego, czy klient miał jakiekolwiek zwolnienia, więc można je bezpiecznie wywołać więcej niż raz.
Zwolnienia podatkowe
Zwolnienia podatkowe
Synchronizuj certyfikaty zwolnienia z podatku od sprzedaży w USA z profilem klienta.
Jeśli sprzedajesz odsprzedawcom, agencjom rządowym lub organizacjom non-profit, ci kupujący posiadają certyfikaty zwolnienia, które zwalniają ich z podatku od sprzedaży w określonych stanach. Zonos przechowuje te certyfikaty w profilu klienta, dzięki czemu zwolniony kupujący może zostać rozpoznany podczas realizacji zakupu.
Zwolnienia są rejestrowane według jurysdykcji. Klient zwolniony z podatku w Karolinie Południowej nie jest automatycznie zwolniony w Teksasie, więc każdy stan, dla którego klient posiada certyfikat, stanowi osobny rekord z własnymi datami i numerem certyfikatu.
Zwolnienia są przypisywane do istniejącego klienta, więc synchronizacja to dwa wywołania: utworzenie klienta, a następnie synchronizacja jego certyfikatów. Oba są indeksowane na podstawie Twojego własnego identyfikatora klienta — tego samego
customerId, którego używasz w innych miejscach w Checkout. Zonos nigdy nie wymaga przechowywania wewnętrznego identyfikatora.Ta funkcja jest dostępna wyłącznie dla niestandardowych integracji API.
Możesz już dziś synchronizować i zarządzać zwolnieniami, a rekordy są przechowywane w profilu klienta. Odliczanie zwolnienia od podatku w koszcie dostarczenia pojawi się wkrótce, więc zsynchronizowane zwolnienie nie zmienia jeszcze podatku podawanego kupującemu w wycenie. Synchronizowanie już teraz oznacza, że Twoje certyfikaty będą gotowe, gdy ta funkcja zostanie wprowadzona.
Utwórz lub zaktualizuj klienta
checkoutCustomerUpserttworzy profil klienta lub aktualizuje go, jeśli już istnieje dla danegocustomerId. W przeciwieństwie docheckoutCustomerProfileAuthenticate, nie wymaga to obecności kupującego, więc możesz przygotować listę klientów z wyprzedzeniem. Pełny opis działania pól znajdziesz w sekcji utwórz lub zaktualizuj profil bez kupującego.mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {checkoutCustomerUpsert(input: $input) {customerIdemailnamephone}}Ponieważ dopasowanie odbywa się na podstawie
customerId, wielokrotne wywołanie aktualizuje ten sam profil zamiast tworzyć duplikaty. Można je bezpiecznie uruchamiać dla całej listy klientów przy każdej synchronizacji.Synchronizuj zwolnienia podatkowe
checkoutCustomerTaxExemptionsSyncprzyjmuje wielu klientów jednocześnie. Każdy wpis zastępuje pełny zestaw zwolnień danego klienta.mutation checkoutCustomerTaxExemptionsSync($input: [CheckoutCustomerTaxExemptionSyncInput!]!) {checkoutCustomerTaxExemptionsSync(input: $input) {customerIdaccepted {idcountryCodeadministrativeAreaeffectiveAtexpiresAtexemptionReason}rejected {codemessageadministrativeAreaeffectiveAt}}}Pominięcie
expiresAtoznacza, że certyfikat nie wygasa. PominięcieexemptionReasonprzyjmuje domyślnie wartośćUNSPECIFIED.Jak działa synchronizacja
Każdą synchronizację regulują trzy zasady.
Lista jest wiążąca.
taxExemptionsto pełny zestaw zwolnień klienta, a nie lista zmian. Każde zwolnienie już zarejestrowane, którego brakuje na liście, zostaje usunięte — w ten sposób wycofany certyfikat przestaje być honorowany. Wysłanie niepełnej listy po cichu usuwa wszystko, czego na niej nie ma.Każdy rekord jest zwolnieniem. Nie ma sposobu, aby zarejestrować, że klient nie jest zwolniony gdziekolwiek — zobacz uwagę poniżej.
Usunięcie wszystkich zwolnień to pusta lista. Aby usunąć certyfikaty klienta, wyślij je z wartością
"taxExemptions": []. Pominięcie klienta w całym ładunku pozostawia jego istniejące rekordy nienaruszone.Zonos nie ma rekordu „brak zwolnienia” — dana jurysdykcja albo znajduje się na liście, albo nie. Jeśli Twój system przechowuje razem jurysdykcje zwolnione i niezwolnione, przefiltruj listę do tych zwolnionych przed synchronizacją. Rekord bez zwolnienia jest nieodróżnialny od prawdziwego certyfikatu, więc zostanie zaakceptowany zamiast odrzucony, a klient zostanie potraktowany jako zwolniony w tym stanie.
Powody zwolnienia
exemptionReasonopisuje, dlaczego klient jest zwolniony. Pole to jest opcjonalne i domyślnie przyjmuje wartośćUNSPECIFIED, ale warto je podać — zobacz poniżej.RESALEFEDERAL_GOVERNMENTSTATE_LOCAL_GOVERNMENTTRIBAL_GOVERNMENTCHARITABLERELIGIOUS_ORGANIZATIONEDUCATIONAL_ORGANIZATIONDIRECT_PAYOTHERUNSPECIFIEDPowody dzielą się na dwie grupy, a różnica ma znaczenie. Powody oparte na podmiocie — rządowy, charytatywny, religijny, edukacyjny — zwalniają kupującego niezależnie od tego, co kupuje. Powody oparte na zastosowaniu, przede wszystkim
RESALE, obejmują wyłącznie towary kwalifikujące się: certyfikat odsprzedaży obejmuje towary, które kupujący odsprzeda, a nie meble biurowe z tego samego zamówienia.Bez podanego powodu Zonos nie może rozróżnić tych dwóch przypadków i może zwolnić wyłącznie całe zamówienia, co jest najtrudniejsze do obronienia w przypadku certyfikatów odsprzedaży. Jeśli większość Twoich zwolnień dotyczy odsprzedaży, wysyłanie
RESALEjako wartości domyślnej z indywidualnie wymienionymi wyjątkami zwykle wymaga znacznie mniej pracy niż klasyfikowanie każdego klienta.Numer referencyjny zwolnienia
exemptionReferenceto numer wydrukowany na dokumentach zwolnienia klienta. W zależności od stanu i rodzaju zwolnienia może to być numer zezwolenia na odsprzedaż lub zezwolenia sprzedawcy, numer stanowego certyfikatu zwolnienia, numer zezwolenia na bezpośrednią płatność lub federalny numer identyfikacji podatkowej.Jest on wymagany w każdym rekordzie. Zapisuj i wysyłaj go dokładnie tak, jak widnieje na certyfikacie — formaty znacznie różnią się w zależności od jurysdykcji (
SR EAA 12-345678,85-8012345678C-9,12-3456789), a Zonos zachowuje wartość w przesłanej postaci, jedynie usuwając otaczające białe znaki. Nie zmieniaj wielkości liter ani nie usuwaj myślników i spacji.Ze względu na ochronę prywatności
exemptionReferencemożna wysłać, ale nie jest on zwracany podczas odczytu zwolnień, ponieważ może zawierać federalny numer identyfikacji podatkowej.Odrzucone rekordy
Rekordy są walidowane pojedynczo. Odrzucony rekord jest zgłaszany w
rejectedi nie powoduje niepowodzenia pozostałej części paczki, ani nie narusza zwolnienia już zarejestrowanego dla danej jurysdykcji.UNKNOWN_CUSTOMERcustomerId. Najpierw utwórz klientaUNKNOWN_JURISDICTIONadministrativeAreanie jest rozpoznawanym stanem, dystryktem ani terytorium USAINVALID_DATE_RANGEexpiresAtnie przypada po dacieeffectiveAtMISSING_EXEMPTION_REFERENCEexemptionReferencejest pusteDUPLICATE_JURISDICTIONNieznani klienci są odrzucani, a nie tworzeni, więc błędnie wpisany
customerIdujawnia się w odpowiedzi zamiast tworzyć profil, który nigdy nie będzie pasował do prawdziwego kupującego.Walidowane są wyłącznie amerykańskie obszary administracyjne. Jednostki podziału administracyjnego innych krajów są akceptowane w przesłanej postaci.
Odczyt i usuwanie
Odczytaj zwolnienia klienta, aby potwierdzić, że synchronizacja się powiodła:
query checkoutCustomerTaxExemptions($customerId: String!) {checkoutCustomerTaxExemptions(customerId: $customerId) {countryCodeadministrativeAreaeffectiveAtexpiresAtexemptionReason}}Aby usunąć wszystkie zwolnienia klienta — na przykład gdy zamyka on swoje konto — użyj
checkoutCustomerTaxExemptionsDelete. Zwraca onoSUCCESSniezależnie od tego, czy klient miał jakiekolwiek zwolnienia, więc można je bezpiecznie wywołać więcej niż raz.mutation checkoutCustomerTaxExemptionsDelete($customerId: String!) {checkoutCustomerTaxExemptionsDelete(customerId: $customerId)}CheckoutCustomerProfileInput CheckoutCustomerTaxExemptionSyncInput
checkoutCustomerTaxExemptionsDelete checkoutCustomerTaxExemptionsSync checkoutCustomerUpsert
Czy ta strona była pomocna?