Referral rewards API
Read accrued referral rewards and claim available CC into the signed-in account's Launchpad trading balance.
The referral rewards API returns the signed-in account's accrued, claimable, pending, and paid rewards. A claim credits available rewards to that account's Launchpad trading balance.
Rewards are paid through an account claim. nextPayoutAt on the trading-referrals summary is null because no automatic payout is scheduled.
Both endpoints require a customer bearer token. Read and trade API keys do not authorize them. Use the signed-in product session; a trade-key signature is not required for this flow.
Read the current balance
curl --fail-with-body --silent --show-error \
-H "Authorization: Bearer $SUPANOVA_SESSION_TOKEN" \
'https://launch-api.supanova.app/api/v1/me/referral-rewards'| Field | Meaning |
|---|---|
accruedCc | Rewards accrued at the reported ledger offset. |
claimableCc | Rewards available to claim now. |
pendingCc | Unpaid rewards that cannot currently be claimed, including amounts below the minimum or awaiting indexing. |
paidCc | Lifetime rewards already paid. |
minimumClaimCc | The claim threshold; currently 1 CC. Read the response rather than hardcoding it. |
claimAvailable | Whether the account can claim now. |
unavailableReason | Why claiming is unavailable, or null. |
asOfOffset, asOf | The ledger offset and timestamp associated with the view. |
Amounts are decimal strings or null when unknown. Preserve null in the interface rather than displaying zero. Only enable claiming when claimAvailable is true; a positive accrued amount alone does not establish availability.
Claim available rewards
Create a UUID for one logical claim and persist it before sending the request. Save this body as claim.json, replacing the placeholder with that UUID:
{
"claimId": "<a-new-UUID-for-this-claim>"
}curl --fail-with-body --silent --show-error \
'https://launch-api.supanova.app/api/v1/me/referral-rewards/claims' \
-H "Authorization: Bearer $SUPANOVA_SESSION_TOKEN" \
-H 'Content-Type: application/json' \
--data-binary @claim.jsonThe account must have accepted the current product terms. This endpoint identifies a repeated claim through claimId in the body; it does not use the order API's Idempotency-Key header.
A successful response has status: "paid", creditedCc, receiptIds, epoch, updateId, and asOfOffset. Use creditedCc as the amount paid by this claim, then refresh rewards and the trading balance. Do not assume the pre-request claimable amount is the final credited amount.
Retry the same claim
A completed claim result is retained for replay for 24 hours. Within that period, a repeat with the same claimId normally returns the original result. Reuse the ID after a timeout or an in-progress response; generating a new ID does not help reconcile the first request.
If a payout was credited but its cached response could not be saved, the same ID can remain in progress for up to 120 seconds. A later retry recalculates only rewards still owed. Refresh the account's rewards and balance instead of interpreting a timeout as a failed payment.
The route permits 10 claim requests per minute in addition to other applicable session and IP limits. Respect HTTP 429 and Retry-After, and avoid polling the claim endpoint to read a balance.
Handle unavailable claims
| Response | Action |
|---|---|
409 REFERRAL_CLAIM_IN_PROGRESS | Wait, refresh rewards, and retry the same claim ID. |
409 REFERRAL_CLAIM_BUSY | Another payout is settling or its commit cannot yet be confirmed. Retry with a delay. |
422 REFERRAL_CLAIM_BELOW_MINIMUM | Wait until the reported claimable amount reaches the minimum. |
403 REFERRAL_ACCOUNT_SUSPENDED | Rewards are on hold for this account. Stop automatic claim retries. |
503 REFERRAL_CLAIMS_UNAVAILABLE | Refresh reward availability before offering another attempt. |
428 PRODUCT_LEGAL_ACCEPTANCE_REQUIRED | Complete the current terms acceptance in the signed-in app. |
unavailableReason can identify indexing, suspension, or another temporary or account-specific restriction. Do not infer an automatic payout schedule from an unavailable claim. The reward view and claim response are the authoritative states for this integration.