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 price fields with improved price modeling on Invoice Items and Invoice Line ItemsBreaking changes

What’s new

We’re introducing a new polymorphic pricing concept on Invoice Items and Invoice Line Items. It contains all price-related data and unifies the structure of pricing objects (Price and Plan) to prepare for adding new pricing object types. We’re also moving unit amount data into pricing.

Why is this a breaking change?

  • price and plan fields are no longer available on Invoice Items and Invoice Line Items.
  • Move unit_amount and unit_amount_decimal to the new pricing concept on Invoice Items and Invoice Line Items.

Impact

Replace all references to price or plan on Invoice Items or Invoice Line Items with the pricing field:

  • Instead of invoice_item.price.id, use invoice_item.pricing.price_details.price after verifying that invoice_item.pricing.type is price_details
  • When creating or updating Invoice Items, use the pricing parameter instead of price (e.g., set pricing.price instead of passing the price parameter)
  • For unit amounts, use pricing.unit_amount_decimal instead of unit_amount or unit_amount_decimal
  • When creating or updating Invoice Items, use the unit_amount_decimal parameter instead of unit_amount

Changes

ParametersChangeResources or endpoints
planpriceunit_amount_decimalunit_amountRemoved
InvoiceItem
planpriceRemoved
InvoiceLineItem
pricingAdded
Invoice#add_lines.lines[]Invoice#update_lines.lines[]InvoiceItem#create
 + 4 more
InvoiceItem#updateInvoiceLineItem#updateInvoiceItemInvoiceLineItem
priceRemoved
Invoice#add_lines.lines[]Invoice#update_lines.lines[]InvoiceItem#create
 + 4 more
InvoiceItem#updateInvoiceItemInvoiceLineItem#updateInvoiceLineItem
unit_amountRemoved
InvoiceItem#createInvoiceItem#updateInvoiceItem

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 tax-related properties with improved tax modeling on Invoices, Invoice Line Items, and Credit Note 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