# Execute redemption (Unified - Critical Financial) Process redemption execution using role-based detection. BUSINESS CRITICAL - handles real financial transactions with automatic authentication context detection. Supports user, business, and admin redemption processing. Endpoint: POST /redemption-redeems Version: 2.0.5 Security: projectKey, authJWT ## Request fields (application/json): - `redemptionId` (string, required) The redemption id - `businessId` (string,null, required) The business id associated with the redemption, if applicable ## Response 200 fields (application/json): - `redeem` (object, required) The redemption redeem details that the user redeemed - `redeem.id` (string, required) The id of the redemption user redeem - `redeem.userId` (string, required) The user id that is claiming the redemption - `redeem.redemptionId` (string, required) The redemption that the user is redeeming - `redeem.userCountryCode` (string,null, required) The country code of the user redeeming the redemption - `redeem.status` (string, required) The status of the redemption redeem Enum: "PENDING", "PROCESSING", "COMPLETED", "FAILED" - `redeem.anonymizedIpAddress` (string,null, required) The anonymized IP address of the user redeeming the redemption - `redeem.createdAt` (string,null, required) The date and time when processing of the redemption redeem started - `redeem.updatedAt` (string,null, required) The date and time when processing of the redemption redeem was last updated - `redeem.failureReason` (string,null, required) The reason for failure if the redemption redeem failed - `senderTransaction` (object,null, required) The sender transaction that resulted from the user redeeming the redemption, this is applicable for redemptions that involve sending tokens from the user to a specific address - `senderTransaction.transaction` (object, required) Transaction details - `senderTransaction.transaction.amount` (number, required) Transaction amount - `senderTransaction.transaction.id` (string, required) Transaction id - `senderTransaction.transaction.tokenAddress` (string, required) Transaction token address - `senderTransaction.transaction.contractTokenId` (object,null, required) Transaction token contract id, this is the blockchain contract id of the token - `senderTransaction.transaction.tokenType` (string, required) Transaction token type - `senderTransaction.transaction.senderAddress` (string, required) Sender address - `senderTransaction.transaction.recipientAddress` (object, required) Recipient address - `senderTransaction.transaction.transactionHash` (object, required) Transaction hash - `senderTransaction.transaction.type` (string, required) Transaction type Enum: "MINT", "TRANSFER", "BURN" - `senderTransaction.transaction.triggerProcessType` (string, required) Trigger process type Enum: "PURCHASE", "SPEND", "TRANSFER", "EARN", "CAMPAIGN_USER_CLAIM", "CAMPAIGN_SYSTEM_CLAIM", "CAMPAIGN_BUSINESS_CLAIM", "REDEMPTION_SPEND", "REDEMPTION_RECEIVE", "MIGRATION", "ADMIN_TRIGGERED" - `senderTransaction.transaction.triggerProcessId` (object, required) Trigger process id, this is the id of the entity that triggered the transaction if applicable (e.g. CampaignUserClaim id) - `senderTransaction.transaction.status` (string, required) Transaction status Enum: "created", "processing", "pending_signature", "broadcasted", "succeeded", "failed" - `senderTransaction.transaction.createdAt` (object, required) create date - `senderTransaction.transaction.updatedAt` (object, required) update date - `senderTransaction.transaction.tenantId` (string, required) Tenant ID for multi-tenant isolation - `senderTransaction.transaction.chainId` (number, required) Blockchain chain ID - `senderTransaction.transaction.senderId` (object,null, required) Sender entity ID (polymorphic reference) - `senderTransaction.transaction.senderOwnerType` (string,null, required) Sender entity type (user, business, system etc.) Enum: "user", "business", "tenant", "system", "external" - `senderTransaction.transaction.recipientId` (object,null, required) Recipient entity ID (polymorphic reference) - `senderTransaction.transaction.recipientOwnerType` (string,null, required) Recipient entity type (user, Business, system, etc.) Enum: "user", "business", "tenant", "system", "external" - `senderTransaction.transactionStatus` (string, required) Current status of the transaction Enum: "created", "processing", "pending_signature", "broadcasted", "succeeded", "failed" - `senderTransaction.signingData` (object,null, required) Prepared transaction data ready for signing (if applicable) - `senderTransaction.actionable` (object,null, required) Actionable details for the transaction, if applicable - `senderTransaction.actionable.message` (object) User-friendly message describing the action - `senderTransaction.actionable.actionUrl` (object) URL to perform the action - `senderTransaction.actionable.authToken` (object) Authentication token for the action - `senderTransaction.actionable.actionType` (string, required) Type of action to be performed - `senderTransaction.walletSigningStatus` (string, required) Current status of the wallet signing process