Update redemption

This endpoint updates a previously completed redemption.
You can update the amount used - increase it, decrease it, or set it to zero (full reversal).

IMPORTANT: Only ONE update is allowed per redemption. Once updated, the redemption cannot be updated again.

How Transaction Updates Work

When you update a redemption, the system creates exactly three transactions:

  1. Original Transaction – The first REDEMPTION transaction (now marked as canceled)
    • Example note: "Transaction canceled and replaced with new transaction. Original amount: 1,000.00, New amount: 500.00"
  2. Cancellation Transaction – A REDEMPTION_REVERSAL record with negative amount
    • Example note: "Reversal of original transaction 12345"
  3. New Transaction – The updated REDEMPTION transaction (currently active)
    • Example note: "Updated transaction created from original transaction 12345"

Important Notes:

  • ORIGINAL = The very first REDEMPTION transaction (oldest by DateCreated, now canceled)
  • CANCELLATION = The REDEMPTION_REVERSAL transaction (accounting record with negative amount)
    • If the original redemption had a reference value, the cancellation transaction's reference will be prefixed with CANCEL- (e.g., CANCEL-REF123)
  • NEW = The updated REDEMPTION transaction (currently active)
    • If the original redemption had a reference value, the new transaction's reference will be prefixed with NEW- (e.g., NEW-REF123)
  • All three transactions share the same external reference you provided
  • originalAmount = Amount of the ORIGINAL transaction
  • newAmount = Amount of the NEW transaction

Request

Method: POST
URL: /merchant-client/v2/redemptions/update
Path Parameters: None
Query Parameters: None
Body:

{
  "reference": "REF123456",
  "amountUsed": 0
}

Field Descriptions:

  • reference (string, required) – Your unique reference used during the redemption.
  • amountUsed (decimal, required) – New amount to use for the transaction. Set to 0 to fully reverse. Must be >= 0.

Responses

200 OK – Successful

Response Structure:

{
  "data": {
    "transactions": [
      {
        "transactionId": "12345",
        "transactionType": "REDEMPTION",
        "amount": 1000.00,
        "reference": "REF123456",
        "voucherCode": "ABC***",
        "serialNumber": "67890",
        "note": "Transaction canceled and replaced..."
      },
      {
        "transactionId": "12346",
        "transactionType": "REDEMPTION_REVERSAL",
        "amount": -1000.00,
        "reference": "CANCEL-REF123456",
        "voucherCode": "ABC***",
        "serialNumber": "67890",
        "note": "Reversal of original transaction 12345"
      },
      {
        "transactionId": "12347",
        "transactionType": "REDEMPTION",
        "amount": 500.00,
        "reference": "NEW-REF123456",
        "voucherCode": "ABC***",
        "serialNumber": "67890",
        "note": "Updated transaction created from original transaction 12345"
      }
    ],
    "summary": {
      "originalAmount": 1000.00,
      "newAmount": 500.00,
      "reference": "REF123456"
    }
  },
  "statusCode": "00",
  "message": "Success"
}

Field Descriptions:

  • data (object) – Complete update/reversal details with all three transactions.
    • originalTransaction (object) – The original REDEMPTION transaction (now canceled).
      • transactionId (string) – Unique transaction ID.
      • transactionType (string) – REDEMPTION.
      • amount (decimal) – Original transaction amount.
      • reference (string) – Your reference (shared across all three transactions).
      • voucherCode (string) – Masked voucher code.
      • serialNumber (string) – Voucher serial number.
      • note (string) – Descriptive message about what happened.
    • cancellationTransaction (object) – The REDEMPTION_REVERSAL transaction.
      • transactionId (string) – Unique transaction ID.
      • transactionType (string) – REDEMPTION_REVERSAL.
      • amount (decimal) – Negative amount (reversal of original).
      • reference (string) – Prefixed with CANCEL- if original had a reference (e.g., CANCEL-REF123).
      • voucherCode (string) – Masked voucher code.
      • serialNumber (string) – Voucher serial number.
      • note (string) – Descriptive message.
    • newTransaction (object or null) – The new REDEMPTION transaction (currently active). Will be null if the update was a full reversal (amountUsed = 0).
      • transactionId (string) – Unique transaction ID.
      • transactionType (string) – REDEMPTION.
      • amount (decimal) – New transaction amount.
      • reference (string) – Prefixed with NEW- if original had a reference (e.g., NEW-REF123).
      • voucherCode (string) – Masked voucher code.
      • serialNumber (string) – Voucher serial number.
      • note (string) – Descriptive message.
    • summary (object) – Summary of the update operation.
      • originalAmount (decimal) – Amount of the original transaction.
      • newAmount (decimal) – Amount of the new transaction. Will be 0 for full reversals.
      • reference (string) – Your reference.
  • statusCode (string) – Status code ("00" indicates success).
  • message (string) – Human-readable message.

401 Unauthorized

Returned when authentication fails.

Unauthorized

403 Forbidden

Returned when merchant does not have permission to update redemptions.

{
  "statusCode": "03",
  "message": "Access denied"
}

404 Not Found

Returned when the transaction reference is not found.

{
  "statusCode": "60",
  "message": "Not found."
}

Example cURL Request

Update to Zero (Full Reversal):

curl -X POST \
  'https://{baseUrl}/merchant-client/v2/redemptions/update' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "reference": "REF123456",
    "amountUsed": 0
  }'

Update to New Amount:

curl -X POST \
  'https://{baseUrl}/merchant-client/v2/redemptions/update' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "reference": "REF123456",
    "amountUsed": 500
  }'
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Update command containing reference and new amount to use

string
required
length ≥ 1

Your unique external reference used during redemption (required)

double

New amount used for partial reversal (optional, defaults to 0 for full reversal)

Headers
string
enum
Defaults to application/json-patch+json

Generated from available request content types

Allowed:
Response

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json