---
title: "Get carbon retirement status"
method: GET
path: "/api/v1/billing/retirement-status"
tags: ["Billing"]
---

# Get carbon retirement status

`GET /api/v1/billing/retirement-status`

## Request

- Base URL: `https://api.crbonfree.com`
- URL: `https://api.crbonfree.com/api/v1/billing/retirement-status`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/crbonfree/apis/crbonfree-api/docs/api/v1/billing/retirement-status/get.ts> (a function with typed inputs; its response is checked against the schema)

Customer-facing snapshot of the current billing period's carbon-retirement lifecycle: a translated status (collecting → calculating → awaiting_payment → retiring → retired / pending_signature / action_required), the period's carbon + electricity totals, the amount charged, and a receipt summary (null until credits are retired). Scoped to the authenticated organization. 404 when the org has no periods yet.

## Response `200`

Current retirement status

- object
  - `success` true, required
  - `data` object, required
    - `retirementStatus` RetirementStatus, required
      - `periodId` string, uuid, required
      - `periodStart` string, date-time, required
      - `periodEnd` string, date-time, required
      - `status` 'collecting' | 'calculating' | 'awaiting_payment' | 'retiring' | 'retired' | 'pending_signature' | 'action_required', required
      - `carbonKg` number, required
      - `electricityKwh` number, required
      - `amountChargedCents` integer, nullable, required
      - `paidAt` string, date-time, nullable, required
      - `closedAt` string, date-time, nullable, required
      - `receipt` object, nullable, required
        - `id` string, uuid, required
        - `co2Kg` number, required
        - `isSigned` boolean, required
        - `verificationUrl` string, required
        - `pdfUrl` string, nullable, required
        - `signedAt` string, date-time, nullable, required

## Other responses

- `400`: Bad request — validation failed or malformed JSON body
- `401`: Unauthorized — token missing, expired, or invalid
- `404`: Resource not found
- `429`: Too many requests — rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/crbonfree/apis/crbonfree-api.md) - [All operations](https://skmtc.dev/crbonfree/apis/crbonfree-api/llms.txt) - [OpenAPI document](https://skmtc.dev/crbonfree/apis/crbonfree-api/revisions/a21ffdb80e67?raw)
