提交一次已准备好的 EOA 兑换
curl --request POST \
--url https://api.renaiss.xyz/v2/redeem/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-builder-api-key: <api-key>' \
--data '
{
"preparationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signature": "<string>"
}
'const options = {
method: 'POST',
headers: {
'x-builder-api-key': '<api-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({preparationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a', signature: '<string>'})
};
fetch('https://api.renaiss.xyz/v2/redeem/checkout', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.renaiss.xyz/v2/redeem/checkout"
payload = {
"preparationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signature": "<string>"
}
headers = {
"x-builder-api-key": "<api-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"requestId": "<string>",
"status": "prepared",
"transactionHash": "<string>"
}{
"error": "Invalid redemption input",
"code": "WRONG_REQUEST_PARAMS"
}{
"error": "Required authentication credential is missing",
"code": "API_AUTH_MISSING_CREDENTIAL"
}{
"error": "Invalid wallet action proof",
"code": "API_AUTH_INVALID_ACTION"
}{
"error": "Not found or expired",
"code": "REDEMPTION_ORDER_NOT_FOUND"
}{
"error": "Redemption request failed",
"code": "REDEMPTION_ORDER_CHECKOUT_STILL_ACTIVE"
}{
"error": "Authentication rate limit exceeded",
"code": "API_AUTH_RATE_LIMITED"
}{
"error": "Internal server error",
"code": "FUNCTION_ERROR"
}{
"error": "Internal server error",
"code": "FUNCTION_ERROR"
}实物兑换与配送
提交兑换结账
提交钱包已签名的结账请求,发起实物兑换。发货进度请查看生成的兑换订单。
POST
/
v2
/
redeem
/
checkout
提交一次已准备好的 EOA 兑换
curl --request POST \
--url https://api.renaiss.xyz/v2/redeem/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-builder-api-key: <api-key>' \
--data '
{
"preparationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signature": "<string>"
}
'const options = {
method: 'POST',
headers: {
'x-builder-api-key': '<api-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({preparationId: '3c90c3cc-0d44-4b50-8888-8dd25736052a', signature: '<string>'})
};
fetch('https://api.renaiss.xyz/v2/redeem/checkout', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.renaiss.xyz/v2/redeem/checkout"
payload = {
"preparationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"signature": "<string>"
}
headers = {
"x-builder-api-key": "<api-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"requestId": "<string>",
"status": "prepared",
"transactionHash": "<string>"
}{
"error": "Invalid redemption input",
"code": "WRONG_REQUEST_PARAMS"
}{
"error": "Required authentication credential is missing",
"code": "API_AUTH_MISSING_CREDENTIAL"
}{
"error": "Invalid wallet action proof",
"code": "API_AUTH_INVALID_ACTION"
}{
"error": "Not found or expired",
"code": "REDEMPTION_ORDER_NOT_FOUND"
}{
"error": "Redemption request failed",
"code": "REDEMPTION_ORDER_CHECKOUT_STILL_ACTIVE"
}{
"error": "Authentication rate limit exceeded",
"code": "API_AUTH_RATE_LIMITED"
}{
"error": "Internal server error",
"code": "FUNCTION_ERROR"
}{
"error": "Internal server error",
"code": "FUNCTION_ERROR"
}请求
需要开发者密钥、钱包访问令牌和钱包签名
响应
200 可能返回 status: "failed",且没有原因码。若状态为 failed 或 submitting,再次付款前请先使用原 preparationId 查询结果。错误码
在下表中查找接口返回的 HTTP 状态码和响应原文。有关各接口通用的处理建议,请参阅错误码含义与处理方式。
| HTTP | 错误码 | 文本字段 | 响应文本与处理方式 |
|---|---|---|---|
400 | CONTRACT_REVERT | error | Redemption request failed链上拒绝兑换。再次操作前先查 GET /v2/redeem/checkout/{preparationId}。 |
400 | FUNCTION_ERROR | error | Redemption request failed无法读取藏品状态。重试前先查 GET /v2/redeem/checkout/{preparationId}。 |
400 | INSUFFICIENT_USDT_AMOUNT | error | Redemption request failed请核对支付手续费所需的余额及授予 Permit2 的 USDT 额度。再次付款前先查询原准备记录。 |
400 | REDEMPTION_ORDER_VALIDATION_FAILED | error | Redemption request failed原兑换准备已失效。请重新获取报价并准备。 |
400 | WRONG_REQUEST_PARAMS | error | Invalid redemption inputRequest body is too largeRedemption request failedPreparation expired字段缺失、格式错误,或选中的藏品已无法兑换。请重新报价并准备结账。 |
400 | INSUFFICIENT_ALLOWANCE | error | Redemption request failed如果无法将付款失败与原结账记录匹配,可能返回此 HTTP 错误。匹配成功时返回 HTTP 200 和 status: "failed"。请核对支付手续费所需的余额及授予 Permit2 的 USDT 额度。再次付款前先查询原准备记录。 |
401 | API_AUTH_INVALID_CREDENTIAL | error | Invalid authentication credential密钥或钱包令牌格式错误、未知、已过期或被撤销。核对密钥,刷新钱包令牌或让钱包重新登录。 |
401 | API_AUTH_MISSING_CREDENTIAL | error | Required authentication credential is missing缺少开发者密钥或钱包访问令牌。请在 x-builder-api-key 中发送密钥,并同时发送 Bearer 令牌。 |
403 | API_AUTH_CREDENTIAL_NOT_ALLOWED | error | Credential is not allowed by this policy路由不接受所提供的某些凭据。仅发送开发者密钥和钱包访问令牌。 |
403 | API_AUTH_INSUFFICIENT_SCOPE | error | Required authentication scope is missing令牌缺少所需权限,读取需 redeem:read,修改需 redeem:write。请钱包重新登录并申请相应权限。 |
403 | API_AUTH_INTEGRATION_MISMATCH | error | Authentication integrations do not match令牌和密钥属于不同开发者。请使用签发令牌的开发者对应的密钥。 |
403 | API_AUTH_INVALID_ACTION | error | Invalid wallet action proof签名与钱包或准备数据不匹配,或准备记录已过期。请重新准备并签署新数据。 |
403 | API_AUTH_SUBJECT_MISMATCH | error | Authentication subjects do not match令牌所属链与 API 不符。请针对正确的链重新验证钱包。 |
403 | GACHA_V3_BUILDER_NOT_ACCEPTED_ON_PUBLIC_API | error | This builder checks out on its own surface, not on the public API此密钥无法用于当前 API。请联系 Renaiss,无需重试。 |
404 | REDEMPTION_ORDER_NOT_FOUND | error | Not found or expiredNot found当前钱包及开发者名下没有对应报价或准备记录,或记录已过期。请重新获取报价。 |
409 | REDEMPTION_ORDER_CHECKOUT_STILL_ACTIVE | error | Redemption request failed藏品已有进行中的结账,不要重复发送。使用 GET /v2/redeem/checkout/{preparationId} 查询进度。 |
429 | API_AUTH_RATE_LIMITED | error | Authentication rate limit exceeded已达到密钥的请求频率上限。稍候再以较低频率重试。 |
500 | API_AUTH_INVALID_CONFIGURATION | error | Internal server error若钱包认证持续失败,请将 x-request-id 提供给 Renaiss。 |
500 | API_AUTH_ERROR | error | Internal server error无法读取链上数据以验证签名。请重新发送请求。 |
500 | FUNCTION_ERROR | error | Internal server error |
503 | FUNCTION_ERROR | error | Internal server error |
授权
请求体
application/json