zulip/corporate
Aman Agrawal cfe589e725 stripe: Error on missing invoice for invoice-billed free trial.
An invoice-billed free trial always has an invoice created when it
starts (in process_initial_upgrade), expiring at the end of the
trial. When the trial ended, make_end_of_cycle_updates_if_needed
treated a missing invoice the same as an unpaid one and downgraded
the customer. But a missing invoice means it was never sent on our
end, so downgrading penalizes a customer who never had a chance to
pay. Raise a BillingError instead, so the failure is surfaced for
follow-up rather than silently downgrading them.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 10:06:40 +05:30
..
lib stripe: Error on missing invoice for invoice-billed free trial. 2026-06-02 10:06:40 +05:30
management corporate: Check for valid stripe_id when linking to Customer. 2026-02-25 16:30:37 -08:00
migrations billing: Add UniqueConstraint for plan offers and never-started plans. 2026-05-27 23:13:24 +08:00
models billing: Add UniqueConstraint for plan offers and never-started plans. 2026-05-27 23:13:24 +08:00
tests stripe: Error on missing invoice for invoice-billed free trial. 2026-06-02 10:06:40 +05:30
views corporate: Return 400 when Stripe-Signature header is missing. 2026-05-21 16:02:38 +02:00
__init__.py Create non-localserver "corporate" app with jobs pages. 2013-11-06 12:07:31 -05:00
urls.py portico: Add National University of Córdoba case study. 2025-12-16 17:05:30 -08:00