Modifier des factures
Comment modifier des factures après leur finalisation.
Stripe vous offre la possibilité de modifier une facture finalisée à l’état open
ou uncollectible
. En revanche, vous ne pouvez pas modifier une facture à l’état void
ou paid
. Vous pourriez être amené à corriger une facture si vous devez :
- Modifier la description de la facture.
- Mettre à jour les coordonnées du client.
- Ajouter, supprimer ou modifier un poste de facture.
- Ajouter une ristourne ou appliquer des taxes.
Vous pouvez également personnaliser les factures si vous souhaitez en modifier le contenu ou le marquage.
Remarque
Le processus de conformité des factures peut varier selon les pays. Par exemple, si votre entreprise est établie dans l’Union européenne, vous pouvez annuler une facture et la remplacer par un avoir, au lieu de corriger la facture initiale. Stripe vous recommande de consulter votre conseiller juridique pour obtenir des conseils personnalisés pour votre entreprise.
Vous pouvez utiliser l’API pour modifier une facture après sa finalisation.
Corriger une facture![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Pour lancer le processus de révision post-finalisation, utilisez l’endpoint Create avec le paramètre from_
. Cette requête crée un nouveau brouillon de facture qui est lié à la pièce d’origine et dont il constitue une révision. Tous les postes associés à la facture sont dupliqués, mais pas les avoirs, ce qui peut entraîner une modification du montant dû. La requête ne récupère pas non plus les postes en attente, comme c’est le cas lors de la création d’une facture.
Remarque
Une fois une facture finalisée, ses principaux champs, y compris les montants monétaires, les ristournes et les informations client, ne sont pas modifiables à l’aide du endpoint Update.
Lorsque vous envoyez une requête pour la création d’une facture à l’aide du paramètre from_
, Stripe renvoie le résultat suivant :
{ "id": "{{FIRST_REVISION_INVOICE_ID}}", "status": "draft", "from_invoice": { "invoice": "{{ORIGINAL_INVOICE_ID}}", "action": "revision", }, }
Les champs du nouveau brouillon de facture sont identiques à ceux de la facture d’origine, à l’exception des éléments suivants :
- Si vous avez mis à jour le client de la facture après avoir finalisé la facture d’origine, la nouvelle facture utilise alors les nouvelles informations client. Notez que si vous utilisez le calcul automatique des taxes, cette modification est susceptible d’entraîner un recalcul du montant des taxes.
- Si la facture d’origine était paramétrée sur
auto_
, alors l’état du paramètre pour la correction de facture est défini sur false.advance == true - Le
starting_
et lebalance amount_
de la correction de facture reflètent n’importe quel solde client appliqué à la facture d’origine en plus des soldes supplémentaires disponibles sur l’objet Customer.due
Comme pour n’importe quel brouillon, vous pouvez apporter des changements supplémentaires à la facture. L’exemple suivant illustre la modification de la description d’une facture :
Pour ajouter un nouveau poste de facture à la facture corrigée :
Grâce à la fonctionnalité de correction des factures, vous pouvez modifier les informations relatives au client. Les changements s’appliquent à la fois à la version PDF de la facture finalisée et à la page de facture hébergée :
Après avoir apporté les modifications souhaitées, finalisez la facture corrigée :
Une fois la facture corrigée finalisée, son état bascule sur open
et le paramètre finalized_
est défini sur l’horodatage actuel (plutôt que sur l’horodatage finalized_
de la facture d’origine). Lorsque vous finalisez une facture, Stripe effectue les actions suivantes :
- Annule la facture d’origine.
- Ajoute un paramètre
latest_
à la facture d’origine.revision
Corrections multiples![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Dans certains cas, vous aurez peut-être besoin d’apporter plusieurs corrections à une même facture. Pour ce faire, procédez de la même manière que pour la première modification ; Stripe mettra à jour le paramètre latest_
pour toutes les corrections précédentes. Nous ne mettons à jour le paramètre latest_
qu’au moment de la finalisation et non pas lorsque vous créez la facture corrigée.
Lorsque vous envoyez une requête à l’aide du paramètre from_
, vous recevez le résultat suivant :
{ "id": "{{LATEST_REVISION_INVOICE_ID}}", "status": "draft", "from_invoice": { "invoice": "{{FIRST_REVISION_INVOICE_ID}}", "action": "revision", }, # ... more fields }
Finalisez la nouvelle facture pour terminer la correction :
Si vous essayez de récupérer la facture d’origine, vous recevrez une réponse vous indiquant qu’elle a été annulée. Stripe annule la facture d’origine dès la finalisation de la première correction.
{ "id": "{{ORIGINAL_INVOICE_ID}}", "status": "void", "latest_revision": "{{LATEST_REVISION_INVOICE_ID}}", # This has changed from "{{FIRST_REVISION_INVOICE_ID}". }
Contraintes applicables à la correction des factures![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Stripe impose diverses contraintes en matière de révision des factures :
Vous ne pouvez pas créer plus d’un brouillon de correction par facture : si vous utilisez la méthode
POST
auprès du endpoint/v1/invoices
alors qu’il existe déjà une autre facture à l’étatdraft
pour ce même paramètrefrom_
, Stripe renvoie un code d’état 400.invoice[invoice] Vous pouvez uniquement corriger des factures ouvertes ou non recouvrables : si vous utilisez la méthode
POST
auprès du endpoint/v1/invoices
et quefrom_
correspond à une facture à l’étatinvoice[invoice] open
ouuncollectible
, nous renvoyons un code d’état 400.Si une facture ouverte ou non recouvrable a un PaymentIntent en cours, vous ne pouvez pas créer ou finaliser des corrections : si le client utilise un moyen de paiement qui n’aboutit pas au passage de la facture à l’état
paid
lors de la tentative de paiement (par exemple,us_
), nous renvoyons un code d’état 400.bank_ account Si une facture ouverte ou non recouvrable passe à l’état paid ou void ou qu’elle possède un PaymentIntent en cours de traitement alors qu’un brouillon de correction est en cours, vous ne pouvez pas finaliser la correction : Stripe y veille en envoyant un code d’état 400 à tous les endpoints susceptibles d’entraîner une finalisation, y compris
/v1/invoices/:id/finalize
,/v1/invoices/:id/pay
et/v1/invoices/:id/send
.Vous ne pouvez pas corriger des factures associées à un abonnement : après sa finalisation, vous ne pouvez plus modifier une facture possédant un ID d’abonnement. Pour ce type de factures, Stripe envoie un webhook
invoice.
1 heure avant la finalisation pour toutes les factures à l’exception de la facture d’origine. En outre, vous ne pouvez pas modifier des factures indépendantes sur lesquelles figurent des postes relatifs à un abonnement. Ces factures sont généralement créées en extrayant des postes au prorata en attente.created Vous ne pouvez pas corriger des factures comportant des avoirs : vous ne pouvez pas créer une correction pour une facture qui comporte un avoir.