API reference navigation
GET /v1/account/billing-history

Billing history

Access
Authenticated
billing:read
Cost
Free
Rate limit
30 / minute per account
Quota
None

The account invoice history read live from Stripe (plan, amount, date, payment status, and receipt links), with cursor pagination. Empty for accounts with no Stripe customer.

Query parameters

  • limit integer default: 20
    min 1, max 50
  • startingAfter string
    max 256 chars

Responses

  • 200 A page of invoices
    • invoices array of InvoiceView required

      Invoices for this account, newest first.

      • id string required

        The Stripe invoice id.

      • created string required

        When the invoice was issued, as an ISO 8601 instant.

      • amount number required

        Invoice total in the currency’s SMALLEST unit, as Stripe reports it: 4900 means $49.00, not $4,900.

      • currency string required

        ISO 4217 currency code, lower-case, as Stripe reports it.

      • status string required

        The Stripe invoice status (`paid`, `open`, and so on).

      • planName string required

        The plan this invoice was for.

      • hostedInvoiceUrl string | null required

        Stripe-hosted page for viewing and paying the invoice. Null when Stripe provides none.

      • invoicePdfUrl string | null required

        The invoice PDF. A different document from `receiptUrl`: this is what was billed.

      • receiptUrl string | null required

        The payment receipt. A different document from `invoicePdfUrl`: this is proof of payment. Null until paid.

    • hasMore boolean required

      True when more invoices exist beyond this page.

  • 401 No or invalid credential
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.

  • 403 Missing billing:read
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_error
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at the credit top-up).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailbox
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.