cURL
# Export KINTRA_API for your environment first; the base URL is on the introduction page.
KEY="YOUR_TENANT_KEY_ID"
SECRET="YOUR_SIGNING_SECRET"
# The signature covers the path and query exactly as sent, so both are split
# off the base URL and reused for the request line below.
API_PATH="/${KINTRA_API#*://*/}"
API_HOST="${KINTRA_API%"$API_PATH"}"
METHOD="GET"
PATH_AND_QUERY="$API_PATH/gateway/redemptions/YOUR_REDEMPTION_ID"
# No body on this method, so the signature covers an empty body string.
BODY=''
TIMESTAMP="$(date +%s)"
SIGNATURE="$(printf '%s' "$TIMESTAMP$METHOD$PATH_AND_QUERY$BODY" \
| openssl dgst -sha256 -hmac "$SECRET" | awk '{print $NF}')"
curl -sS -w '\n%{http_code}' -X "$METHOD" "$API_HOST$PATH_AND_QUERY" \
-H "X-Tenant-Key: $KEY" \
-H "X-Tenant-Timestamp: $TIMESTAMP" \
-H "X-Tenant-Signature: $SIGNATURE"const options = {
method: 'GET',
headers: {
'X-Tenant-Signature': '<x-tenant-signature>',
'X-Tenant-Timestamp': '<x-tenant-timestamp>',
'x-tenant-key': '<api-key>'
}
};
fetch('https://api.kintra.io/api/v1/gateway/redemptions/{redemption_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kintra.io/api/v1/gateway/redemptions/{redemption_id}"
headers = {
"X-Tenant-Signature": "<x-tenant-signature>",
"X-Tenant-Timestamp": "<x-tenant-timestamp>",
"x-tenant-key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"id": "<string>",
"reward_id": "<string>",
"tenant_id": "<string>",
"user_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"reward": {
"id": "<string>",
"title": "<string>",
"description": "<string>",
"is_active": true,
"onchain_asset": {
"id": "<string>",
"asset_address": "<string>",
"chain_id": 123,
"decimals": 123,
"name": "<string>",
"symbol": "<string>",
"type": "<string>"
},
"xp_cost": "<string>"
},
"tenant": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"updated_at": "2023-11-07T05:31:56Z",
"user": {
"email": "<string>",
"id": "<string>",
"username": "<string>"
},
"xp_spent": "<string>"
},
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}{
"success": true,
"data": null,
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}{
"success": true,
"data": null,
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}{
"success": true,
"data": null,
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}Redemptions
Get a redemption
Returns one redemption by id with its status, xp_spent, user_id and tenant_id, plus the linked reward. Call it to confirm what a redemption you started with the redeem route resulted in, or while fulfilling one. Returns 404 when no redemption with that id belongs to your tenant.
GET
/
gateway
/
redemptions
/
{redemption_id}
cURL
# Export KINTRA_API for your environment first; the base URL is on the introduction page.
KEY="YOUR_TENANT_KEY_ID"
SECRET="YOUR_SIGNING_SECRET"
# The signature covers the path and query exactly as sent, so both are split
# off the base URL and reused for the request line below.
API_PATH="/${KINTRA_API#*://*/}"
API_HOST="${KINTRA_API%"$API_PATH"}"
METHOD="GET"
PATH_AND_QUERY="$API_PATH/gateway/redemptions/YOUR_REDEMPTION_ID"
# No body on this method, so the signature covers an empty body string.
BODY=''
TIMESTAMP="$(date +%s)"
SIGNATURE="$(printf '%s' "$TIMESTAMP$METHOD$PATH_AND_QUERY$BODY" \
| openssl dgst -sha256 -hmac "$SECRET" | awk '{print $NF}')"
curl -sS -w '\n%{http_code}' -X "$METHOD" "$API_HOST$PATH_AND_QUERY" \
-H "X-Tenant-Key: $KEY" \
-H "X-Tenant-Timestamp: $TIMESTAMP" \
-H "X-Tenant-Signature: $SIGNATURE"const options = {
method: 'GET',
headers: {
'X-Tenant-Signature': '<x-tenant-signature>',
'X-Tenant-Timestamp': '<x-tenant-timestamp>',
'x-tenant-key': '<api-key>'
}
};
fetch('https://api.kintra.io/api/v1/gateway/redemptions/{redemption_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.kintra.io/api/v1/gateway/redemptions/{redemption_id}"
headers = {
"X-Tenant-Signature": "<x-tenant-signature>",
"X-Tenant-Timestamp": "<x-tenant-timestamp>",
"x-tenant-key": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"id": "<string>",
"reward_id": "<string>",
"tenant_id": "<string>",
"user_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"reward": {
"id": "<string>",
"title": "<string>",
"description": "<string>",
"is_active": true,
"onchain_asset": {
"id": "<string>",
"asset_address": "<string>",
"chain_id": 123,
"decimals": 123,
"name": "<string>",
"symbol": "<string>",
"type": "<string>"
},
"xp_cost": "<string>"
},
"tenant": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"updated_at": "2023-11-07T05:31:56Z",
"user": {
"email": "<string>",
"id": "<string>",
"username": "<string>"
},
"xp_spent": "<string>"
},
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}{
"success": true,
"data": null,
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}{
"success": true,
"data": null,
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}{
"success": true,
"data": null,
"errors": [
{
"message": "<string>",
"path": "<string>"
}
],
"message": "<string>"
}Authorizations
Tenant API key
Headers
Hex HMAC-SHA256 of the timestamp, the uppercase method, the url as sent and the request body, keyed by the signing secret.
Unix seconds. Checked before the signature.
Path Parameters
⌘I

