Skip to main content
GET
Get the status of a buyback by its requestId
Poll about once per second until COMPLETED or FAILED. The request remains available for at least 30 days.If PENDING lasts more than ten minutes, stop polling and contact Renaiss with the original requestId. Wait for the outcome before signing another buyback for the same cards.

Request

Builder key required

Response

Failures after submission

If the HTTP 200 body has status: "FAILED", read error.code and error.message. A failed request bought nothing back. Refresh the wallet’s offers before signing a replacement. If it stays PENDING for more than 10 minutes, stop polling and contact Renaiss with the original requestId. Braces in the table mark runtime values.

Error codes

Match the HTTP status and response text to a row below. For guidance on codes shared across endpoints, see Error meanings and recovery.

Authorizations

x-builder-api-key
string
header
required

Your approved builder API key. Keep it on your backend. Gacha and marketplace writes also require wallet action signatures. Redeem also needs a wallet access token, a Bearer token the API issues after the wallet signs a sign-in message.

Query Parameters

requestId
string<uuid>
required

Response

Success

requestId
string<uuid>
required
status
enum<string>
required

PENDING: in progress. COMPLETED: settled on chain. FAILED: nothing was bought back.

Available options:
PENDING,
COMPLETED,
FAILED
buyerWalletAddress
string
required

20-byte, 0x-prefixed wallet or contract address. Use lowercase or a valid checksum.

cardPackId
string<uuid>
required
settlementIds
string[]
required

32 bytes encoded as 0x followed by 64 hexadecimal digits.

txHash
string | null
required

The buyback transaction hash. Null unless COMPLETED.

totalAmountInUsdt
string | null
required

USDT paid, with 18 decimals. Null unless COMPLETED.

Pattern: ^\d+$
itemCount
integer | null
required

How many collectibles were bought back. Null unless COMPLETED.

error
object | null
required

Why the request failed: { code, message }. Null unless the status is FAILED. A FAILED buyback bought nothing back. The codes and sentences are those of POST /v2/gacha/buyback. The code is a plain string, so new codes can appear. What to do for each:

  • PERPETUAL_GACHA_PACK_VERIFY_BUYBACK_FAILED: the signed token is not USDT. Prepare the buyback again from the offers list.
  • GACHA_V3_TOKEN_STATUS_INVALID: a collectible in the request was already sold back or sent to the wallet. Read GET /v2/gacha/buyback/offers and sign again for the collectibles that are still offered.
  • GACHA_V3_BUYBACK_VERIFY_FAILED: the wallet does not own a collectible in the request. Read GET /v2/gacha/buyback/offers and sign only the collectibles it returns.
  • GACHA_V3_BUYBACK_EXPIRED: no tier pays for a collectible now (window closed or a zero-percent hold). Read GET /v2/gacha/buyback/offers again and retry only the collectibles it returns.
  • CONTRACT_REVERT: the buyback was rejected. Read GET /v2/gacha/buyback/offers to see which collectibles are still offered, then sign again.
  • PERPETUAL_GACHA_PACK_NOT_FOUND: the pack could not be found. Refresh the offers and check the pack ID.
  • GACHA_V3_DRAW_RECORD_NOT_FOUND: a settlement ID could not be found for this pack. Refresh the offers and sign only the settlement IDs returned for that pack.
  • GACHA_V3_BUYBACK_PRICE_CHANGED: the signed amount is not the price now: a buyback tier ended after you read the offers. Read GET /v2/gacha/buyback/offers again and sign the new amount.
  • OP_WALLET_BUSY: every payment sender is busy. Retry the request. Send the same signed buyback again after a few seconds.
  • Any other code: read GET /v2/gacha/buyback/offers before you send the request again. A buyback whose transaction may already have been sent (for example a confirmation that timed out, or a rejection at the send) is not marked FAILED: it stays PENDING until it is reconciled.