⚡ Solution Summary
- Recent API change affects invoice access in newer SDK versions
- Review the Stripe changelog for updates
- Consider reaching out to Stripe support for integration assistance.
### Describe the bug
When using version 13.1.2 if you get a charge using
`charge = stripe.Charge.retrieve(charge_id)`
charge.invoice is raising an error while if you use version 9.9.0 it is returning correctly the invoice
It also happens when using charge list and extending to get the `expand=['data.payment_intent']`the charge.payment_intent.invoice throws an error on version 13.2.1 while on 9.9.0 was working fine
### To Reproduce
```
import stripe
stripe.api_key = 'sk_live_...'
charge_id = 'ch_...'
charge = stripe.Charge.retrieve(charge_id)
print(charge)
print(f'invoice - charge.invoice: {charge.invoice}')
```
- or -
```
charges = stripe.Charge.list(
created = {
'gte': int(datetime(2025, 11, 4, 21).timestamp()),
'lt': int(datetime(2025, 11, 5, 1).timestamp()),
},
expand=['data.payment_intent'])
for charge in charges.auto_paging_iter():
print(charge)
print(f"charge.payment_intent: {charge.payment_intent}")
print(f"charge.payment_intent.invoice: {charge.payment_intent.invoice}")
break
```
### Expected behavior
Expected to have the invoice available on each version
### Code snippets
```Python
charge = stripe.Charge.retrieve(charge_id)
charge.invoice
- or -
charges = stripe.Charge.list(
created = {
'gte': int(datetime(2025, 11, 4, 21).timestamp()),
'lt': int(datetime(2025, 11, 5, 1).timestamp()),
},
expand=['data.payment_intent'])
for charge in charges.auto_paging_iter():
print(charge)
print(f"charge.payment_intent: {charge.payment_intent}")
print(f"charge.payment_intent.invoice: {charge.payment_intent.invoice}")
break
```
### OS
macOS and Ubuntu 20.04
### Language version
Python 3.13.7
### Library version
stripe-version 13.1.2 and 9.9.0
### API version
'2025-10-29.clover' - but the default on each version
### Additional context
_No response_
Discussion & Fixes