billing
team

Billing Invoices

List recent Stripe invoices for the authenticated user.

Up to 20 most recent invoices, newest first. Returns empty list + has_stripe_customer=False for free-tier users (no Stripe customer record yet) — the FE branches on this for a friendly empty state.

503 on Stripe API outage (reason='unavailable'); the FE wraps that with a 'Try again in a moment' toast rather than treating it as a billing error.

get/api/billing/invoices

Request

  • Base URL: https://www.oxfordledge.com (the document declares no server; this is the origin it was published from)
  • URL: https://www.oxfordledge.com/api/billing/invoices
  • Auth: none declared

Response

Successful Response

countinteger required

Length of invoices (frontend uses for empty-state branching).

has_stripe_customerboolean required

True iff the user has a stripe_customer_id in user_billing. STRIPE-LINKAGE signal ONLY — NOT a tier signal. A comped / admin / founder account is a high tier with no Stripe customer. The FE branches the empty state on account_tier, not this field (CHAOS audit 2026-05-17).

account_tierstring nullable

Canonical users.tier for the authenticated user (e.g. 'free', 'plus', 'power', 'plus_trial'). None when unresolved (no row / NULL / PG-down / transient error) — the honest 'unknown' the FE renders as a neutral state, NEVER as 'Learner (Free)'. display-only, NOT an authz signal: server gates resolve session->users.tier independently of this body.

Changes

No recorded changes to this operation across all 1 revision of this API.