为已验证 EOA 的购物车查询配送报价
curl --request POST \
--url https://api.renaiss.xyz/v2/redeem/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-builder-api-key: <api-key>' \
--data '
{
"tokenIds": [
"<string>"
],
"address": {
"countryCode": "<string>",
"addressLine1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"addressLine2": "<string>",
"state": "<string>"
}
}
'const options = {
method: 'POST',
headers: {
'x-builder-api-key': '<api-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
tokenIds: ['<string>'],
address: {
countryCode: '<string>',
addressLine1: '<string>',
city: '<string>',
postalCode: '<string>',
addressLine2: '<string>',
state: '<string>'
}
})
};
fetch('https://api.renaiss.xyz/v2/redeem/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.renaiss.xyz/v2/redeem/quotes"
payload = {
"tokenIds": ["<string>"],
"address": {
"countryCode": "<string>",
"addressLine1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"addressLine2": "<string>",
"state": "<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){
"quoteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"expiresAt": "2023-11-07T05:31:56Z",
"handlingFeeInUsd": "<string>",
"couriers": [
{
"id": "<string>",
"name": "<string>",
"logoUrl": "<string>",
"estimatedDays": "<string>",
"shippingFeeInUsd": "<string>",
"insuranceFeeInUsd": "<string>",
"dutyAndTaxesInUsd": "<string>"
}
]
}{
"error": "A collectible is not ready for redemption",
"code": "WRONG_REQUEST_PARAMS"
}{
"error": "Required authentication credential is missing",
"code": "API_AUTH_MISSING_CREDENTIAL"
}{
"error": "Every collectible must be owned by the authenticated EOA",
"code": "WRONG_REQUEST_PARAMS"
}{
"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
/
quotes
为已验证 EOA 的购物车查询配送报价
curl --request POST \
--url https://api.renaiss.xyz/v2/redeem/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-builder-api-key: <api-key>' \
--data '
{
"tokenIds": [
"<string>"
],
"address": {
"countryCode": "<string>",
"addressLine1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"addressLine2": "<string>",
"state": "<string>"
}
}
'const options = {
method: 'POST',
headers: {
'x-builder-api-key': '<api-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
tokenIds: ['<string>'],
address: {
countryCode: '<string>',
addressLine1: '<string>',
city: '<string>',
postalCode: '<string>',
addressLine2: '<string>',
state: '<string>'
}
})
};
fetch('https://api.renaiss.xyz/v2/redeem/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.renaiss.xyz/v2/redeem/quotes"
payload = {
"tokenIds": ["<string>"],
"address": {
"countryCode": "<string>",
"addressLine1": "<string>",
"city": "<string>",
"postalCode": "<string>",
"addressLine2": "<string>",
"state": "<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){
"quoteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"expiresAt": "2023-11-07T05:31:56Z",
"handlingFeeInUsd": "<string>",
"couriers": [
{
"id": "<string>",
"name": "<string>",
"logoUrl": "<string>",
"estimatedDays": "<string>",
"shippingFeeInUsd": "<string>",
"insuranceFeeInUsd": "<string>",
"dutyAndTaxesInUsd": "<string>"
}
]
}{
"error": "A collectible is not ready for redemption",
"code": "WRONG_REQUEST_PARAMS"
}{
"error": "Required authentication credential is missing",
"code": "API_AUTH_MISSING_CREDENTIAL"
}{
"error": "Every collectible must be owned by the authenticated EOA",
"code": "WRONG_REQUEST_PARAMS"
}{
"error": "Authentication rate limit exceeded",
"code": "API_AUTH_RATE_LIMITED"
}{
"error": "Internal server error",
"code": "FUNCTION_ERROR"
}{
"error": "Internal server error",
"code": "FUNCTION_ERROR"
}- 带上十进制字符串格式的代币 ID。传入
abc等无效 ID 可能返回 HTTP500和FUNCTION_ERROR。 - 展示快递选项、处理费、保险和预估税费。关税和税款在收货时支付,不计入结账总额。
- 保存报价 ID 和到期时间,用于准备结账。
请求
需要开发者密钥和钱包访问令牌
响应
错误码
在下表中查找接口返回的 HTTP 状态码和响应原文。有关各接口通用的处理建议,请参阅错误码含义与处理方式。
| HTTP | 错误码 | 文本字段 | 响应文本与处理方式 |
|---|---|---|---|
400 | REDEEM_COURIER_RATES_FETCH_FAILED | error | Redemption request failed无法获取该购物车和收货地的运费。请核对地址或稍后重试。 |
400 | REDEMPTION_VAULT_RESOLUTION_FAILED | error | Redemption request failed当前无法为这些藏品计算运费,请稍后重试。 |
400 | WRONG_REQUEST_PARAMS | error | A collectible is not ready for redemptionInvalid redemption inputRequest body is too large字段缺失或格式错误、藏品尚不符合兑换条件、卡牌来自多个地区、缺少申报价值,或目的地不受支持或需补填州或省。请修正后重新发送。 |
400 | COLLECTIBLES_NOT_FOUND | error | Redemption request failed请刷新可兑换的藏品并重新获取报价。 |
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_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,无需重试。 |
403 | WRONG_REQUEST_PARAMS | error | Every collectible must be owned by the authenticated EOA购物车包含钱包令牌所属钱包未持有的藏品。仅提交该钱包持有的藏品。 |
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 |
500 | REDEEM_COURIER_RATES_FETCH_FAILED | error | Internal server error请稍后重新查询。 |
503 | FUNCTION_ERROR | error | Internal server error |
授权
请求体
application/json