---
title: "Download Invoices"
method: GET
path: "/api/billing/invoices/download"
tags: ["Billing"]
---

# Download Invoices

`GET /api/billing/invoices/download`

One zip with the PDFs of exactly the invoices the panel lists for ``month``.

Stripe's ``invoice_pdf`` links are signed and public, so the api just pulls
them (a few at a time) and zips them in memory — a month of invoices is a
handful of ~50 KB files, nothing to stream. One dead link does not sink the
batch: that invoice is skipped and logged; only an all-dead batch is an error.

## Query parameters

- `month` string, nullable

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-02** `aec0744a2cd1` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/explee/apis/explee-api/changes/api/billing/invoices/download/get.md)

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/b33fc5cb0069/schema)
