Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
    Présentation
    Guides QuickStart
    Stripe Elements
    Comparer Checkout Sessions et PaymentIntents
    Concevoir une intégration avancée
    Personnaliser l'apparence
    Gérer les moyens de paiement
    Collecter des informations supplémentaires
      Collecter les adresses physiques et les numéros de téléphone
      Personnaliser la collecte des données de facturation
      Facturer la livraison
    Créer une intégration pour les abonnements
    Mises à jour dynamiques
    Ajouter des réductions
    Percevoir les taxes sur vos paiements
    Utiliser des crédits
    Offrir aux clients la possibilité de payer dans leur devise locale
    Enregistrer et récupérer les moyens de paiement des clients
    Envoyer des reçus ou factures après paiement
    Approuver manuellement les paiements sur votre serveur
    Autoriser et capturer un paiement séparément
    Liste des modifications de la version bêta d'Elements avec l'API Checkout Sessions
Développer une intégration dans l'application
Paiements par TPE
Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsBuild a custom integration with ElementsCollect additional information

Facturer la livraison

Créez différents tarifs de livraison pour vos clients.

Les frais de livraison vous permettent de proposer différentes options d’envoi (Standard, Express, 24 heures, etc.) avec des estimations de livraison plus précises. Vous pouvez facturer les frais de livraison à vos clients en utilisant les produits Stripe. Avant de créer des frais de livraison, découvrez comment recueillir les adresses de facturation et de livraison .

Remarque

Les tarifs d’expédition ne prennent en charge que des valeurs fixes pour l’ensemble de la commande. Vous ne pouvez pas ajuster les frais de livraison en fonction du nombre d’articles dans la commande.

Créer des frais de livraison
Côté serveur

Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour l’ensemble de la commande. Vous ne pouvez pas ajuster les frais de livraison en fonction du nombre d’articles dans la commande.

Pour ajouter des frais de livraison à l’aide du Dashboard :

  1. Cliquez sur Créer des frais de livraison.
  2. Renseignez un montant, une description et, si vous le souhaitez, une estimation du délai de livraison.
  3. Cliquez sur Enregistrer et copiez l’ID des frais de livraison (shr_123456).

Saisir les détails de vos frais de livraison

Modifier des frais de livraison

Vous ne pouvez pas mettre à jour les frais de livraison dans le Dashboard. Pour mettre à jour des frais de livraison dans le Dashboard, vous devez archiver les frais de livraison concernés, puis en créer d’autres.

Archiver les frais de livraison

Pour archiver des frais de livraison :

  1. Dans l’onglet Frais de livraison, sélectionnez les frais de livraison applicables.
  2. Cliquez sur le menu déroulant , puis sélectionnez Archiver.

Pour désarchiver les frais de livraison, cliquez sur le menu déroulant et sélectionnez Désarchiver les frais de livraison.

Créer une session Checkout
Côté serveur

Pour créer une session Checkout qui inclut vos frais de livraison, transmettez l’identifiant du tarif généré au paramètre shipping_options . Si vous souhaitez créer les frais de livraison en même temps qu’une session Checkout, utilisez le paramètre shipping_rate_data avec shipping_options. Seules les sessions Checkout en mode paiement prennent en charge les options de livraison.

L’exemple de code suivant ajoute deux options d’expédition à la session Checkout :

  • Livraison gratuite sous 5 à 7 jours ouvrables (estimation).
  • Livraison par voie aérienne sous 1 jour ouvré (estimation) pour un coût de 15,00 USD.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d billing_address_collection=required \ -d "shipping_address_collection[allowed_countries][0]"=US \ -d "shipping_address_collection[allowed_countries][1]"=CA \ -d "shipping_options[0][shipping_rate_data][type]"=fixed_amount \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]"=0 \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]"=usd \ -d "shipping_options[0][shipping_rate_data][display_name]"="Free shipping" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]"=5 \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]"=7 \ -d "shipping_options[1][shipping_rate_data][type]"=fixed_amount \ -d "shipping_options[1][shipping_rate_data][fixed_amount][amount]"=1500 \ -d "shipping_options[1][shipping_rate_data][fixed_amount][currency]"=usd \ -d "shipping_options[1][shipping_rate_data][display_name]"="Next day air" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][value]"=1 \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][value]"=1 \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d ui_mode=custom \ --data-urlencode return_url="https://example.com/return"

Collecter l'option de livraison choisie par le client
Côté client

Côté client, utilisez l’objet shippingOptions pour afficher les options de livraison disponibles, par exemple dans une liste de boutons radio. Lorsque votre client sélectionne une option de livraison, appelez updateShippingOption avec l’identifiant de l’option de livraison.

index.html
<div id="shipping-options"></div>
checkout.js
actions.getSession().shippingOptions.forEach((option) => { const form = document.createElement('form'); shippingOptions.forEach(option => { const label = document.createElement('label'); const radio = document.createElement('input'); radio.type = 'radio'; radio.id = option.id; radio.name = 'shippingOption'; radio.value = option.id; radio.addEventListener('click', () => { actions.updateShippingOption(option.id) }) const labelText = document.createTextNode(option.displayName); label.appendChild(radio); label.appendChild(labelText); form.appendChild(label); }); document.getElementById('shipping-options').appendChild(form); }); const shippingAddressElement = checkout.createShippingAddressElement(); shippingAddressElement.mount('#shipping-address');

FacultatifGérer les transactions réussies

Une fois le paiement aboutit, vous pouvez récupérer le montant de la livraison dans l’attribut amount_total de shipping_cost. Vous pouvez également récupérer le tarif de livraison sélectionné à l’aide de l’attribut shipping_rate de shipping_cost. Pour accéder à la propriété shipping_cost, vous devez créer un gestionnaire d’événements pour gérer les sessions Checkout terminées. Vous pouvez tester un gestionnaire en installant la CLI Stripe et en utilisant stripe listen --forward-to localhost:4242/webhook pour transférer les événements vers votre serveur local. Dans l’exemple de code suivant, le gestionnaire permet à l’utilisateur d’accéder à shipping_property :

Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
"sk_test_BQokikJOvBiI2HlWgH4olfQ2"
require 'sinatra' # You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end if event['type'] == 'checkout.session.completed' checkout_session = event['data']['object'] fulfill_order(checkout_session) end status 200 end def fulfill_order(checkout_session) selected_shipping_rate = Stripe::ShippingRate.retrieve(checkout_session.shipping_cost.shipping_rate) shipping_total = checkout_session.shipping_cost.amount_total # TODO: Remove error and implement... raise NotImplementedError.new(<<~MSG) Given the Checkout Session "#{checkout_session.id}" load your internal order from the database then implement your own fulfillment logic. MSG end

FacultatifÉtablir une estimation du délai de livraison

Vous pouvez configurer des tarifs de livraison avec différentes combinaisons d’estimations du délai de livraison. Le tableau suivant présente des exemples d’estimations, avec leurs valeurs delivery_estimate.minimum et delivery_estimate.maximum correspondantes :

Estimation du délai de livraisonMinimumMaximum
1 jour
{ unit: 'day', value: 1, }
{ unit: 'day', value: 1, }
1 jour ouvré
{ unit: 'business_day', value: 1, }
{ unit: 'business_day', value: 1, }
Au moins 2 jours ouvrés
{ unit: 'business_day', value: 2, }
null
3 à 7 jours
{ unit: 'day', value: 3, }
{ unit: 'day', value: 7, }
4 à 8 heures
{ unit: 'hour', value: 4, }
{ unit: 'hour', value: 8, }
De 4 heures à 2 jours ouvrés
{ unit: 'hour', value: 4, }
{ unit: 'business_day', value: 2, }

FacultatifAppliquer la taxe aux frais de livraison

Vous pouvez utiliser Stripe Tax pour calculer automatiquement la taxe appliquée aux frais de livraison en définissant un tax_code et un tax_behavior sur vos frais de livraison. Stripe Tax détermine automatiquement si la livraison est imposable (car la fiscalité varie selon l’état et le pays), puis applique le taux de taxe adapté si c’est le cas.

Lors de la création d’un tarif d’expédition avec shipping_rate_data ou par le biais de Create a Shipping Rate, vous pouvez ajouter un paramètre tax_behavior et tax_code au tarif d’expédition.

Nous vous recommandons de définir le tax_code sur Shipping (txcd_92010001) pour vous assurer que vous facturez toujours la juste taxe. Vous pouvez également définir le tax_code du tarif de livraison sur Nontaxable (txcd_00000000) si vous ne souhaitez facturer aucune taxe.

Dans cet exemple, nous définissons le tax_behavior sur exclusive (courant aux États-Unis). Pour plus d’informations, reportez-vous à notre documentation relative au comportement fiscal.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d billing_address_collection=required \ -d "shipping_address_collection[allowed_countries][0]"=US \ -d "shipping_address_collection[allowed_countries][1]"=CA \ -d "shipping_options[0][shipping_rate_data][type]"=fixed_amount \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]"=0 \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]"=usd \ -d "shipping_options[0][shipping_rate_data][display_name]"="Free shipping" \ -d "shipping_options[0][shipping_rate_data][tax_behavior]"=exclusive \ -d "shipping_options[0][shipping_rate_data][tax_code]"=txcd_92010001 \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]"=5 \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]"=7 \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][tax_behavior]"=exclusive \ -d "line_items[0][quantity]"=1 \ -d "automatic_tax[enabled]"=true \ -d mode=payment \ -d ui_mode=custom \ --data-urlencode return_url="https://example.com/return"
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc