Synchronisez les certificats d'exonération de taxe de vente américains vers un profil client.
Si vous vendez à des revendeurs, des agences gouvernementales ou des organismes à but non lucratif, ces acheteurs détiennent des certificats d'exonération qui les exemptent de la taxe de vente dans des États spécifiques. Zonos stocke ces certificats sur un profil client afin qu'un acheteur exonéré puisse être reconnu au moment du paiement.
Les exonérations sont enregistrées par juridiction. Un client exonéré en Caroline du Sud n'est pas automatiquement exonéré au Texas ; chaque État pour lequel le client détient un certificat constitue donc un enregistrement distinct avec ses propres dates et son propre numéro de certificat.
Les exonérations se rattachent à un client existant, la synchronisation se fait donc en deux appels : créer le client, puis synchroniser ses certificats. Les deux sont indexés sur votre propre identifiant client — le même customerId que vous utilisez ailleurs dans Checkout. Zonos ne vous demande jamais de stocker un identifiant interne.
Les exonérations ne sont pas encore appliquées aux devis de coût rendu
Vous pouvez synchroniser et gérer les exonérations dès aujourd'hui, et les enregistrements sont
stockés sur le profil client. La déduction d'une exonération de la taxe sur un coût rendu arrive
bientôt ; une exonération synchronisée ne modifie donc pas encore la taxe indiquée à un
acheteur. Synchroniser dès maintenant garantit que vos certificats sont déjà en place le
moment venu.
checkoutCustomerUpsert crée un profil client, ou le met à jour s'il en existe déjà un pour ce customerId. Contrairement à checkoutCustomerProfileAuthenticate, cela ne nécessite pas la présence de l'acheteur, ce qui vous permet de provisionner votre liste de clients à l'avance. Consultez créer ou mettre à jour un profil sans acheteur pour le comportement complet des champs.
Comme cet appel se base sur customerId, l'appeler à plusieurs reprises met à jour le même profil au lieu de créer des doublons. Il est sans risque de l'exécuter sur toute votre liste de clients à chaque synchronisation.
La liste fait foi.taxExemptions représente l'ensemble complet des exonérations du client, et non une liste de modifications. Toute exonération déjà enregistrée mais absente de la liste est supprimée — c'est ainsi qu'un certificat retiré cesse d'être honoré. Envoyer une liste partielle supprime silencieusement tout ce qu'elle omet.
Chaque enregistrement est une exonération. Il n'existe aucun moyen d'indiquer qu'un client n'est pas exonéré quelque part — voir la remarque ci-dessous.
Supprimer toutes les exonérations revient à envoyer une liste vide. Pour effacer les certificats d'un client, envoyez-les avec "taxExemptions": []. Omettre entièrement le client du payload laisse ses enregistrements existants intacts.
N'envoyez que les juridictions où le client est exonéré
Zonos ne possède pas d'enregistrement « non exonéré » — une juridiction figure dans la liste ou n'y
figure pas. Si votre système stocke ensemble les juridictions exonérées et non exonérées, filtrez
pour ne conserver que celles qui sont exonérées avant de synchroniser. Un enregistrement non
exonéré est indiscernable d'un véritable certificat ; il est donc accepté plutôt que rejeté, et le
client sera considéré comme exonéré dans cet État.
exemptionReason décrit pourquoi le client est exonéré. Ce champ est facultatif et prend par défaut UNSPECIFIED, mais il vaut la peine de le renseigner — voir ci-dessous.
Valeur↕
S'applique à↕
RESALE
Marchandises achetées pour être revendues plutôt que consommées
FEDERAL_GOVERNMENT
Une agence ou un département fédéral américain
STATE_LOCAL_GOVERNMENT
Une agence d'État, un comté, une municipalité ou un district scolaire
TRIBAL_GOVERNMENT
Une tribu reconnue au niveau fédéral ou un membre d'une tribu
CHARITABLE
Un organisme caritatif à but non lucratif
RELIGIOUS_ORGANIZATION
Une église ou une autre organisation religieuse
EDUCATIONAL_ORGANIZATION
Une école ou une université
DIRECT_PAY
Un acheteur qui détient un permis de paiement direct et remet lui-même la taxe
OTHER
Tout autre cas, notamment diplomate étranger, production agricole, production industrielle et vente par correspondance
UNSPECIFIED
Aucun motif fourni
Les motifs se répartissent en deux catégories, et la différence est importante. Les motifs fondés sur l'entité — gouvernement, organisme caritatif, religieux, éducatif — exonèrent l'acheteur quel que soit ce qu'il achète. Les motifs fondés sur l'usage, RESALE en premier lieu, ne couvrent que les biens éligibles : un certificat de revente couvre l'inventaire que l'acheteur revendra, pas le mobilier de bureau figurant sur la même commande.
Sans motif, Zonos ne peut pas distinguer les deux cas et ne peut exonérer que des commandes entières, ce qui est le plus difficile à justifier pour les certificats de revente. Si la plupart de vos exonérations concernent la revente, envoyer RESALE par défaut avec les exceptions listées individuellement demande généralement beaucoup moins de travail que de classer chaque client.
exemptionReference est le numéro imprimé sur les documents d'exonération du client. Selon l'État et le type d'exonération, il peut s'agir d'un numéro de permis de revente ou de vendeur, d'un numéro de certificat d'exonération d'État, d'un numéro de permis de paiement direct, ou d'un numéro d'identification fiscale fédéral.
Il est requis pour chaque enregistrement. Enregistrez-le et envoyez-le exactement tel qu'il apparaît sur le certificat — les formats varient considérablement selon la juridiction (SR EAA 12-345678, 85-8012345678C-9, 12-3456789), et Zonos conserve la valeur telle qu'envoyée, en ne retirant que les espaces superflus en début et fin de chaîne. Ne modifiez pas la casse et ne supprimez pas les traits d'union ni les espaces.
Pour des raisons de confidentialité, exemptionReference peut être envoyé mais n'est pas renvoyé
lors de la lecture des exonérations, car il peut contenir un numéro d'identification fiscale
fédéral.
Les enregistrements sont validés un par un. Un enregistrement rejeté est signalé dans rejected et ne fait pas échouer le reste du lot, et ne perturbe pas non plus l'exonération déjà enregistrée pour cette juridiction.
Code↕
Cause↕
UNKNOWN_CUSTOMER
Aucun client ne correspond à customerId. Créez d'abord le client
UNKNOWN_JURISDICTION
administrativeArea n'est pas un État, district ou territoire américain reconnu
INVALID_DATE_RANGE
expiresAt n'est pas postérieur à effectiveAt
MISSING_EXEMPTION_REFERENCE
exemptionReference est vide
DUPLICATE_JURISDICTION
Deux enregistrements d'un même payload partagent un pays, une zone et une date d'effet identiques. Le premier est conservé
Les clients inconnus sont rejetés plutôt que créés, de sorte qu'un customerId mal saisi apparaît dans la réponse au lieu de créer un profil qui ne correspondra jamais à un véritable acheteur.
Seuls les États administratifs américains sont validés. Les subdivisions d'autres pays sont acceptées telles qu'envoyées.
Pour supprimer toutes les exonérations d'un client — par exemple lorsqu'il ferme son compte — utilisez checkoutCustomerTaxExemptionsDelete. Cette opération renvoie SUCCESS que le client ait eu des exonérations ou non ; il est donc sans risque de l'appeler plus d'une fois.
Exonérations fiscales
Exonérations fiscales
Synchronisez les certificats d'exonération de taxe de vente américains vers un profil client.
Si vous vendez à des revendeurs, des agences gouvernementales ou des organismes à but non lucratif, ces acheteurs détiennent des certificats d'exonération qui les exemptent de la taxe de vente dans des États spécifiques. Zonos stocke ces certificats sur un profil client afin qu'un acheteur exonéré puisse être reconnu au moment du paiement.
Les exonérations sont enregistrées par juridiction. Un client exonéré en Caroline du Sud n'est pas automatiquement exonéré au Texas ; chaque État pour lequel le client détient un certificat constitue donc un enregistrement distinct avec ses propres dates et son propre numéro de certificat.
Les exonérations se rattachent à un client existant, la synchronisation se fait donc en deux appels : créer le client, puis synchroniser ses certificats. Les deux sont indexés sur votre propre identifiant client — le même
customerIdque vous utilisez ailleurs dans Checkout. Zonos ne vous demande jamais de stocker un identifiant interne.Cette fonctionnalité est disponible uniquement pour les intégrations API personnalisées.
Vous pouvez synchroniser et gérer les exonérations dès aujourd'hui, et les enregistrements sont stockés sur le profil client. La déduction d'une exonération de la taxe sur un coût rendu arrive bientôt ; une exonération synchronisée ne modifie donc pas encore la taxe indiquée à un acheteur. Synchroniser dès maintenant garantit que vos certificats sont déjà en place le moment venu.
Créer ou mettre à jour le client
checkoutCustomerUpsertcrée un profil client, ou le met à jour s'il en existe déjà un pour cecustomerId. Contrairement àcheckoutCustomerProfileAuthenticate, cela ne nécessite pas la présence de l'acheteur, ce qui vous permet de provisionner votre liste de clients à l'avance. Consultez créer ou mettre à jour un profil sans acheteur pour le comportement complet des champs.mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {checkoutCustomerUpsert(input: $input) {customerIdemailnamephone}}Comme cet appel se base sur
customerId, l'appeler à plusieurs reprises met à jour le même profil au lieu de créer des doublons. Il est sans risque de l'exécuter sur toute votre liste de clients à chaque synchronisation.Synchroniser les exonérations fiscales
checkoutCustomerTaxExemptionsSyncaccepte plusieurs clients à la fois. Chaque entrée remplace l'ensemble complet des exonérations de ce client.mutation checkoutCustomerTaxExemptionsSync($input: [CheckoutCustomerTaxExemptionSyncInput!]!) {checkoutCustomerTaxExemptionsSync(input: $input) {customerIdaccepted {idcountryCodeadministrativeAreaeffectiveAtexpiresAtexemptionReason}rejected {codemessageadministrativeAreaeffectiveAt}}}Une valeur
expiresAtomise signifie que le certificat n'expire pas. Une valeurexemptionReasonomise prend par défautUNSPECIFIED.Fonctionnement de la synchronisation
Trois règles régissent chaque synchronisation.
La liste fait foi.
taxExemptionsreprésente l'ensemble complet des exonérations du client, et non une liste de modifications. Toute exonération déjà enregistrée mais absente de la liste est supprimée — c'est ainsi qu'un certificat retiré cesse d'être honoré. Envoyer une liste partielle supprime silencieusement tout ce qu'elle omet.Chaque enregistrement est une exonération. Il n'existe aucun moyen d'indiquer qu'un client n'est pas exonéré quelque part — voir la remarque ci-dessous.
Supprimer toutes les exonérations revient à envoyer une liste vide. Pour effacer les certificats d'un client, envoyez-les avec
"taxExemptions": []. Omettre entièrement le client du payload laisse ses enregistrements existants intacts.Zonos ne possède pas d'enregistrement « non exonéré » — une juridiction figure dans la liste ou n'y figure pas. Si votre système stocke ensemble les juridictions exonérées et non exonérées, filtrez pour ne conserver que celles qui sont exonérées avant de synchroniser. Un enregistrement non exonéré est indiscernable d'un véritable certificat ; il est donc accepté plutôt que rejeté, et le client sera considéré comme exonéré dans cet État.
Motifs d'exonération
exemptionReasondécrit pourquoi le client est exonéré. Ce champ est facultatif et prend par défautUNSPECIFIED, mais il vaut la peine de le renseigner — voir ci-dessous.RESALEFEDERAL_GOVERNMENTSTATE_LOCAL_GOVERNMENTTRIBAL_GOVERNMENTCHARITABLERELIGIOUS_ORGANIZATIONEDUCATIONAL_ORGANIZATIONDIRECT_PAYOTHERUNSPECIFIEDLes motifs se répartissent en deux catégories, et la différence est importante. Les motifs fondés sur l'entité — gouvernement, organisme caritatif, religieux, éducatif — exonèrent l'acheteur quel que soit ce qu'il achète. Les motifs fondés sur l'usage,
RESALEen premier lieu, ne couvrent que les biens éligibles : un certificat de revente couvre l'inventaire que l'acheteur revendra, pas le mobilier de bureau figurant sur la même commande.Sans motif, Zonos ne peut pas distinguer les deux cas et ne peut exonérer que des commandes entières, ce qui est le plus difficile à justifier pour les certificats de revente. Si la plupart de vos exonérations concernent la revente, envoyer
RESALEpar défaut avec les exceptions listées individuellement demande généralement beaucoup moins de travail que de classer chaque client.Référence d'exonération
exemptionReferenceest le numéro imprimé sur les documents d'exonération du client. Selon l'État et le type d'exonération, il peut s'agir d'un numéro de permis de revente ou de vendeur, d'un numéro de certificat d'exonération d'État, d'un numéro de permis de paiement direct, ou d'un numéro d'identification fiscale fédéral.Il est requis pour chaque enregistrement. Enregistrez-le et envoyez-le exactement tel qu'il apparaît sur le certificat — les formats varient considérablement selon la juridiction (
SR EAA 12-345678,85-8012345678C-9,12-3456789), et Zonos conserve la valeur telle qu'envoyée, en ne retirant que les espaces superflus en début et fin de chaîne. Ne modifiez pas la casse et ne supprimez pas les traits d'union ni les espaces.Pour des raisons de confidentialité,
exemptionReferencepeut être envoyé mais n'est pas renvoyé lors de la lecture des exonérations, car il peut contenir un numéro d'identification fiscale fédéral.Enregistrements rejetés
Les enregistrements sont validés un par un. Un enregistrement rejeté est signalé dans
rejectedet ne fait pas échouer le reste du lot, et ne perturbe pas non plus l'exonération déjà enregistrée pour cette juridiction.UNKNOWN_CUSTOMERcustomerId. Créez d'abord le clientUNKNOWN_JURISDICTIONadministrativeArean'est pas un État, district ou territoire américain reconnuINVALID_DATE_RANGEexpiresAtn'est pas postérieur àeffectiveAtMISSING_EXEMPTION_REFERENCEexemptionReferenceest videDUPLICATE_JURISDICTIONLes clients inconnus sont rejetés plutôt que créés, de sorte qu'un
customerIdmal saisi apparaît dans la réponse au lieu de créer un profil qui ne correspondra jamais à un véritable acheteur.Seuls les États administratifs américains sont validés. Les subdivisions d'autres pays sont acceptées telles qu'envoyées.
Relire et supprimer
Relisez les exonérations d'un client pour confirmer qu'une synchronisation a bien été prise en compte :
query checkoutCustomerTaxExemptions($customerId: String!) {checkoutCustomerTaxExemptions(customerId: $customerId) {countryCodeadministrativeAreaeffectiveAtexpiresAtexemptionReason}}Pour supprimer toutes les exonérations d'un client — par exemple lorsqu'il ferme son compte — utilisez
checkoutCustomerTaxExemptionsDelete. Cette opération renvoieSUCCESSque le client ait eu des exonérations ou non ; il est donc sans risque de l'appeler plus d'une fois.mutation checkoutCustomerTaxExemptionsDelete($customerId: String!) {checkoutCustomerTaxExemptionsDelete(customerId: $customerId)}CheckoutCustomerProfileInput CheckoutCustomerTaxExemptionSyncInput
checkoutCustomerTaxExemptionsDelete checkoutCustomerTaxExemptionsSync checkoutCustomerUpsert
Cette page a-t-elle été utile?