---
title: "Redeem My Code"
method: POST
path: "/me/codes/redeem"
tags: ["me"]
---

# Redeem My Code

`POST /me/codes/redeem`

Redeem a user-entered code across membership, promo and referral namespaces.

Promo codes assign their benefit (e.g. YCAXEL's flight discount).
Referral codes attach the referrer and grant the instant referee credit;
only users who have not yet made a paid booking can attach one.

## Request body

- RedeemCodeRequest — Request to redeem a user-entered code (membership, promo or referral).
  - `code` string, required

## Response `200`

Successful Response

- CodeRedeemResponse — Result of redeeming a user-entered code, tagged by namespace.
  - `kind` 'promo' | 'referral' | 'membership', required
  - `membership` MembershipCodeRedemptionResponse
    - `redemption_id` string, uuid, required
    - `status` 'pending' | 'active' | 'ending' | 'ended', required
    - `current_period_end` string, date-time, nullable, required
    - `expires_at` string, date-time, nullable, required
    - `message` string, required
  - `promo` UserPromoCodeResponse — Promo code assigned to a user.
    - `id` string, uuid, required
    - `code` string, required
    - `benefit_config` PromoCodeBenefitConfig, required — Machine-readable promo benefit configuration.
      - `category` string, required — Benefit type, e.g. percentage_discount, fixed_amount, flat_override
      - `amount` union, required — Discount amount for the category
        - integer
        - number
      - `metadata` object — Additional rule metadata for future promo engines
    - `assigned_at` string, date-time, required
  - `referral` AttachReferralResponse — Result of attaching a referral code to a user (referee side).
    - `referrer_id` string, uuid, nullable, required
    - `referrer_name` string, nullable
    - `code` string, required
    - `credit_granted_cents` integer, required
    - `already_attached` boolean

## Other responses

- `422` — Validation Error

## Changes

> 21 revisions in range; 1 not diffed.

- **2026-09-15** `fa4c4b94f345` — 1 warning, 1 info
  - added the new `membership` enum value to the `kind` response property for the response status `200`
  - added the optional property `membership` to the response with the `200` status

[Change history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/me/codes/redeem/post.md)

---

[API](https://skmtc.dev/helloaxel/apis/client-api-gateway.md) · [All operations](https://skmtc.dev/helloaxel/apis/client-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/helloaxel/apis/client-api-gateway/revisions/82939784d881?raw)
