| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Retrieves details of a specific customer such as:
- Profile information – first name, last name, registered date, registered at TILL
- Recent profile updated – details of the recent update in profile information
- Registered identifiers, communication channels
- Loyalty information – loyalty status, registered date, purchases, etc.
- Multiple Loyalty Program details: Program wise details if the org has multiple loyalty programs support
- Customer image
To fetch customer details from a specific account of a source (source with multiple accounts), you need to provide the respective account id.
If you attempt to retrieve data of any deleted customer after a successful PII deletion, you will receive the following response:"message": "Customer is deleted after PII delete request"
Example API request
curl --location 'https://eu.api.capillarytech.com/v2/customers/567584951?source=INSTORE' \
--header 'Authorization: Basic bmVlc3RvcmVMTUyZDIzNGI3MA==' \
--header 'Cookie: _cfuvid=jJD8ai0qoDkyBs88swzPhdWr7Zrog49xTlDBOl11Kmg-1765536308629-0.0.1.1-604800000; _cfuvid=100jfNipyfbg3T4adayxOgQbOivDO7IK5kjl1VYh..w-1767761670939-0.0.1.1-604800000'curl --location 'https://eu.api.capillarytech.com/v2/customers/565261498?source=INSTORE&ndncStatus=true&optinStatus=true&slabHistory=true&tierUpgradeCriteria=true&membershipRetentionCriteria=true' \
--header 'Authorization: Basic TYyZTZm' \
--header 'Cookie: _cfuvid=4iDouDxzeqitbVLO9nB7slXk6Drd8u4ZNvlBOVk.Rvw-1768551130514-0.0.1.1-604800000'Query parameters
Parameter (Parameters marked with * are mandatory) | Type | Description |
|---|---|---|
| source* | Enum [INSTORE, MARTJACK, WECHAT, LINE, ALL] | Specifies the source of the customer details to be retrieved. |
| accountId | String | Unique identifier for the account. |
| embed | Array of String | Details to include in the response. Supported values: points, subscriptions, mlp, userGroup, gapDetails, promotionalPoints, expirySchedules, expiredPoints, customerImage, returnedPoints, associatedImages, segments.
|
| includedAllUserGroup2 | Boolean (false) | Pass true to see the customer details in all user groups. |
| userGroup2Id | Long | Unique ID of the user group to fetch customer details from. |
| includedUserGroup2LoyaltyDetails | Boolean (false) | Pass true to include loyalty details of user groups. |
| includedFraudDetails | Boolean (false) | Pass true to include fraud details of the customer in the response. |
| includedOnlyCurrentProfile | Boolean (false) | Pass true to fetch details of the current source and hide information from other sources. |
| ug2JoinedStartDate | DateTime | Start date for filtering customers who joined user groups. |
| ug2JoinedEndDate | DateTime | End date for filtering customers who joined user groups. |
| ug2Offset | Integer | Specifies the offset for pagination of user group results. |
| ug2Limit | Integer | Sets the maximum number of results to retrieve per page for user groups. |
| ug2SortBy | String (JoinedDate) | Specifies the field by which the user group results should be sorted. |
| ug2SortOrder | Enum [ASC, DESC] (DESC) | Specifies the sorting order for the user group results. |
| ug2PaginationDetails | Boolean | Pass true to include pagination details for user groups. |
| gapToUpgrade | Integer |
|
| gapToRenew | Integer |
1: Calculates the renewal value for the next day. 30: Projects the renewal value 30 days from the current day. Negative values are not supported.
|
| ndncStatus | Boolean | Pass true to include the customer's NDNC (Do Not Disturb / Do Not Call) status in the response.Default value: false |
| optinStatus | Boolean | Pass true to include the customer's opt-in status for communications in the response.Default value: false |
| slabHistory | Boolean | Pass true to include the customer's tier upgrade/slab history in the response.Default value: false |
| tierUpgradeCriteria | Boolean | Pass true to include tier upgrade criteria details in the response. This shows the requirements for the customer to upgrade to the next tier.Default value: false |
| membershipRetentionCriteria | Boolean | Pass true to include membership retention criteria details in the response. This shows the requirements for the customer to maintain their current tier.Default value: falseNote: If the downgrade criteria is not configured for the associated program, this array is not included in the response, even if you set this value to true. |
{
"id": 566881933,
"profiles": [
{
"firstName": "Bubalus",
"lastName": "bubalis",
"attribution": {
"createDate": "2025-02-28T06:15:10Z",
"createdBy": {
"id": 75155282,
"code": "neeraj.doc",
"name": "neeraj.doc",
"type": "TILL",
"referenceId": -1,
"default": false
},
"modifiedBy": {
"id": 75197941,
"code": "george.docdemo",
"name": "george.docdemo",
"type": "TILL",
"referenceId": -1,
"default": false
},
"modifiedDate": "2026-01-08T10:03:21Z"
},
"fields": {},
"allFields": {},
"identifiers": [
{
"type": "mobile",
"value": "1234512345"
},
{
"type": "email",
"value": "[email protected]"
},
{
"type": "externalId",
"value": "12341234"
}
],
"commChannels": [
{
"type": "mobile",
"value": "1234512345",
"primary": true,
"verified": false,
"meta": {
"residence": false,
"office": false
},
"attributes": {}
},
{
"type": "email",
"value": "[email protected]",
"primary": true,
"verified": false,
"meta": {
"residence": false,
"office": false
},
"attributes": {}
}
],
"source": "INSTORE",
"userId": 566881933,
"accountId": "",
"conflictingProfileList": [],
"autoUpdateTime": "2026-01-14T08:48:38Z",
"identifiersAll": [
{
"type": "mobile",
"value": "1234512345"
},
{
"type": "email",
"value": "[email protected]"
},
{
"type": "externalId",
"value": "12341234"
}
]
}
],
"loyaltyInfo": {
"loyaltyType": "loyalty",
"attributionV2": {
"createDate": "2025-09-23T12:31:51Z",
"createdBy": {
"id": 75152721,
"code": "naman_doc",
"description": "",
"name": "naman",
"type": "TILL",
"referenceId": -1,
"adminType": "GENERAL",
"isActive": true,
"isOuEnabled": false,
"timeZoneId": 191,
"currencyId": 95,
"languageId": 148,
"default": false
},
"modifiedBy": {
"id": 75197941,
"code": "george.docdemo",
"name": "george.docdemo",
"type": "TILL",
"referenceId": -1,
"default": false
},
"modifiedDate": "2026-01-08T10:03:21Z",
"createdFromSource": "instore"
},
"lifetimePurchases": 221350.000,
"score": 0
},
"segments": {},
"associatedWith": "naman_doc",
"extendedFields": {
"city": "Mumbai",
"dob": "1999-08-08T00:00:00Z",
"gender": "Male"
},
"cardDetails": [
{
"cardId": 914258,
"issuedDate": "2025-09-18T12:47:07Z",
"createdDate": "2025-09-05",
"createdDateTimeISO": "2025-09-05T12:25:27Z",
"expiryDays": 1000,
"seriesName": "card series create new",
"customerId": 566881933,
"maxActiveCards": 5,
"extendedFields": {
"custom_card_name": "TOM",
"vehicle_number": "KA01B2020"
},
"customFields": {
"vehicle_type": "Bike"
},
"mappedEntity": {
"type": "TILL",
"value": "rutuja_capillary"
},
"type": "DIGITAL",
"cardNumber": "mtest00000000067003",
"seriesId": 195,
"seriesCode": "mtest",
"orgId": 100737,
"entityId": 75152721,
"statusInfo": {
"reason": "",
"createdBy": 914258,
"actions": [],
"autoUpdateTime": "2025-09-18",
"autoUpdateTimeISO": "2025-09-18T12:47:06Z",
"createdOn": "2025-09-18T12:47:07Z",
"entityId": 914258,
"id": 28185678,
"isActive": true,
"labelId": 494,
"label": "ACTIVE",
"status": "ACTIVE"
},
"id": 914258,
"transactionNotAllowed": true,
"activeAndDigital": true,
"expiryDate": "2028-06-01T00:00:00Z"
},
{
"cardId": 916170,
"issuedDate": "2025-09-23T12:10:53Z",
"createdDate": "2025-09-23",
"createdDateTimeISO": "2025-09-23T12:09:51Z",
"expiryDays": 1000,
"seriesName": "card series create new",
"customerId": 566881933,
"maxActiveCards": 5,
"customFields": {},
"type": "DIGITAL",
"cardNumber": "mtest00000000107003",
"seriesId": 195,
"seriesCode": "mtest",
"orgId": 100737,
"entityId": 75184878,
"statusInfo": {
"reason": "",
"createdBy": 916170,
"actions": [],
"autoUpdateTime": "2025-09-23",
"autoUpdateTimeISO": "2025-09-23T12:10:52Z",
"createdOn": "2025-09-23T12:10:53Z",
"entityId": 916170,
"id": 28195155,
"isActive": true,
"labelId": 494,
"label": "ACTIVE",
"status": "ACTIVE"
},
"id": 916170,
"transactionNotAllowed": true,
"activeAndDigital": true,
"expiryDate": "2028-06-19T00:00:00Z"
},
{
"cardId": 916172,
"issuedDate": "2025-09-23T12:10:42Z",
"createdDate": "2025-09-23",
"createdDateTimeISO": "2025-09-23T12:09:51Z",
"expiryDays": 1000,
"seriesName": "card series create new",
"customerId": 566881933,
"maxActiveCards": 5,
"customFields": {},
"type": "DIGITAL",
"cardNumber": "mtest00000000087003",
"seriesId": 195,
"seriesCode": "mtest",
"orgId": 100737,
"entityId": 75184878,
"statusInfo": {
"reason": "",
"createdBy": 916172,
"actions": [],
"autoUpdateTime": "2025-09-23",
"autoUpdateTimeISO": "2025-09-23T12:10:42Z",
"createdOn": "2025-09-23T12:10:42Z",
"entityId": 916172,
"id": 28195154,
"isActive": true,
"labelId": 494,
"label": "ACTIVE",
"status": "ACTIVE"
},
"id": 916172,
"transactionNotAllowed": true,
"activeAndDigital": true,
"expiryDate": "2028-06-19T00:00:00Z"
},
{
"cardId": 916173,
"issuedDate": "2025-09-23T12:10:29Z",
"createdDate": "2025-09-23",
"createdDateTimeISO": "2025-09-23T12:09:51Z",
"expiryDays": 1000,
"seriesName": "card series create new",
"customerId": 566881933,
"maxActiveCards": 5,
"customFields": {},
"type": "DIGITAL",
"cardNumber": "mtest00000000077003",
"seriesId": 195,
"seriesCode": "mtest",
"orgId": 100737,
"entityId": 75184878,
"statusInfo": {
"reason": "",
"createdBy": 916173,
"actions": [],
"autoUpdateTime": "2025-09-23",
"autoUpdateTimeISO": "2025-09-23T12:10:28Z",
"createdOn": "2025-09-23T12:10:29Z",
"entityId": 916173,
"id": 28195153,
"isActive": true,
"labelId": 494,
"label": "ACTIVE",
"status": "ACTIVE"
},
"id": 916173,
"transactionNotAllowed": true,
"activeAndDigital": true,
"expiryDate": "2028-06-19T00:00:00Z"
},
{
"cardId": 921845,
"issuedDate": "2025-11-20T10:07:35Z",
"createdDate": "2025-11-20",
"createdDateTimeISO": "2025-11-20T09:50:02Z",
"expiryDays": 1000,
"seriesName": "CardSeries14",
"customerId": 566881933,
"maxActiveCards": 1,
"cardExternalId": "CardExternal2",
"customFields": {},
"type": "DIGITAL",
"cardNumber": "DS034812BA",
"seriesId": 214,
"seriesCode": "CardSeries14",
"orgId": 100737,
"entityId": 75197372,
"statusInfo": {
"reason": "",
"createdBy": 921845,
"actions": [],
"autoUpdateTime": "2025-11-20",
"autoUpdateTimeISO": "2025-11-20T10:07:35Z",
"createdOn": "2025-11-20T10:07:35Z",
"entityId": 921845,
"id": 28349059,
"isActive": true,
"labelId": 494,
"label": "ACTIVE",
"status": "ACTIVE"
},
"id": 921845,
"transactionNotAllowed": true,
"activeAndDigital": true,
"expiryDate": "2028-08-16T00:00:00Z"
}
],
"warnings": []
}{
"id": 565261498,
"profiles": [
{
"firstName": "Tom",
"lastName": "Sawyer",
"attribution": {
"createDate": "2024-08-27T00:00:00Z",
"createdBy": {
"id": 75155282,
"code": "neeraj.doc",
"name": "neeraj.doc",
"type": "TILL",
"referenceId": -1,
"default": false
},
"modifiedBy": {
"id": 75152722,
"code": "divya_doc",
"name": "divya_doc",
"type": "TILL",
"referenceId": -1,
"default": false
},
"modifiedDate": "2026-01-14T10:25:02Z"
},
"fields": {},
"allFields": {},
"identifiers": [
{
"type": "mobile",
"value": "19986542387"
}
],
"commChannels": [
{
"type": "mobile",
"value": "19986542387",
"primary": true,
"verified": false,
"meta": {
"residence": false,
"office": false
},
"attributes": {}
}
],
"source": "INSTORE",
"userId": 565261498,
"accountId": "",
"conflictingProfileList": [],
"autoUpdateTime": "2026-01-16T08:12:10Z",
"identifiersAll": [
{
"type": "mobile",
"value": "19986542387"
}
]
}
],
"loyaltyInfo": {
"loyaltyType": "loyalty",
"attributionV2": {
"createDate": "2024-08-27T00:00:00Z",
"createdBy": {
"id": 75155282,
"code": "neeraj.doc",
"description": "",
"name": "neeraj.doc",
"type": "TILL",
"referenceId": -1,
"adminType": "GENERAL",
"isActive": true,
"isOuEnabled": false,
"timeZoneId": 191,
"currencyId": 95,
"languageId": 148,
"default": false
},
"modifiedBy": {
"id": 75152722,
"code": "divya_doc",
"name": "divya_doc",
"type": "TILL",
"referenceId": -1,
"default": false
},
"modifiedDate": "2026-01-14T10:25:02Z",
"createdFromSource": "instore"
},
"lifetimePurchases": 10200.000
},
"segments": {},
"associatedWith": "neeraj.doc",
"optinStatus": "NONE",
"slabHistory": [
{
"from": "Coral",
"to": "Garnet",
"fromTierExpiryDate": "2121-11-10T23:59:59Z",
"changedOn": "2026-01-13T14:41:26Z",
"notes": "manual slab adjustment reason: Upgraded for achieving 1000 loyalty points",
"store": {
"code": "doc123",
"name": "DocStore"
},
"type": "UPGRADE",
"programId": 983
},
{
"from": "Topaz",
"to": "Coral",
"fromTierExpiryDate": "2124-08-27T23:59:59Z",
"toTierExpiryDate": "2121-11-10T23:59:59Z",
"changedOn": "2025-03-26T08:26:55Z",
"notes": "Upgrading to Slab : Slab[2]: Name [points] Description [transfer points] , Criteria: Primary",
"store": {
"code": "doc123",
"name": "DocStore"
},
"type": "UPGRADE",
"programId": 983
}
],
"tierUpgradeCriteria": {
"purchaseType": "CURRENT_POINTS",
"description": "purchase required for slab upgradation based on current points",
"purchaseValue": 5999.0
},
"extendedFields": {},
"ndncStatus": "NONE",
"cardDetails": [],
"membershipRetentionCriteria": {
"minPurchases": 0.0,
"minVisits": 0,
"isDownGradeStrategy": true
},
"warnings": []
}Response parameters
| Parameter | Description |
|---|---|
| id | Unique identifier for the customer. |
| profiles | List of customer profiles containing various details such as name, attribution, identifiers, communication channels, source, etc. |
| loyaltyInfo | Information related to the customer's loyalty, including loyalty type, attribution, and lifetime purchases. |
| segments | Object containing the segment and partition names.
|
| associatedWith | Code identifying the association of the customer (e.g., till code). |
| ug2Pagination | Pagination details for user group results related to the customer. |
| extendedFields | Additional extended fields associated with the customer, such as city and gender. |
| cardDetails | Details of the card owned by the customer, including card ID, issued date, expiry date, series information, status, and more. |
| -createdDate | Indicates the card creation date. Note: This field will be deprecated in the future and is being replaced by createdDateTimeISO. |
| -createdDateTimeISO | Indicates the card creation date and time in ISO 8601 format, returned in the server's timezone. EU server example India server example Note: The response time zone always matches the server time zone, regardless of the timezone offset in the request. |
| statusInfo | An object that includes details related to customer status. |
| -autoUpdateTime | Indicates the customer status modification date. Note: This field will be deprecated in the future and is being replaced by autoUpdateTimeISO. |
| -autoUpdateTimeISO | Indicates the customer status modification date and time in ISO 8601 format, returned in the server timezone. EU server example India server example Note: The response timezone always matches the server timezone, regardless of the timezone offset in the request. |
| warnings | List of warnings related to the response. |
| upgradeStrategies | Provides the set of rules or conditions that defines how a customer progresses to a higher tier in a loyalty program. |
| -upgrade_based_on | Parameter using which the upgrade condition is determined. Example: CUMULATIVE_PURCHASES; TRACKER_VALUE_BASED, CURRENT_POINTS |
| -upgradeThreshold | Threshold value required for an upgrade. Example: 25000 points. |
| -customerUpgradeEntityValues | Current values related to the customer’s upgrade. |
| --currentValue | Current value attained by the customer. Example: 9786 points. |
| --gapToUpgrade | Additional value required for the upgrade. Example: 15214 points (threshold value - current value) |
| --valueValidUpto | Date untill which the value is valid, in YYYY-MM-DD format. Example: 2025-05-06. |
| gapToRenewSummary | Set of rules or conditions required for tier renewal for the customer in a loyalty program.
|
| -tierExpiryDate | Expiry date of the current tier, in YYYY-MM-DD format. Example: 2024-12-31. |
| -renewConfirmed | Indicates if the tier renewal is confirmed. Values: true or false. |
| -renewStrategies | Array containing details of the rules or conditions for tier renewal. |
| --renewBasedOn | Specifies the renewal strategy. Example: VISITS, PURCHASE, POINTS, or TRACKER. |
| --trackerEntityIdentifiers | Array containing details of the tracker. Visible in case of tracker based renewal. |
| ---trackerName | Name of the tracker. Example: DowngradeTracker |
| ---trackerType | Entity tracked, such as transaction amount, line-item count, or customer visits. Example: LINEITEM_COUNT |
| ---trackerMode | Method used to evaluate tracker values over time, Example: MOVING_WINDOW, CYCLIC_WINDOW, CALENDAR_BASED_CYCLIC_WINDOW, or TIER_CHANGE_WINDOW. |
| ---trackerCaseName | Name of the specific tracker case. Example: Case1. |
| ---trackerCasePeriodType | Specifies the duration type for evaluating the tracker case, such as days, months, or calendar cycles. Example: DAYS |
| ---trackerCasePeriodValue | Value of the tracker case period. Example: 5 days. |
| --renewThreshold | Threshold value required by the customer to renew the tier. Example: 5.0 for store visits, 10 for purchases. |
| --customerRenewEntityValue | Current value reached by the customer. Example: 1 store visit or 123 points |
| --customerGapToRenewValue | Additional value required for the tier renewal. Example: 4 store visits, 10 purchases or 1877 points. |
| ndncStatus | Customer's NDNC (Do Not Disturb / Do Not Call) status. Returned only when ndncStatus=true query parameter is passed.Possible values: NONE, NDNC, DND |
| optinStatus | Customer's opt-in status for communications. Returned only when optinStatus=true query parameter is passed.Possible values: OPTED_IN, OPTED_OUT. |
| slabHistory | Array containing the customer's tier upgrade/slab history. Returned only when slabHistory=true query parameter is passed. Each entry includes details such as the previous tier, new tier, change date, and reason for the tier change. |
| -from | Tier name before the upgrade or downgrade. These are the tier names configured in the loyalty program. Example: Silver. |
| -to | New tier name after the upgrade or downgrade. These are the tier names configured in the loyalty program. Example: Gold. |
| -changedOn | Date and time when the tier change occurred, in ISO 8601 format, returned in the server time zone. India server example Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request. |
| -fromTierExpiryDate | Expiry date of the previous tier, in ISO 8601 format, returned in the server time zone. India server example Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request. |
| -notes | Additional notes or reason for the tier change. Example: Automatic upgrade based on points threshold. |
| -store | Object containing the store details where the tier/slab change occurred. |
| -- code | Store code where the tier/slab change occurred. |
| -- name | Store name where the tier/slab change occurred. |
| -type | Type of tier change. Example: UPGRADE, DOWNGRADE, RENEWAL. |
| tierUpgradeCriteria | Object containing tier upgrade criteria details. Returned only when tierUpgradeCriteria=true query parameter is passed. Shows the requirements for the customer to upgrade to the next tier, including the threshold values and current progress. |
| -purchaseType | Strategy used for tier upgrade calculation. Possible Values: CUMULATIVE_POINTS, CUMULATIVE_PURCHASES, CURRENT_POINTS, TRACKER_VALUE_BASED |
| -description | Description of the requirements for the tier upgrade. This is a hardcoded message based on the purchaseType. |
| -purchaseValue | Minimum purchase value or points required to upgrade to the next tier. If already eligible, this may be 0. |
| membershipRetentionCriteria | Object containing membership retention criteria details. Returned only when membershipRetentionCriteria=true query parameter is passed. Shows the requirements for the customer to maintain their current tier, including renewal thresholds and downgrade conditions. |
| -minPurchases | Minimum purchase amount required to retain the current tier/membership level. |
| -minVisits | Minimum number of visits required to retain the current tier/membership level. |
| -isDownGradeStrategy | Indicates whether a downgrade strategy is configured for the loyalty program. Values: true: Indicates downgrade strategy is configuredfalse: Indicates downgrade strategy is not configured |
Note:Retrieving Customers transaction data in bulk is NOT supported in this API.
API specific Error Code
| Error Code | Description | Reason |
|---|---|---|
| 400 | Bad Request with Blank response | Not passed valid identifiers |
| 400 | Bad Request | The 'createDate' field in 'attributionV2' must be in full datetime format (for example, '2025-09-23T12:31:51Z'). If you provide only a date (for example, '2025-09-23'), the API returns a 400 error due to strict input validation. |
