Update Currency Expiry

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

This API updates the expiry date of points earned by a customer. It uses a customer ID and transaction reference data.

Prerequisites

  • Authentication: Basic/OAuth authentication
  • Access group: Default access group

Resource information

PropertyValue
URI/v2/points/updateExpiry
HTTP MethodPOST
PaginationNot supported
Batch supportNot supported
Rate limit informationNot Applicable

Example request

curl -L 'https://eu.api.capillarytech.com/v2/points/updateExpiry' \
-H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
-H 'X-CAP-API-AUTH: <YOUR_CAPILLARY_API_TOKEN>' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
    "expiryDateUpdateRequest": [
        {
            "identifierName": "id",
            "identifierValue": "172440986",
            "programId": 469,
            "pointsAwardedRefId": 117521910,
            "pointsAwardedRefType": "POINT_AWARDED",
            "expiryUpdateReasonType": "EARLY_EXPIRY",
            "expiryUpdateReasonNote": "Customer made a purchase above $100",
            "standardMeta": {
                "who_raised": "Naman",
                "who_approved": "Admin",
                "reason_for_trigger": "Extend points expiry"
            },
            "customMeta": {
                "abc": "xyz"
            },
            "expiryDate": {
                "expiryType": "FIXED_DATE",
                "expiryValue": "2025-08-09"
            }
        }
    ]
}'

Request body parameters

ParameterData TypeMandatoryDescription
expiryDateUpdateRequestobjectYesObject containing details about the customer, the program ID, the identifiers for the points, and the metadata for the points expiration.
    identifierNamestringYesIdentifier type for customer ID. Supported values: mobile, id, externalId, email.
    identifierValuestringYesValue corresponding to the identifierName provided.
    programIdinteger (int64)YesUnique ID of the loyalty program. To retrieve the programId, use the Get Loyalty Programs API.
    pointsAwardedRefIdinteger (int64)YesUnique reference ID generated when points are awarded to a user. To retrieve the     pointsAwardedRefId, use the Get points awarded ID API.
    pointsAwardedRefTypeenumYesType of points awarded to the user. Supported values:
POINT_AWARDED, POINT_AWARDED_BILL_PROMOTION, POINT_AWARDED_LINEITEM, POINT_AWARDED_LINEITEM_PROMOTION, POINT_AWARDED_CUSTOMER_PROMOTION.
    currencyNamestringNoName of the reward currency. To retrieve the currencyName, refer to documentation the on Viewing alternate currencies.
    pointCategoryTypestringNoType of points to update the expiry. Possible values:
REGULAR, PROMISED
    expiryUpdateReasonTypeenumNoType of expiry modification. Supported values:
EARLY_EXPIRY, EXTEND_EXPIRY.
    expiryUpdateReasonNotestringNoReason for updating the points expiry date.
    standardMetaobjectNoObject containing details about the user who raised and approved the request, along with the reason for updating the expiry of points.
        who_raisedstringNoName or username of the user who raised the points expiry update request.
        who_approvedstringNoName or username of the user who approved the points expiry update request.
        reason_for_triggerstringNoReason for expiring or extending the points expiry update.
    customMetaobjectNoObject containing details of custom metadata for the points expiry update.
    expiryDateobjectYesObject containing details of the updated points expiry date.
        expiryTypeenumYesType of points expiry. Supported values:
  • FIXED_DATE: Points expire on a fixed date.
  • FIXED_DAYS: Points expire after a fixed number of days.
  • FIXED_MONTHS: Points expire after a fixed number of months.
  • IMMEDIATE: Points expire immediately after the API request is executed.
        expiryValuestring/dateYesThe date in YYYY-MM-DD format or number of days after which the points expire. Timezone: Cluster-specific timezone.

Response body

{
    "currencyExpiryUpdateResponse": [
        {
            "customerId": 172440986,
            "programId": 469,
            "currencyName": "POINTS",
            "pointsExpiryUpdateLogs": {
                "paType": "POINT_AWARDED",
                "paId": 117521910,
                "expiryUpdateReasonType": "EARLY_EXPIRY",
                "expiryUpdateReasonNote": "xyz",
                "oldExpiryDate": "2026-08-09 23:59:59",
                "oldExpiryDateISO": "2026-08-09T23:59:59Z",
                "newExpiryDate": "2026-08-09 23:59:59",
                "newExpiryDateISO": "2026-08-09T23:59:59Z",
                "eventLogId": 41420339,
                "eventDate": "2026-01-07 10:35:28",
                "eventDateISO": "2026-01-07T10:35:28Z",
                "standardMeta": {
                    "reason_for_trigger": "test",
                    "who_approved": "Admin",
                    "who_raised": "Naman"
                },
                "customMeta": {
                    "abc": "xyz"
                }
            }
        }
    ]
}
{
    "currencyExpiryUpdateResponse": [],
    "failures": [
        {
            "pointsAwardedRefId": 117521910,
            "pointsAwardedRefType": "POINT_AWARDED",
            "errorCode": 8015,
            "errorMessage": "Customer not found for the given identifiers"
        }
    ]
}
{
    "currencyExpiryUpdateResponse": [],
    "failures": [
        {
            "pointsAwardedRefId": 1175219,
            "pointsAwardedRefType": "POINT_AWARDED",
            "errorCode": 3034,
            "errorMessage": "No points awarded found for reference type POINT_AWARDED and ID 1175219"
        }
    ]
}
{
    "errors": [
        {
            "status": false,
            "code": 8941,
            "message": "Valid values are: [POINT_AWARDED, POINT_AWARDED_BILL_PROMOTION, POINT_AWARDED_LINEITEM, POINT_AWARDED_LINEITEM_PROMOTION, POINT_AWARDED_CUSTOMER_PROMOTION]"
        }
    ]
}
{
    "errors": [
        {
            "status": false,
            "code": 8941,
            "message": "Valid values are: [FIXED_DATE, FIXED_DAYS, FIXED_MONTHS, IMMEDIATE]"
        }
    ]
}
{
    "currencyExpiryUpdateResponse": [],
    "failures": [
        {
            "pointsAwardedRefId": 117521910,
            "pointsAwardedRefType": "POINT_AWARDED",
            "errorCode": 3037,
            "errorMessage": "Invalid expiry date: Expiry date must be in the future"
        }
    ]
}

Response body parameters

ParameterData TypeDescription
updateCurrencyExpiryDateResponseObjectObject containing details of the points expiry update request.
.customerIdinteger (int64)Unique identifier of the customer whose points expiry is updated.
.programIdinteger (int64)Unique identifier of the loyalty program.
.currencyNamestringUnique name of the currency whose expiry is updated.
.pointsExpiryUpdateLogsobjectObject containing details of the points expiry update.
..paTypeenumType of points awarded to the user. Possible values: POINT_AWARDED, POINT_AWARDED_BILL_PROMOTION, POINT_AWARDED_LINEITEM, POINT_AWARDED_LINEITEM_PROMOTION, POINT_AWARDED_CUSTOMER_PROMOTION.
..paIdinteger (int64)Unique reference ID is generated when points are awarded to a user.
..expiryUpdateReasonTypeenumType of expiry modification. Possible values: EARLY_EXPIRY, EXTEND_EXPIRY.
..expiryUpdateReasonNotestringReason for updating the points expiry date.
..oldExpiryDatedatePoints expiry date before the change was requested in ISO 8601 format. Timezone: Cluster-specific timezone.
Note: This field will be deprecated in the future and is being replaced by oldExpiryDateISO.
..oldExpiryDateISOdate

Indicates the points expiry date before the change was requested in ISO 8601 format, returned in the server timezone.

EU server example:
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example:
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response timezone always matches the server timezone, regardless of the timezone offset in the request.

..newExpiryDatedate

Points expiry date after the change was requested in ISO 8601 format. Timezone: Cluster-specific timezone.

Note: This field will be deprecated in the future and is being replaced by newExpiryDateISO.

..newExpiryDateISOdate

Indicates the points expiry date after the change was requested in ISO 8601 format, returned in the server timezone.

EU server example:
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example:
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response timezone always matches the server timezone, regardless of the timezone offset in the request.

..eventLogIdintegerUnique ID that is generated when the event is triggered.
..eventDatedate

Date when the points expiry update was requested in ISO 8601 format. Timezone: Cluster-specific timezone.

Note: This field will be deprecated in the future and is being replaced by eventDateISO.

..eventDateISOdate

Indicates the date when the points expiry update was requested in ISO 8601 format, returned in the server timezone.

EU server example:
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example:
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response timezone always matches the server timezone, regardless of the timezone offset in the request.

..standardMetaobjectObject containing details of the reason and users who raised and approved the request.
...reason_for_triggerstringReason for expiring or extending the points expiry update.
...who_approvedstringName or username of the user who approved the points expiry update request.
...who_raisedstringName or username of the user who approved the points expiry update request.
..customMetaObjectObject containing details of custom metadata.

Note: I also removed the "=" character that was incorrectly placed before "oldExpiryDate" in the original table.

API specific errors

Error CodeDescriptionReason
8931Points expiry update request is invalid or emptyRequired fields are invalid or missing
8932Identifier name is required for the points expiry updateCustomer identifier name is invalid or missing
8933Identifier value is required for the points expiry updateCustomer identifier type is invalid or missing
8934Program ID is required for points expiry updateProgram ID provided is missing or invalid.
8935Invalid standard meta keyValues provided in the standardMeta object is invalid or missing.
8936Points expiry update failedOperation failed due to some reason. Check if all required parameters are provided and valid.
8937Points awarded reference ID is requiredpointsAwardedRefId is missing or invalid.
8938Points awarded reference type is requiredpointsAwardedRefType is missing or invalid.
8942Points expiry date is mandatoryexpiryDate and its respective arrays are missing or invalid.
Body Params
expiryDateUpdateRequest
array of objects
required
expiryDateUpdateRequest*
Headers
string
required
string
string
enum
Allowed:
string
enum
Allowed:
Responses

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