---
title: "Redeem staking points for plan time or credits"
method: POST
path: "/v1/staking/redeem"
tags: ["Billing"]
---

# Redeem staking points for plan time or credits

`POST /v1/staking/redeem`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/staking/redeem`
- Auth: HTTP bearer

Spends points from the wallet on the account.

`quantity` is **months** for `pro_months` and **points** for
`credits`; the response always states the cost actually charged.

Pro months extend an existing period rather than replacing it, so
redeeming twice does not discard the time already granted. They are
refused when the organisation has a Stripe subscription, or is on a
tier above Pro: a comped tier would overwrite the plan being paid
for and would never expire. Credits apply on top of a subscription
and are the right choice there.

Redemption serialises on the wallet's ledger, so two concurrent
requests cannot spend the same points.

## Request body

- object
  - `reward_type` 'pro_months' | 'credits', required
  - `quantity` integer, required: Months for pro_months; points for credits

## Response `200`

Redeemed

- object
  - `redemption_id` string, uuid
  - `points_spent` integer
  - `remaining_available` integer
  - `reward_type` string
  - `reward_detail` object

## Other responses

- `400`: Not enough points, or no wallet linked
- `403`: A real verified email is required before redeeming
- `409`: Pro months refused because the organisation's billing is owned by Stripe, or its tier is above Pro. Redeem credits instead.
- `503`: The staking service could not report points; nothing was charged

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/5fa0918f3b41?raw)
