API de caisse express
Présentation du point de terminaison Expédition et totaux d'Affirm Express Checkout, notamment la façon dont il retourne les options d'expédition, les taxes et les montants finaux de la commande lors du flux de caisse hébergé.
Vous souhaitez offrir Affirm Express Checkout ?
Contactez votre gestionnaire de compte Affirm pour confirmer la disponibilité et connaître les prochaines étapes pour construire vos API.
Aperçu
Affirm Express Checkout s’appuie sur un point de terminaison API hébergé par le commerçant pour compléter dynamiquement le processus de paiement dans l’expérience Affirm : point de terminaison Expédition et totaux. Ce point de terminaison permet à Affirm de recueillir les détails d’expédition des clients, de présenter des méthodes d’expédition valides, de calculer les taxes et les totaux, et de retourner les détails de la commande finalisés au commerçant après la confirmation du prêt.
En transférant la collecte d’adresses et le calcul de la caisse dans le flux hébergé d’Affirm, les commerçants peuvent réduire la complexité de la caisse tout en conservant un contrôle total sur la logique d’expédition, les prix et les calculs fiscaux en arrière-plan.
Types de points de terminaison pour l’expédition et les totaux
Le point de terminaison Expédition et totaux calcule et renvoie les options d’expédition disponibles ainsi que les totaux finaux de la commande en fonction de l’adresse de livraison du client pendant le passage à la caisse.
demande
En-têtes
| En-tête | Type | Requis | Description |
|---|---|---|---|
X-Affirm-Signature | string | Oui | Utilisé pour vérifier que la requête provient légitimement d'Affirm. Il contient un horodatage et un hachage HMAC-SHA512 du corps de la requête, signé avec votre clé API privée. |
Content-Type | string | Oui | Doit être réglé sur application/json car le terminal accepte et retourne les charges utiles JSON. |
corps
| Champ | Type | Requis | Description |
|---|---|---|---|
order_id | string | Oui | Identifiant marchand permettant de référencer la session de paiement en cours. Veuillez noter que vous êtes toujours tenu de fournir une confirmation order_id après le prêt. |
currency | string | Oui | Three-letter ISO currency code in uppercase. |
shipping | ShippingBilling.Address | Oui | Adresse de livraison. |
ShippingBilling.Address
ShippingBilling.Address| Champ | Type | Requis | Description |
|---|---|---|---|
line1 | string | Oui | Ligne d'adresse 1 (p. ex. rue, boîte postale ou nom de l'entreprise). |
line2 | string | Non | Adresse ligne 2 (p. ex. appartement, suite, unité ou immeuble). |
city | string | Oui | Ville, quartier, banlieue, bourg ou village. |
state | string | Oui | État, comté, province ou région. |
zipcode | string | Oui | Code postal. |
country | string | Oui | Code de pays à deux lettres (ISO 3166-1 alpha-2). |
Réponse HTTP 200
corps
Champ | Type | Requis | Description |
|---|---|---|---|
|
| Oui | Identifiant marchand permettant de référencer la session de paiement en cours. Veuillez noter que vous êtes toujours tenu de fournir une confirmation |
|
| Oui | Three-letter ISO currency code in uppercase. |
|
| Oui | Montant total des articles dans le panier, à l'exclusion de toute taxe ou frais d'expédition, dans l'unité monétaire mineure du code ISO spécifié. Exemple : 100 cents pour facturer 1,00 $ CA |
|
| Oui | Les options d'expédition disponibles ainsi que les totaux de commande associés. |
ShippingOption
ShippingOptionChamp | Type | Requis | Description |
|---|---|---|---|
|
| Oui | Oui, un identifiant unique généré par le commerçant pour l'option d'expédition. Cette valeur est utilisée pour mapper la sélection du client à vos dossiers de traitement internes et doit rester constante pendant toute la session. Veuillez vous assurer que chaque option d’expédition a sa propre valeur Exemples :
|
|
| Oui | L'étiquette de méthode d'expédition affichée à l'utilisateur. Exemple : « Livraison standard (7 à 10 jours) » |
|
| Oui | Le coût d’expédition dans l’unité monétaire mineure du code de devise ISO spécifié. Exemple : 100 cents pour facturer 1,00 $ |
|
| Oui | Le montant total de la taxe dans l'unité monétaire mineure du code ISO spécifié. Exemple : 100 cents pour facturer 1,00 $ |
|
| Oui | Le montant total de la caisse dans l'unité monétaire mineure du code devise ISO spécifié. Exemple : 100 cents pour facturer 1,00 $ |
Réponse HTTP 422
corps
| Champ | Type | Requis | Description |
|---|---|---|---|
errors | Array<Object> (Error) | Oui | Un tableau d’un ou plusieurs objets d’erreur décrivant pourquoi la requête n’a pas pu être traitée. Doit contenir au moins un élément. |
Error
Error| Champ | Type | Requis | Description |
|---|---|---|---|
error_code | enum | Oui | Un des codes d’erreur Affirm prédéfinis. |
message | string | Oui | A description of the error. |
fields | string[] | Non | The request payload property that caused the error. |
error_code Enum
error_code Enum| Code d’erreur | Description |
|---|---|
UNSUPPORTED_SHIPPING_ZONE | Utilisé lorsque l'adresse est valide, mais que le commerçant ne livre pas dans cette région (par exemple, Hawaï/Alaska). |
INVALID_SHIPPING_ADDRESS | L'adresse fournie n'existe pas ou est mal formée. |
ORDER_NOT_FOUND | Le order_id transmis dans la requête ne correspond pas à une session active ni à un panier dans le système du commerçant. |
CURRENCY_MISMATCH | Le système du commerçant ne prend pas en charge la devise spécifiée dans la requête (par exemple, le commerçant ne prend en charge que le dollar canadien, mais reçoit le dollar américain). |
INVENTORY_UNAVAILABLE | Entre l'initiation de la caisse et le calcul des totaux, des articles du tableau « items » ne sont plus en stock. |
SHIPPING_METHOD_UNAVAILABLE | Aucune option d'expédition valide ne peut être générée pour l'adresse demandée (par exemple, des articles surdimensionnés vers une zone éloignée). |
INTERNAL_SERVER_ERROR | Une catégorie générique pour les pannes inattendues du backend côté commerçant ou les délais d’attente de la base de données lors du calcul. |
Mis à jour 22 days ago