---
title: "Redeem Promo Code"
method: POST
path: "/api/referrals/redeem-promo"
tags: ["referrals"]
---

# Redeem Promo Code

`POST /api/referrals/redeem-promo`

Redeem a system-generated referral code.

Validates the code against the referral_codes table (case-insensitive), then grants
RevenueCat premium for the duration configured on the code (week / month / year),
stacking on top of any existing subscription. The grant is recorded in referral_grants.

Restrictions:
- Code must exist in referral_codes and have status = 'active'
- User cannot redeem the same code more than once (no limit on redeeming different codes)

Args:
    request: RedeemSystemCodeRequest with the code

Returns:
    RedeemSystemCodeResponse with success status and message

## Headers

- `x-user-id` string, nullable

## Request body

- RedeemPromoCodeRequest — Request model for redeeming a promo code
  - `code` string, required — The promo code to redeem

## Response `200`

Successful Response

- RedeemPromoCodeResponse — Response model for redeeming a promo code
  - `success` boolean, required — Whether the redemption was successful
  - `message` string, required — Success or error message

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/usecreed/apis/creed-api.md) · [All operations](https://skmtc.net/usecreed/apis/creed-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usecreed/creed-api/revisions/cb25d3fef898/schema)
