Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Versioning
Changelog
    Overview
    Basil
    Acacia
    Previous versions
Upgrade your API version
Upgrade your SDK version
Developer tools
SDKs
API
Testing
Workbench
Event Destinations
Workflows
Stripe CLI
Stripe Shell
Developers Dashboard
Agent toolkit
Stripe health alertsBuilding with LLMsStripe for Visual Studio CodeFile uploads
Security
Security
Extend Stripe
Stripe Apps
Stripe Connectors
Partners
Partner ecosystem
Partner certification
HomeDeveloper toolsChangelogBasil2025-03-31.basil

Replaces top-level tax-related properties with improved tax modeling on Invoices, Invoice Line Items, and Credit Note Line ItemsBreaking changes

What’s new

We’re introducing a new taxes concept on Invoice Line Items and Credit Note Line Items that contains tax-related data and unifies the structure of tax objects in preparation for adding new types of tax objects. This replaces the top-level tax-related properties on the Invoice Line Item and Credit Note Line Item objects.

We’re also introducing a new total_taxes property on the Invoice and Credit Note objects for aggregated tax information.

Why is this a breaking change?

  • tax_rates and tax_amounts are no longer available on the Invoice Line Item and Credit Note Line Item objects.
  • total_tax_amounts is no longer available on the Invoice object.

Impact

Tax Rate IDs on Invoice Line Items and Credit Note Line Items are now nested inside the new taxes property:

  • Replace line_item.tax_rates[0] with line_item.taxes[0].tax_rate_details.tax_rate (after verifying that line_item.taxes[0].type is tax_rate_details)
  • Replace line_item.tax_amounts[0].amount with line_item.taxes[0].amount

Tax totals on Invoices and Credit Notes are now stored in total_taxes:

  • Replace invoice.total_tax_amounts[0].amount with invoice.total_taxes[0].amount (after verifying that invoice.total_taxes[0].type is tax_rate_details)

Changes

ParametersChangeResources or endpoints
tax_amountsRemoved
CreditNoteCreditNoteLineItemInvoiceLineItem
amount_excluding_taxunit_amount_excluding_taxRemoved
CreditNoteLineItemInvoiceLineItem
tax_ratesRemoved
InvoiceLineItem
taxtotal_tax_amountsRemoved
Invoice
total_taxesAdded
CreditNoteInvoice
taxesAdded
CreditNoteLineItemInvoiceLineItem

Upgrade

  1. View your current API version in Workbench.
  2. If you use an SDK, upgrade to the corresponding SDK version for this API version.
    • If you don’t use an SDK, update your API requests to include Stripe-Version: 2025-03-31.basil
  3. Upgrade the API version used for webhook endpoints.
  4. Test your integration against the new version.
  5. If you use Connect, test your Connect integration.
  6. In Workbench, perform the upgrade. You can roll back the version for 72 hours.

Learn more about Stripe API upgrades.

Related changes

  • Replaces top-level price fields with improved price modeling on Invoice Items and Invoice Line Items
  • Adds support for multiple (partial) payments on invoices
  • Adds jurisdiction level and taxability reason to manual tax amounts on invoices
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc