# Invoicing resources now specify how they were generated

## What’s new

We’re introducing a new `parent` field on [invoices](https://docs.stripe.com/api/invoices.md?api-version=2025-03-31.basil), [invoice items](https://docs.stripe.com/api/invoiceitems.md?api-version=2025-03-31.basil), and [invoice line items](https://docs.stripe.com/api/invoice-line-item.md?api-version=2025-03-31.basil). 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](https://docs.stripe.com/api/invoices.md?api-version=2025-03-31.basil) object, we deprecated the `quote`, `subscription`, `subscription_details`, and `subscription_proration_date` fields.
- On the [Invoice Item](https://docs.stripe.com/api/invoiceitems.md?api-version=2025-03-31.basil) object, we deprecated the `subscription_item` and `subscription` fields.
- On the [Invoice Line Item](https://docs.stripe.com/api/invoice-line-item.md?api-version=2025-03-31.basil) 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](https://docs.stripe.com/api/invoices.md?api-version=2025-03-31.basil) 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](https://docs.stripe.com/api/invoiceitems.md?api-version=2025-03-31.basil) 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](https://docs.stripe.com/api/invoice-line-item.md?api-version=2025-03-31.basil) 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

#### REST API

| Parameters                                                                                    | Change  | Resources or endpoints                                                                                                                                                                                     |
| --------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subscription`, `subscription_item`                                                           | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `quote`, `subscription`, `subscription_details`, `subscription_proration_date`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `invoice_item`, `proration`, `proration_details`, `subscription`, `subscription_item`, `type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `parent`                                                                                      | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

#### Ruby

This change does not affect the Ruby SDK.

#### Python

| Parameters                                                                                    | Change  | Resources or methods                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subscription`, `subscription_item`                                                           | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `quote`, `subscription`, `subscription_details`, `subscription_proration_date`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `invoice_item`, `proration`, `proration_details`, `subscription`, `subscription_item`, `type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `parent`                                                                                      | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

#### PHP

| Parameters                                                                                    | Change  | Resources or methods                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subscription`, `subscription_item`                                                           | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `quote`, `subscription`, `subscription_details`, `subscription_proration_date`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `invoice_item`, `proration`, `proration_details`, `subscription`, `subscription_item`, `type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `parent`                                                                                      | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

#### Java

| Parameters                                                                                 | Change  | Resources or methods                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subscription`, `subscriptionItem`                                                         | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `quote`, `subscription`, `subscriptionDetails`, `subscriptionProrationDate`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `invoiceItem`, `proration`, `prorationDetails`, `subscription`, `subscriptionItem`, `type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `parent`                                                                                   | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

#### Node.js

| Parameters                                                                                    | Change  | Resources or methods                                                                                                                                                                                       |
| --------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `subscription`, `subscription_item`                                                           | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `quote`, `subscription`, `subscription_details`, `subscription_proration_date`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `invoice_item`, `proration`, `proration_details`, `subscription`, `subscription_item`, `type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `parent`                                                                                      | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

#### Go

| Parameters                                                                                 | Change  | Resources or methods                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Subscription`, `SubscriptionItem`                                                         | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `Quote`, `Subscription`, `SubscriptionDetails`, `SubscriptionProrationDate`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `InvoiceItem`, `Proration`, `ProrationDetails`, `Subscription`, `SubscriptionItem`, `Type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `Parent`                                                                                   | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

#### .NET

| Parameters                                                                                 | Change  | Resources or methods                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Subscription`, `SubscriptionItem`                                                         | Removed | [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil)                                                                                                                                       |
| `Quote`, `Subscription`, `SubscriptionDetails`, `SubscriptionProrationDate`                | Removed | [Invoice](/api/invoices/object?api-version=2025-03-31.basil)                                                                                                                                               |
| `InvoiceItem`, `Proration`, `ProrationDetails`, `Subscription`, `SubscriptionItem`, `Type` | Removed | [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil)                                                                                                                                     |
| `Parent`                                                                                   | Added   | [Invoice](/api/invoices/object?api-version=2025-03-31.basil), [InvoiceItem](/api/invoiceitems/object?api-version=2025-03-31.basil), [InvoiceLineItem](/api/invoice-line-item?api-version=2025-03-31.basil) |

## Upgrade

#### REST API

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. 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](https://docs.stripe.com/api/versioning.md) to include `Stripe-Version: 2025-03-31.basil`
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Ruby

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your Ruby SDK to [v15.0.0](https://github.com/stripe/stripe-ruby/releases/tag/v15.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Python

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your Python SDK to [v12.0.0](https://github.com/stripe/stripe-python/releases/tag/v12.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### PHP

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your PHP SDK to [v17.0.0](https://github.com/stripe/stripe-php/releases/tag/v17.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Java

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your Java SDK to [v29.0.0](https://github.com/stripe/stripe-java/releases/tag/v29.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Node.js

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your Node SDK to [v18.0.0](https://github.com/stripe/stripe-node/releases/tag/v18.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### Go

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your Go SDK to [v82.0.0](https://github.com/stripe/stripe-go/releases/tag/v82.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

#### .NET

1. [View your current API version](https://docs.stripe.com/upgrades.md#view-your-api-version-and-the-latest-available-upgrade-in-workbench) in Workbench.
1. Upgrade your .NET SDK to [v48.0.0](https://github.com/stripe/stripe-dotnet/releases/tag/v48.0.0)
1. Upgrade the API version used for [webhook endpoints](https://docs.stripe.com/webhooks/versioning.md).
1. [Test your integration](https://docs.stripe.com/testing.md) against the new version.
1. If you use Connect, [test your Connect integration](https://docs.stripe.com/connect/testing.md).
1. In Workbench, [perform the upgrade](https://docs.stripe.com/upgrades.md#perform-the-upgrade). You can [roll back the version](https://docs.stripe.com/upgrades.md#roll-back-your-api-version) for 72 hours.

Learn more about [Stripe API upgrades](https://docs.stripe.com/upgrades.md).

## Related changes

- [Adds subscription item-level billing periods and removes subscription-level periods](https://docs.stripe.com/changelog/basil/2025-03-31/deprecate-subscription-current-period-start-and-end.md)
- [Adds support for last aggregation formula on meters](https://docs.stripe.com/changelog/basil/2025-03-31/meters-last-agg-formula.md)
- [Adds new webhook event types for Billing Meters](https://docs.stripe.com/changelog/basil/2025-03-31/billing-meter-webhooks.md)
- [Adds new webhook event types for billing credits](https://docs.stripe.com/changelog/basil/2025-03-31/billing-credit-webhooks.md)
