DOCS

Skattefritagelser

Synkroniser certifikater for amerikansk sales tax-fritagelse til en kundeprofil.

Hvis du sælger til videresælgere, offentlige myndigheder eller nonprofitorganisationer, har disse købere fritagelsescertifikater, der fritager dem for sales tax i bestemte stater. Zonos gemmer disse certifikater på en kundeprofil, så en fritaget køber kan genkendes ved checkout.

Fritagelser registreres pr. jurisdiktion. En kunde, der er fritaget i South Carolina, er ikke automatisk fritaget i Texas, så hver stat, kunden har et certifikat for, er en separat post med egne datoer og certifikatnummer.

Fritagelser knyttes til en eksisterende kunde, så synkronisering er to kald: opret kunden, og synkroniser derefter deres certifikater. Begge er nøglet på dit eget kunde-ID — det samme customerId, du bruger andre steder i Checkout. Zonos kræver aldrig, at du gemmer et internt ID.

Denne funktion er kun tilgængelig for brugerdefinerede API-integrationer.

Fritagelser anvendes endnu ikke på landed cost-tilbud

Du kan synkronisere og administrere fritagelser i dag, og posterne gemmes på kundeprofilen. At fratrække en fritagelse i skatten på et landed cost-tilbud kommer snart, så en synkroniseret fritagelse ændrer endnu ikke den skat, en shopper får tilbudt. At synkronisere nu betyder, at dine certifikater allerede er på plads, når det sker.

Opret eller opdater kunden 

checkoutCustomerUpsert opretter en kundeprofil eller opdaterer den, hvis der allerede findes én for det pågældende customerId. I modsætning til checkoutCustomerProfileAuthenticate kræver denne ikke, at shopperen er til stede, så du kan klargøre din kundeliste på forhånd. Se opret eller opdater en profil uden en shopper for den fulde feltopførsel.

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

Fordi den matcher på customerId, opdaterer gentagne kald den samme profil i stedet for at oprette dubletter. Det er sikkert at køre den på tværs af hele din kundeliste ved hver synkronisering.

Synkroniser skattefritagelser 

checkoutCustomerTaxExemptionsSync accepterer flere kunder ad gangen. Hver post erstatter kundens fulde sæt af fritagelser.

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}

Et udeladt expiresAt betyder, at certifikatet ikke udløber. Et udeladt exemptionReason bruger som standard UNSPECIFIED.

Sådan fungerer synkronisering 

Tre regler gælder for hver synkronisering.

Listen er autoritativ. taxExemptions er kundens fulde sæt, ikke en liste over ændringer. Enhver fritagelse, der allerede er registreret, og som mangler i listen, fjernes — det er sådan et tilbagekaldt certifikat holder op med at blive honoreret. Sender du en delvis liste, fjernes alt, den udelader, uden varsel.

Hver post er en fritagelse. Der er ingen måde at registrere, at en kunde ikke er fritaget et sted — se bemærkningen nedenfor.

At fjerne alle fritagelser er en tom liste. For at rydde en kundes certifikater skal du sende dem med "taxExemptions": []. Udelader du kunden helt fra payloaden, forbliver deres eksisterende poster urørte.

Send kun jurisdiktioner, kunden er fritaget i

Zonos har ingen post for „ikke fritaget" — en jurisdiktion er enten på listen, eller også er den ikke. Hvis dit system gemmer fritagne og ikke-fritagne jurisdiktioner sammen, skal du filtrere til de fritagne, før du synkroniserer. En ikke-fritaget post kan ikke skelnes fra et reelt certifikat, så den accepteres i stedet for at blive afvist, og kunden vil blive behandlet som fritaget i den stat.

Fritagelsesårsager 

exemptionReason beskriver, hvorfor kunden er fritaget. Den er valgfri og bruger som standard UNSPECIFIED, men det er umagen værd at angive den — se nedenfor.

Værdi↕Gælder for↕
RESALEVarer købt til videresalg snarere end forbrug
FEDERAL_GOVERNMENTEt amerikansk føderalt agentur eller departement
STATE_LOCAL_GOVERNMENTEn delstatslig myndighed, county, kommune eller skoledistrikt
TRIBAL_GOVERNMENTEn føderalt anerkendt stamme eller et medlem af en sådan stamme
CHARITABLEEn velgørende nonprofitorganisation
RELIGIOUS_ORGANIZATIONEn kirke eller anden religiøs organisation
EDUCATIONAL_ORGANIZATIONEn skole eller et universitet
DIRECT_PAYEn køber, der har en direct pay-tilladelse og selv afregner skat
OTHERAlt andet, herunder udenlandske diplomater, landbrugsproduktion, industriproduktion og direct mail
UNSPECIFIEDIngen årsag angivet

Årsager falder i to grupper, og forskellen er vigtig. Enhedsbaserede årsager — offentlig myndighed, velgørenhed, religiøs, uddannelse — fritager køberen uanset hvad de køber. Anvendelsesbaserede årsager, først og fremmest RESALE, dækker kun kvalificerende varer: et videresalgscertifikat dækker lager, køberen vil videresælge, ikke kontormøblerne på samme ordre.

Uden en årsag kan Zonos ikke skelne de to fra hinanden og kan kun fritage hele ordrer, hvilket er sværest at forsvare for videresalgscertifikater. Hvis de fleste af dine fritagelser er videresalg, er det som regel langt mindre arbejde at sende RESALE som standard med undtagelser opført enkeltvis end at klassificere hver eneste kunde.

Fritagelsesreference 

exemptionReference er det nummer, der er trykt på kundens fritagelsesdokumentation. Afhængigt af staten og typen af fritagelse kan det være et videresalgs- eller sælgertilladelsesnummer, et statsligt fritagelsescertifikatnummer, et direct pay-tilladelsesnummer eller et føderalt skatte-ID.

Det er påkrævet på hver post. Gem og send det nøjagtigt, som det fremgår på certifikatet — formater varierer meget fra jurisdiktion til jurisdiktion (SR EAA 12-345678, 85-8012345678C-9, 12-3456789), og Zonos bevarer værdien, som den blev sendt, bortset fra at trimme omkringliggende whitespace. Undlad at ændre store/små bogstaver eller fjerne bindestreger og mellemrum.

Af hensyn til privatlivets fred kan exemptionReference sendes, men returneres ikke, når fritagelser læses tilbage, da den kan indeholde et føderalt skatte-ID.

Afviste poster 

Poster valideres én ad gangen. En afvist post rapporteres i rejected og får ikke resten af batchen til at fejle, ligesom den heller ikke påvirker den fritagelse, der allerede er registreret for den jurisdiktion.

Kode↕Årsag↕
UNKNOWN_CUSTOMERIngen kunde matcher customerId. Opret kunden først
UNKNOWN_JURISDICTIONadministrativeArea er ikke en genkendt amerikansk stat, distrikt eller territorium
INVALID_DATE_RANGEexpiresAt er ikke efter effectiveAt
MISSING_EXEMPTION_REFERENCEexemptionReference er tom
DUPLICATE_JURISDICTIONTo poster i samme payload deler land, område og ikrafttrædelsesdato. Den første beholdes

Ukendte kunder afvises i stedet for at blive oprettet, så et forkert stavet customerId fremgår af svaret i stedet for at oprette en profil, der aldrig matcher en reel køber.

Kun amerikanske administrative områder valideres. Underinddelinger i andre lande accepteres, som de sendes.

Læs tilbage og fjern 

Læs en kundes fritagelser for at bekræfte, at en synkronisering er landet:

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

For at fjerne alle fritagelser for en kunde — for eksempel når de lukker deres konto — skal du bruge checkoutCustomerTaxExemptionsDelete. Den returnerer SUCCESS, uanset om kunden havde nogen fritagelser, så det er sikkert at kalde den mere end én gang.

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

Var denne side nyttig?