supanovasupanovaDOCS
Open Launchpad
Launchpad documentation
Developers

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

bash
curl --fail-with-body --silent --show-error \
  -H "Authorization: Bearer $SUPANOVA_SESSION_TOKEN" \
  'https://launch-api.supanova.app/api/v1/me/referral-rewards'
FieldMeaning
accruedCcRewards accrued at the reported ledger offset.
claimableCcRewards available to claim now.
pendingCcUnpaid rewards that cannot currently be claimed, including amounts below the minimum or awaiting indexing.
paidCcLifetime rewards already paid.
minimumClaimCcThe claim threshold; currently 1 CC. Read the response rather than hardcoding it.
claimAvailableWhether the account can claim now.
unavailableReasonWhy claiming is unavailable, or null.
asOfOffset, asOfThe 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:

json
{
  "claimId": "<a-new-UUID-for-this-claim>"
}
bash
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.json

The 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

ResponseAction
409 REFERRAL_CLAIM_IN_PROGRESSWait, refresh rewards, and retry the same claim ID.
409 REFERRAL_CLAIM_BUSYAnother payout is settling or its commit cannot yet be confirmed. Retry with a delay.
422 REFERRAL_CLAIM_BELOW_MINIMUMWait until the reported claimable amount reaches the minimum.
403 REFERRAL_ACCOUNT_SUSPENDEDRewards are on hold for this account. Stop automatic claim retries.
503 REFERRAL_CLAIMS_UNAVAILABLERefresh reward availability before offering another attempt.
428 PRODUCT_LEGAL_ACCEPTANCE_REQUIREDComplete 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.

supanova Launchpad docsManage API keys