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

Invoicing resources now specify how they were generatedBreaking changes

What’s new

We’re introducing a new parent field on invoices, invoice items, and invoice line items. The parent field allows you to view the details of the upstream object that generated the invoice, invoice item, or invoice line item (such as a subscription, a quote, or other). It replaces top level fields that we previously used to reference these objects.

Why is this a breaking change?

  • On the Invoice object, we deprecated the quote, subscription, subscription_details, and subscription_proration_date fields.
  • On the Invoice Item object, we deprecated the subscription_item and subscription fields.
  • On the Invoice Line Item object, we deprecated the type, subscription, subscription_item, invoice_item, proration, and proration_details fields.

Impact

Replace field references on invoicing objects with their new locations in the parent field.

On Invoice objects:

  • Use invoice.parent.subscription_details.subscription (verify invoice.parent.type is subscription_details) instead of invoice.subscription.
  • This also applies to:
    • quote
    • subscription_details
    • subscription_proration_date

On Invoice Item objects:

  • Use invoiceitem.parent.subscription_details.subscription (verify invoiceitem.parent.type is subscription_details) instead of invoice_item.subscription
  • This also applies to the subscription_item field

On Invoice Line Item objects:

  • Use line_item.parent.subscription_item_details.subscription_item (verify line_item.parent.type is subscription_item_details) instead of line_item.subscription_item.
  • This also applies to:
    • subscription
    • invoice_item
    • proration
    • proration_details

Changes

ParametersChangeResources or endpoints
subscription_itemsubscriptionRemoved
InvoiceItem
quotesubscription_detailssubscriptionsubscription_proration_dateRemoved
Invoice
invoice_itemproration_detailsprorationsubscriptionsubscription_itemtypeRemoved
InvoiceLineItem
parentAdded
InvoiceItemInvoiceInvoiceLineItem

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

  • Adds subscription item-level billing periods and removes subscription-level periods
  • Adds support for last aggregation formula on meters
  • Adds new webhook event types for Billing Meters
  • Adds new webhook event types for billing credits
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