Skip to content

feat(api): lifecycle actions (void/uncollectible/expire) + list paging + remaining Stripe 2025 params - #74

Merged
midagedev merged 1 commit into
mainfrom
feat/stripe-surface-wave3-main
Aug 25, 2026
Merged

feat(api): lifecycle actions (void/uncollectible/expire) + list paging + remaining Stripe 2025 params#74
midagedev merged 1 commit into
mainfrom
feat/stripe-surface-wave3-main

Conversation

@midagedev

Copy link
Copy Markdown
Owner

Wave 3 (final) of the Stripe 2025+ API surface program (follows #71, #72, #73).

What

  • Lifecycle actions: POST /v1/invoices/{id}/void, /mark_uncollectible, POST /v1/checkout/sessions/{id}/expire — status transitions + webhooks, following the existing finalize/pay handler pattern. The known-route gate now skips implemented paths that lack a compatibility claim.
  • List paging (highest risk item): every top-level list honors starting_after and reports has_more, so SDK auto-paging iterates past page 1 instead of silently truncating at limit. Sort orders were already deterministic (created_at DESC, id DESC family); nested embedded lists unchanged.
  • Filters/params: subscriptions current_period_end[gte]/[lt]; create proration_behavior + payment_settings[...]; update cancel_at (separate axis from cancel_at_period_end); customer invoice_settings[default_payment_method] (attach sets default only when unset); invoice customer_balance payment settings echoed.

Tests

8 new tests covering the 9 contract scenarios. go build/vet/test green.

…ing with starting_after/has_more, remaining create/update params

- POST /v1/invoices/{id}/void and /mark_uncollectible: lifecycle transitions with invoice.voided / invoice.marked_uncollectible webhooks; known-route gate skips implemented-without-claim paths
- POST /v1/checkout/sessions/{id}/expire: open -> expired + checkout.session.expired webhook
- all top-level lists honor starting_after and report has_more (SDK auto-paging no longer silently stops at page 1)
- GET /v1/subscriptions supports current_period_end[gte]/[lt] filters
- subscription create accepts proration_behavior and payment_settings[...]; update accepts cancel_at (own axis vs cancel_at_period_end)
- customer update accepts invoice_settings[default_payment_method]; payment method attach sets default only when unset
- invoice payment_settings customer_balance tree echoed in responses
@midagedev
midagedev merged commit a9f4462 into main Aug 25, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant