1. Purchase History
Returning.AI
  • Getting Started
  • Authentication
    • Secure Auth
      GET
    • register
      POST
    • verify email
      POST
    • login
      POST
    • Secure Auth
      GET
  • Users
    • Get Users with Filters
      POST
    • Create New User
      POST
    • Get User Data
      POST
    • Manage User Account
      POST
    • Get User Gamification Stats
      POST
    • Get all mini game logs by user email
      POST
    • Get user's current Mini Games and Streak stats
      POST
    • Upload User Avatar
      POST
  • Roles & Permissions
    • role list of server
      GET
    • create new role
      POST
    • update role
      PUT
    • delete role
      DELETE
    • get role list of user on a server
      GET
    • add role to a user on a server
      POST
    • remove role from a user on a server
      POST
  • Servers
    • create new server
    • get my servers
    • update server
  • Channels
  • Messaging
    • Get Messages
    • Send Message
    • Reply Message
    • React Message
    • Upload Image
  • User Data
    • Get Specific User Field
    • Update Custom User Field
    • Delete Custom User Field
    • Get all user field histories in a community
    • Get user field histories for a specific field
    • Get user field histories for a specific user
    • Get user field histories of specific user field and user
    • Create user field history for specific user
  • Gamification
    • get badges list
    • create new badge
    • update badge
    • delete badge
    • remove badge from user
    • award badge to user
    • Get Tier Info
    • Get User Gamification History
    • Get User Gamification Logs
  • Streaks & Mini Games
    • Get Streak Logs
    • Edit wheel information for each user
    • Edit wheel information for each user
  • Rewards & Redemptions
    • Update redemption transaction status
    • Get all redemption transactions by user email
    • Get All Redemption Statuses
    • Get Redemption Status by ID
    • Get all redemption transactions by Community
    • Create Redemption Status
    • Get redemption transaction status history
  • Chart Analysis
    • Create Analysis
    • Get Analysis
    • Update Analysis
    • Delete Analysis
    • List Analyses
    • Append Drawings
  • Bulk Operations
    • Bulk Import
    • Get All Bulk Update
    • Check Bulk Update Status
    • Check Bulk Update Details
    • Bulk Update
    • Premium Currency Bulk Update
  • Application API
    • Community Users
      • Get community users
      • Get user
  • Integration API
  • Channels
    • Iframe
    • channel list of server
    • get channels list
    • create new channel
    • update channel
    • delete channel
    • Get Channels List
  • Events
    • Outgoing webhooks
      • Encryption
      • User Joins Server
      • User Visits server
      • New Message Posted Anywhere
      • New Message Posted To channel
      • Purchased Store Item
    • Incoming webhooks
      • API Keys & Encryption
      • Send message into channels
      • Update Custom User Fields
      • Update In-game currency
  • Widgets
    • Authenticated Widgets
    • Public widgets
  • Features
  • Community Analytics
    • Get Loyalty Overview
  • Partner API
    • Leaderboards
      • List leaderboards with pagination
      • Get a single leaderboard by ID
      • Create a new leaderboard
      • Update an existing leaderboard
      • Delete a leaderboard
    • Purchase History
      • Update purchase history redemption instructions or voucher details
        PATCH
    • Personalization Service
      • Appearance
        • Theme Color Form Update
        • Server Bot
        • Meta
        • Name & Uri
    • Store
      • Get store configuration
      • Update store configuration
    • Categories
      • List store categories
      • Create store category
      • Update store category
      • Delete store category
      • Get store category by ID
    • Products
      • List store products
      • Create store product
      • Update store product
      • Delete store product
      • Get store product by ID
  • Community
    • Create new community
  • Schemas
    • Sample Schemas
    • Schemas
    • Outgoing webhooks
    • Analysis
    • Pet
    • ValidationError
    • Purchased store item
    • UpdateAnalysisRequest
    • Category
    • NotFoundError
    • New message posted to channel
    • AppendDrawingsRequest
    • Tag
    • InternalServerError
    • User visits server
    • CreateAnalysisResponse
    • NotImplementedError
    • User join server
    • GetAnalysisResponse
    • CreateUserFieldHistoryResponse
    • ErrorResponse
    • UpdateAnalysisResponse
    • CreateUserFieldHistorySuccessResponse
    • AppendDrawingsResponse
    • UserFieldHistoryItem
    • AnalysisMetadata
    • GetUserFieldHistoriesResponse
    • Expiry
    • UserFieldHistoriesValidationError
    • Levels
    • UserFieldHistoriesMetaWithValidation
    • LevelEntry
    • UserFieldHistoriesMetaWithPagination
    • Drawing
    • GetUserFieldHistoriesSuccessResponse
    • HorizontalLineDrawing
    • CreateUserFieldResponse
    • LineDrawing
    • CreateUserFieldSuccessResponse
    • RectangleDrawing
    • DeleteUserFieldResponse
    • ParallelDrawing
    • DeleteUserFieldSuccessResponse
    • FibonacciRetracementDrawing
    • UserFieldCreator
    • Coordinate
    • GetUserFieldResponse
    • DrawingStyle
    • GetUserFieldSuccessResponse
    • AnalysisDetail
    • ValidationErrorItem
    • AnalysisSummary
    • GetUserFieldsMetaResponse
    • CreateAnalysisRequest
    • CreatorInfo
    • ListAnalysesResponse
    • UserFieldResponse
    • GetUserFieldsSuccessResponse
    • UpdateUserFieldResponse
    • UpdateUserFieldPayload
    • UpdateUserFieldSuccessResponse
    • MetaResponse
    • GetUserResponse
    • GetUserSuccessResponse
  1. Purchase History

Update purchase history redemption instructions or voucher details

PATCH
/purchase-histories/{purchaseHistoryID}
Updates purchase-history correction fields for an existing order and returns the updated purchase history.
Use this when a partner integration needs to correct the redemption instructions, voucher code, or voucher expiry date shown for a customer's order after purchase. Redemption instructions remain an order-level product snapshot correction. Voucher code and voucher expiry date are a paired correction and also update the source Voucher record.
Authentication:
Bearer API key in Authorization header
API key must have the purchase-history permission
Community is resolved from the API key token — do not pass communityID
Returns 401 if the key is missing or invalid, and 403 if the key lacks the permission
Side effects:
Publishes the update:purchase-history pub/sub event; the store service processes it and performs the database write
redemptionInstructions, when provided, updates PurchaseHistory.product.redemptionInstructions only; the source Product record is not modified
voucherCode and voucherExpiryDate, when provided together, update the source Voucher record (code, expiryDate) through the normal voucher update service path
The source Voucher update and PurchaseHistory snapshot update are committed in the same store database transaction; if either write fails, neither write is committed
After a successful voucher update, the store service runs the normal voucher update side effects: voucher:update socket event, HOT content-hash stamping, and HOT-to-legacy voucher sync when enabled
The paired voucher fields are also stored on the PurchaseHistory snapshot (voucherCode, voucherExpiryDate) so historical order views stay stable
Returns 502 if the upstream store service is unreachable or the publisher times out
Rate limits:
Standard API rate limits apply
Constraints:
purchaseHistoryID accepts either the Mongo _id or the human-readable purchase/order ID (e.g. ORD202641612055614747)
Send redemptionInstructions by itself, or send voucherCode and voucherExpiryDate together, or send all three fields
If either voucherCode or voucherExpiryDate is provided, both are required
At least one valid update group must be provided
redemptionInstructions: optional, trimmed, non-empty when provided, max 10000 chars
voucherCode: trimmed, non-empty when provided, max 512 chars
voucherExpiryDate: trimmed, valid calendar date in DD/MM/YYYY format
Returns 409 if the new voucher code already exists for another voucher in the same product and community
Returns 404 if the purchase history, product snapshot target, or voucher target does not exist in this community
Validation violations return 400
Example — update voucher details:
{
  "voucherCode": "UPDATED-VOUCHER-2026",
  "voucherExpiryDate": "31/12/2026"
}
Example — update redemption instructions only:
{
  "redemptionInstructions": "Collect at the main counter between 10am and 6pm. Present your order ID and a valid photo ID."
}
Example — update all correction fields:
{
  "redemptionInstructions": "Collect at the main counter between 10am and 6pm. Present your order ID and a valid photo ID.",
  "voucherCode": "UPDATED-VOUCHER-2026",
  "voucherExpiryDate": "31/12/2026"
}
Related endpoints:
(none — this module currently exposes a single endpoint)

Request

Path Params

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200OK
application/json
Updated purchase history with corrected redemption instructions and/or voucher details
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Record Not Found
🟠409Server Error
🔴500Server Error
🔴502Bad Gateway
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request PATCH 'https://api.returning.ai/v1/purchase-histories/ORD202641612055614747' \
--header 'Authorization: Bearer XXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "voucherCode": "UPDATED-VOUCHER-2026",
    "voucherExpiryDate": "31/12/2026"
}'
Response Response Example
200 - Success Example
{
    "meta": {
        "status": "success",
        "statusCode": 200
    },
    "message": "Update purchase history success.",
    "data": {
        "_id": "507f1f77bcf86cd799439012",
        "purchaseID": "ORD202641612055614747",
        "communityID": "507f1f77bcf86cd799439013",
        "userID": "507f1f77bcf86cd799439014",
        "voucherCode": "UPDATED-VOUCHER-2026",
        "voucherExpiryDate": "2026-12-31T00:00:00.000Z",
        "product": {
            "_id": "507f1f77bcf86cd799439015",
            "name": "Gold Voucher",
            "redemptionInstructions": "Collect at the main counter between 10am and 6pm. Present your order ID and a valid photo ID."
        },
        "voucher": {
            "_id": "507f1f77bcf86cd799439016",
            "code": "UPDATED-VOUCHER-2026",
            "status": "redeemed",
            "expiryDate": "2026-12-31T00:00:00.000Z"
        },
        "createdAt": "2026-04-01T00:00:00.000Z",
        "updatedAt": "2026-04-20T00:00:00.000Z"
    }
}
Modified at 2026-04-29 07:56:38
Previous
Delete a leaderboard
Next
Theme Color Form Update
Built with