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 marketplaces
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
Gestion des versions
Journal des modifications
    Présentation
    Clover
    Basil
    Acacia
    Versions précédentes
Mettre à niveau votre version de l'API
Actualiser votre version du SDK
Essentials
SDK
API
Tests
CLI Stripe
Exemples de projets
Outils
Dashboard Stripe
Workbench
Dashboard des développeurs
Shell Stripe
Stripe pour Visual Studio Code
Fonctionnalités
Workflows
Destinations d'événements
Alertes d'intégrité de StripeChargements de fichiers
Solutions d'IA
Boîte à outils des agents
Modèle de protocole contextuelCréer des flux de facturation SaaS avec l’IA agentique
Sécurité et confidentialité
Sécurité
Robot d'exploration Web Stripebot
Confidentialité
Extensions Stripe
Créer des applications Stripe
Utiliser les applications de Stripe
Partenaires
Partner ecosystem
Certification des partenaires
États-Unis
Français (France)
AccueilRessources pour les développeursChangelogBasil2025-03-31.basil

Ajout de la prise en charge de paiements multiples (partiels) sur les facturesModifications majeures

Nouveautés

Nous lançons la prise en charge les paiements multiples (partiels) sur les factures et les avoirs. Les factures permettent également de suivre les paiements excédentaires et peuvent désormais suivre les paiements hors bande. De plus, nous ajoutons un champ confirmation_secret sur l’objet facture afin d’améliorer la prise en charge de l’utilisation de l’élément paiement.

Pourquoi s’agit-il d’une modification majeure ?

  • Suppression des champs payment_intent, charge, paid et paid_out_of_band de l’objet Invoice.
  • Suppression du champ invoice des objets PaymentIntent et Charge.
  • Suppression des champs application_fee_amount et transfer_data de l’objet Invoice. Pour les paiements effectués sur Stripe, ces champs sont désormais accessibles via le PaymentIntent sous-jacent en développant payments.data.payment.payment_intent sur l’objet Invoice.
  • Le champ refund de l’objet avoir est obsolète et remplacé par un tableau refunds.
  • Le champ amount_paid de l’objet Invoice reflète désormais les paiements effectués en dehors de Stripe.

Impact

Nous avons introduit l’objet paiement de facture pour représenter le lien entre les paiements et les factures et supprimé les pointeurs de facture et de paiement précédents sur les objets concernés. Veillez à mettre à jour votre intégration afin qu’elle ne parte plus du principe qu’une seule facture doit être payée par un seul paiement, et utilisez le nouvel objet paiement de facture pour comprendre le lien entre les paiements et les factures.

Inspecter le tableau paiements de facture pour les informations de paiement

Vous pouvez inspecter invoice.payments lorsque vous interagissez avec l’objet facture en développant la propriété payments :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/invoices/{INVOICE_ID} \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"=payments

Le tableau invoice.payments fournit une liste de tous les paiements associés à la facture, ainsi que leur affectation et leur état de paiement respectifs.

Utiliser les nouveaux endpoints Invoice Payment pour les paiements et la connexion des factures

Pour comprendre le lien entre un objet intention de paiements et facture, vous pouvez utiliser l’endpoint répertorier le paiement de facture :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/invoice_payments \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment[type]"=payment_intent \ -d "payment[payment_intent]"={PAYMENT_INTENT_ID}

Utiliser confirmation_secret pour les intégrations du composant Payment Element

Pour les intégrations Payment Element, en particulier les intégrations d’abonnement, qui reposaient auparavant sur le développement de invoice.payment_intent.client_secret ou latest_invoice.payments.data.payment.payment_intent.client_secret, vous pouvez désormais utiliser le nouveau champ invoice.confirmation_secret.client_secret de l’objet Invoice en développant confirmation_secret :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/invoices/{INVOICE_ID} \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"=confirmation_secret

Accéder à application_fee_amount et transfer_data via PaymentIntents

Avec la suppression des champs application_fee_amount et transfer_data de l’objet Invoice, vous pouvez désormais accéder à ces champs pour les paiements effectués sur Stripe via le PaymentIntent sous-jacent. Développez payments.data.payment.payment_intent lors de la récupération de la facture :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/invoices/{INVOICE_ID} \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"="payments.data.payment.payment_intent"

Vous pouvez ensuite accéder à invoice.payments.data[i].payment.payment_intent.application_fee_amount et invoice.payments.data[i].payment.payment_intent.transfer_data depuis l’objet PaymentIntent développé. Ces champs ne sont disponibles que pour les paiements effectués sur Stripe lorsque le type de paiement est payment_intent.

Identifier les factures avec des paiements hors Stripe

Avec la suppression du champ paid_out_of_band, vous pouvez désormais identifier les factures avec des paiements Stripe à l’aide de l’icône invoice.payments.

Pour vérifier si une facture est entièrement payée hors Stripe, vérifiez si lestatus de la facture est paid, si amount_due est supérieur à 0, et la somme des paiements de type PaymentIntent dans le tableau invoice.payments est égal à 0.

Pour vérifier si une facture est partiellement payée hors Stripe, vérifiez si l’amount_due est supérieur à 0, et si la somme des paiements de type PaymentIntent dans le tableau invoice.payments est inférieure à l’amount_paid.

Modifications

Modifierressource
Ajouté
InvoicePayment
endpoints Modifierressource
retrievelistAjouté
InvoicePayment
paramètresModifierRessources ou endpoints
chargepayment_intenttransfer_datapaidapplication_fee_amountpaid_out_of_bandSupprimé
Invoice
refundsAjouté
CreditNoteCreditNote#createCreditNote#preview_lines
 + 1 de plus
CreditNote#preview
refundSupprimé
CreditNoteCreditNote#createCreditNote#preview_lines
 + 1 de plus
CreditNote#preview
amount_overpaidpaymentsconfirmation_secretAjouté
Invoice
invoiceSupprimé
PaymentIntentCharge
valeurModifierénumérations
invoice.overpaidAjouté
WebhookEndpoint#create.enabled_eventsWebhookEndpoint#update.enabled_eventsEvent.type

Mise à niveau

  1. Consultez la version actuelle de votre API dans Workbench.
  2. Si vous utilisez un SDK, passez à une version correspondant à celle de l’API.
    • Si vous n’utilisez pas de SDK, mettez à jour vos requêtes API pour inclure la version Stripe : 2025-03-31.basil
  3. Mettez à niveau la version de l’API utilisée pour les endpoints de webhook.
  4. Testez votre intégration avec la nouvelle version.
  5. Si vous utilisez Connect, testez votre intégration Connect.
  6. Effectuez la mise à niveau dans Workbench. Vous pourrez revenir à la version précédente pendant 72 heures.

En savoir plus sur les mises à niveau de l’API Stripe.

Changements connexes

  • Remplacement des champs de tarif de niveau supérieur par une modélisation de tarif améliorée sur les postes de facture et les sous-postes de facture
  • Remplacement des propriétés fiscales de niveau supérieur par une modélisation fiscale améliorée sur les factures, les sous-postes de facture et les postes d’avoir
  • Ajout de la subdivision territoriale et du motif d’assujettissement à la taxe aux montants de taxe manuels sur les factures
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