# Redemption Redeems

## Execute redemption (Unified)

 - [POST /redemptions/redeems](https://docs.pers.ninja/swagger/redemption-redeems/redemptionredeemscontroller_executeredemption.md): Process redemption execution using role-based detection. Supports user, business, and admin redemption processing.

ERC721 Dynamic Context & Template Interpolation:

For ERC721 tokens, you can provide a context object whose values become available as {{context.xxx}} placeholders in the token's name/description and AI prompts.

Context sources (merge order):
1. TokenMetadata.defaultPromptContext → {{defaults.xxx}}
2. Redemption.context (admin-defined) → {{context.xxx}} (always applied)
3. RedemptionRedeemRequest.context (this field) → {{context.xxx}} (only if allowExternalContextOverwrite=true)

Example - Event ticket redemption:
json
{
  "redemptionId": "redemption-uuid",
  "context": {
    "seatNumber": "A12",
    "attendeeName": "John Smith"
  }
}

With TokenMetadata name: "{{context.attendeeName}} - Seat {{context.seatNumber}}"
Result: "John Smith - Seat A12"

## Get redemption redeems with advanced filtering

 - [GET /redemptions/redeems](https://docs.pers.ninja/swagger/redemption-redeems/redemptionredeemscontroller_getredemptionredeems.md): Get redemption redeems with comprehensive filtering options:
        - redemptionId: Filter by specific redemption (optional)
        - userId: Filter by specific user ID (admin only)
        - businessId: Filter by specific business ID (admin only)
        - include: Optionally include related entities (redemption, user, business, transactions)
        
        Access Control:
        - Users: See only their own redemptions
        - Business: See only redemptions associated with their business account
        - Admin: Can filter by any combination of parameters or see all redemptions
        
        Security Notes:
        - Users cannot access userId or businessId parameters (automatically filtered)
        - Business accounts automatically filter to their own businessId regardless of parameter
        - Admin has full access to all filtering options
        
        Use pagination parameters (page & limit) for optimal performance - critical for high-volume data. Legacy support: returns array without params (deprecated - will be removed in future).

## Get my redemption redeems (Convenience)

 - [GET /redemptions/redeems/me](https://docs.pers.ninja/swagger/redemption-redeems/redemptionredeemscontroller_getmyredemptionredeems.md): Convenience endpoint for authenticated users to retrieve their own redemption redeems.
        
        Equivalent to GET /redemption-redeems but with required authentication and 
        automatic filtering to current user context.
        
        Features:
        - Automatic user context (no userId parameter needed)
        - Optional redemption filtering
        - Optional status filtering (PENDING, PROCESSING, COMPLETED, FAILED)
        - Requires user authentication
        - Simplified response structure
        - Optional entity inclusion (redemption, user, business, transactions)
        - Use pagination parameters (page & limit) for optimal performance - recommended for active users
        - Legacy support: returns array without params (deprecated - will be removed in future)
        
        Usage Examples:
        - GET /redemption-redeems/me (all redemptions for authenticated user)
        - GET /redemption-redeems/me?redemptionId=123 (specific user redemption)
        - GET /redemption-redeems/me?status=COMPLETED (only completed redemptions)
        - GET /redemption-redeems/me?page=1&limit=10 (paginated results)
        - GET /redemption-redeems/me?include=redemption,user (with related entities)
        - GET /redemption-redeems/me?include=redemption,transactions (with transactions)

## Get specific redemption redeem

 - [GET /redemptions/redeems/{redeemId}](https://docs.pers.ninja/swagger/redemption-redeems/redemptionredeemscontroller_getredemptionredeembyid.md): Get current status of a specific redemption redeem with automatic access control based on authentication context. Optionally include related entities (redemption, user, business, transactions).

## Export redeems to CSV

 - [GET /redemptions/redeems/export/csv](https://docs.pers.ninja/swagger/redemption-redeems/redemptionredeemscontroller_exportredeemscsv.md): Export all redeems as a CSV file. Supports date filtering and including related entities.

