1. Purchase History
Returning.AI
  • Getting Started
  • Bulk Operations
    • List bulk update jobs
      GET
    • Get bulk update job status
      GET
    • Get bulk update job details
      GET
    • Bulk update users from CSV
      POST
    • Bulk update premium currency from CSV
      POST
  • Chart Analysis
    • Create Analysis
      POST
    • Get Analysis
      GET
    • Update Analysis
      PATCH
    • Delete Analysis
      DELETE
    • List Analyses
      GET
    • Append Drawings
      POST
  • Rewards & Redemptions
    • Update redemption order status
      PUT
    • List redemption orders by user email
      POST
    • List redemption statuses
      POST
    • Get redemption status by ID
      POST
    • List redemption orders by community
      POST
    • Create redemption order status
      POST
    • Get redemption order status history
      POST
  • Gamification
    • Leaderboards
      • List leaderboards with pagination
      • Create a new leaderboard
      • Update an existing leaderboard
      • Get a single leaderboard by ID
      • Delete a leaderboard
    • Streaks & Mini Games
      • List user streak logs
      • Update user spin-wheel information
    • Referral
      • Get referral programs
      • Get user's referral summary
    • Rolling Data
      • Get Daily Calculation Data
      • Get Rolling Calculation Data
    • Get tiers and XP settings
    • Get daily user gamification history
    • List user gamification logs
    • Get user activity stats
  • Messaging
    • Message Actions
      • Direct Channel
        • private DM channel
          • Reply Message
          • Send Message
          • React Message
        • public channel
          • Reply Message
          • Send Message
          • React Message
      • Forum Channel
        • Send Message
        • Reply Message
        • React Message
      • Text Channel
        • Reply Message
        • Send Message
        • React Message
      • Iframe Channel
        • Reply Message
        • Send Message
        • React Message
    • Get Messages
    • Send Message
    • Reply Message
    • React Message
    • Upload message images
  • Users
    • Get user
    • Get Users with Filters
    • Create New User
    • Get User Data
    • Manage User Account
    • List mini-game logs by user email
    • Get user's current Mini Games and Streak stats
    • Get User Milestones
    • Update User Data, Identifier, And Roles
  • Authentication
    • Register user with password
    • Verify user email
    • Log in user with password
    • Secure Auth
  • Channels
    • Iframe
    • List integration channels
  • 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
  • Store
    • Purchase History
      • Update purchase history redemption instructions or voucher details
        PATCH
    • Categories
      • List store categories
      • Create store category
      • Get store category by ID
      • Update store category
      • Delete store category
    • Products
      • List products
      • Create products in bulk
      • Create product with vouchers
      • Update products in bulk
      • Read product
      • Update product and append vouchers
      • Delete product
    • Redemption-transaction
      • Get Redemption Transaction Detail
    • Get store configuration
      GET
    • Update store configuration
      PUT
  • Community Analytics
    • Get Loyalty Overview
    • Get Phone Verification Contacts
  • Community
    • Appearance
      • Update community theme colors
      • Update community bot profile
      • Update community URL metadata
      • Update community name and URL
    • Community Users
      • Get community users
      • Get user
    • Create community
  • API Keys
    • Community API Keys
      • Create API key
      • Read API keys
      • Delete API key
      • Update API key
    • User API Keys
      • List user API keys
      • Create user API key
      • Update user API key
      • Delete user API key
      • Get current API key information
  • User Fields
    • User Field History
      • List Community User-Field History
      • List One Field Across Users
      • List One User Across Fields
      • List One User's One Field
      • Update A User Field Value
      • Deprecated Field-First History Write
      • Deprecated Field-First History Read
    • Create A User Field Definition
    • Get Specific User Field
    • Update Custom User Field
    • Delete Custom User Field
    • Get all user fields for a community
    • Delete user field
    • Update user field
    • Get specific user field
  • Legacy
    • Servers
      • Create server
      • List servers
      • Update server metadata
    • Bulk Operations
      • Bulk import users from CSV
    • Badges
      • List badges
      • Create badge
      • Update badge
      • Delete badge
      • Remove badge from user
      • Award badge to user
    • Messaging
      • Reply to message
      • Send message
      • React to message
    • Roles & Permissions
      • List server roles
      • Create role
      • Update role
      • Delete role
      • List user roles
      • Add role to user
      • Remove role from user
    • Users
      • Upload user avatar
    • Channels
      • Create channel
      • Update channel
      • Delete channel
    • API Keys
      • List integration API keys
      • Create integration API key
      • Delete integration API key
      • Update integration API key
  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)

What it is for: Update purchase history redemption instructions or voucher details. Use this for fulfillment, voucher, redemption instruction, and purchase-state updates.
How to use it: Send a PATCH request to /purchase-histories/{purchaseHistoryID} with the request body, query parameters, or multipart fields shown below. Partner API key required when this surface is enabled for the community. Confirm gateway access before using in production.
Successful response: HTTP 200. The body follows the endpoint schema; many integration endpoints wrap the useful payload under data with status and message.
Common error states:
400 invalid request body, query, ObjectId, pagination, file format, or missing required field.
401 missing, invalid, expired, or insufficient API key/token.
403 key is valid but cannot access this community/channel/user/resource, where supported by the service.
404 target resource, route, or community-scoped record was not found.
409 duplicate or conflicting state for create/update operations, where applicable.
500 unexpected Returning.AI service error.

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://sgtr-integration.returning.ai/apis/purchase-histories/ORD202641612055614747' \
--header 'Authorization: Bearer XXXXXX' \
--header 'Content-Type: application/json' \
--data '{
    "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"
}'
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-06-11 10:14:56
Previous
Public widgets
Next
List store categories
Built with