---
title: "List carbon receipts"
method: GET
path: "/api/v1/billing/receipts"
tags: ["Billing"]
---

# List carbon receipts

`GET /api/v1/billing/receipts`

Paginated list of carbon retirement receipts issued by badge_system. Paywalled: free-tier orgs receive 402 PAYMENT_REQUIRED with an `upgradeUrl`.

## Query parameters

- `page` integer
- `limit` integer

## Response `200`

Paginated carbon receipts

- object
  - `success` true, required
  - `data` CarbonReceipt[], required
    - `id` string, uuid, required
    - `billingPeriodId` string, uuid, required
    - `co2Kg` number, required
    - `serialAllocations` object[], required
      - `serialNumber` string, required
      - `totalKgCo2e` number, required
    - `verificationUrl` string, required
    - `previewUrl` string, nullable, required
    - `pdfUrl` string, nullable, required
    - `isSigned` boolean, required
    - `signedAt` string, date-time, nullable, required
    - `createdAt` string, date-time, required
  - `pagination` PaginationMeta, required
    - `page` integer, required
    - `limit` integer, required
    - `total` integer, required
    - `totalPages` integer, required

## Other responses

- `400` — Bad request — validation failed or malformed JSON body
- `401` — Unauthorized — token missing, expired, or invalid
- `402` — Payment required — feature gated behind paid tier; clients should redirect to upgradeUrl
- `429` — Too many requests — rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/crbonfree/apis/crbonfree-api.md) · [All operations](https://skmtc.net/crbonfree/apis/crbonfree-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crbonfree/crbonfree-api/versions/29b71b1664e7/schema)
