# Promo Codes

Endpoints for organisation-owned promo codes and their anonymised redemption ledger.

 - [GET /promo_codes](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_codes.md): List the promo codes owned by the caller's organisation, each with its redemption counts broken down by stage. The organisation comes from the credential, never from a query parameter: a Clerk sessio
 - [POST /promo_codes](https://developers.ev.energy/ev.energy-api-v2/promo-codes/post-promo_codes.md): Mint a promo code owned by the caller's organisation. The owner is derived from the credential and is never taken from the request body. `organisation` may be supplied to state the intended owner expl
 - [GET /promo_codes/{promo_code_id}](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_codes-promo_code_id.md): Retrieve one of the caller organisation's promo codes.
 - [PATCH /promo_codes/{promo_code_id}](https://developers.ev.energy/ev.energy-api-v2/promo-codes/patch-promo_codes-promo_code_id.md): Update a promo code's `label`, `campaign_ref` or `status`. The `code` string is immutable once issued — it is printed on physical media and embedded in live links — and an attempt to change it is reje
 - [GET /promo_code_redemptions](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_code_redemptions.md): The per-redemption ledger for the caller organisation's codes, with the stage each redemption has reached. Rows are anonymised: no email, name, phone, address or user id, and `id` is the redemption's
 - [GET /promo_code_redemptions/{redemption_id}](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_code_redemptions-redemption_id.md): Retrieve a single anonymised redemption row for one of the caller organisation's codes.
