| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
The Lookup API is useful for in situations where you don't have the customerId. Instead, you can retrieve customer details using other identifiers such as phone numbers or email addresses. The API provides more detailed information, including details about loyalty programs like slab numbers.
This API can fetch the following information -
- 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
- Card level details
- Alternate currency details with associated program ID and its name.
To fetch customer details from a specific account of a source (source with multiple accounts), you need to provide the respective account id.
Using Multiple Identifiers
When dual eligibility is enabled in your organisation, the API allows you to send multiple identifiers while fetching details, and the system automatically identifies which one is the primary identifier and retrieves the details accordingly. This removes the need for you to know or specify only the primary identifier, which is beneficial in a dual eligibility-enabled scenario, as the feature allows you to register multiple users with the same secondary identifiers.
When you submit multiple identifiers in a lookup request:
- The service checks that dual eligibility is active.
- It parses all submitted identifiers, for example
email,mobile,externalId - It determines which identifier is configured as the primary key.
- If one of the provided values matches the primary key, the API uses it for the lookup.
- The API returns the single customer profile associated with the primary identifier.
You can enter multiple identifiers as comma-separated values using the identifierName and identifierValue query parameters. Ensure the order of the identifierName matches the identifierValue.
Note: If you provide only one identifier that is not the primary identifier, the system will return an error, 8015 - Customer not found for given identifiers.
Endpoint Example
<https://eu.api.capillarytech.com/v2/customers/lookup/customerDetails?source=INSTORE&&identifierName=email,mobile,externalID&[email protected],915795008395,MPQSP100>Here,
[email protected]is the email915795008395is the mobile numberMPQSP100is the external ID
Note:Use V1 Get Customer Details API to retrieve:
-Customer's loyalty tier change history.
-Details of the store where the customer was registered.
-Details of the POS (Point of Sale) machine of the store where the customer was registered.
-National Do Not Call Registry (NDNC) status of the customer’s registered mobile number.
-Services (SMS/email) that the customer has opted in or out of.
-Criteria set for membership or tier retention.
-Coupon history in a specified order.
-Coupon details in ascending or descending order.
-Recently used coupon information.
-Desired set of coupons in the issuing order.
-Details of active coupons.
API endpoint example
<https://eu.api.capillarytech.com/v2/customers/lookup/customerDetails>
Prerequisites
- Authentication - Basic or OAuth authentication details
- Access group resource - NA
Resource information
| URI | /v2/customers/lookup/customerDetails |
| HTTP method | GET |
| Pagination supported? | No |
| Rate limit | NA |
| Batch support | NA |
Request query parameters
| Field Name | Data Type | Description | Mandatory |
|---|---|---|---|
source | Enum | Source on which the customer identifier is available. Example: INSTORE, MARTJACK, WECHAT, ALL, MAPP_SDK | Yes |
accountId | String | Account ID for sources with multiple accounts. | Mandatory for all the sources except Instore. |
embed | Array of Strings | Details to be included in the response. Values: points, subscriptions, mlp, promotionalPoints, expirySchedules, expiredPoints, segments, userGroup, customerImage, cardLoyaltyDetails, fleetParentDetails, ignoreCardDetails, customerStatus, alternateCurrencies. Note: Embed parameter gapDetails is deprecated. | No |
identifierName | Enum | Identifier type used to get the customer details. Supported values: cardnumber, mobile, email, externalId, wechat | Yes |
identifierValue | String | Value of the specified identifier. | Yes |
includedFraudDetails | Boolean | Pass true to fetch fraud details of the customer if available. | No |
includedUserGroup2LoyaltyDetails | Boolean | Pass true to include group loyalty details in the response. | No |
userGroup2Id | Long | Unique ID of the user group to fetch customer details of that specific group. | No |
includedAllUserGroup2 | Boolean | Pass true to fetch customer details across all the groups of the customer. | No |
gapToUpgrade | Integer | Prerequisite: Set embed=MLP to retrieve the details. This retrieves the additional purchases, points, visits, or tracker value required for a customer to upgrade to the next tier. It calculates this based on a specified number of days from the current date. Supported values: 0: For current day 1: For next day 30: For 30 days ahead Negative values are not supported. | No |
gapToRenew | Integer | Prerequisite: Set embed=mlp to retrieve the details. Retrieves the renewal value (purchases, points, visits, or tracker) required after a specified number of days. Supported values: 0: For current day 1: For next day 30: For 30 days ahead Note: Not shown if the customer is in the base slab. | No |
Response parameters
{
"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-14T11:32:13Z",
"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"
},
"loyaltyProgramDetails": [
{
"redeemed": 35474.0,
"expired": 173299.0,
"returned": 0.0,
"adjusted": 0.0,
"lifetimePoints": 304600.0,
"loyaltyPoints": 95827.0,
"cumulativePurchases": 221350.0,
"loyaltyId": 651481881,
"currentSlab": "Diamond",
"currentSlabDescription": "Tier 8",
"nextSlab": "",
"nextSlabSerialNumber": -1,
"nextSlabDescription": "",
"slabSNo": 8,
"slabExpiryDate": "2125-03-26T23:59:59Z",
"programId": 973,
"delayedPoints": 0.0,
"delayedReturnedPoints": 0.0,
"delayedExpiredPoints": 0.0,
"totalAvailablePoints": 95827.0,
"totalReturnedPoints": 0.0,
"linkedPartnerPrograms": [
{
"partnerProgramId": 135,
"partnerProgramName": "jotest4",
"partnerProgramDescription": "wf",
"partnerTierNumber": 2,
"partnerTierName": "2",
"partnerTierExpiryDate": "2025-12-29T18:29:59Z",
"partnerMembershipId": "456789123",
"partnerProgramType": "EXTERNAL",
"partnerProgramMembershipStartDate": "2025-09-27T13:08:42Z",
"partnerProgramMembershipEndDate": "2025-12-29T18:29:59Z",
"linked": true,
"tierBased": true
},
{
"partnerProgramId": 133,
"partnerProgramName": "jotest08",
"partnerProgramDescription": "jo",
"partnerProgramType": "SUPPLEMENTARY",
"partnerProgramMembershipStartDate": "2025-12-23T12:25:00Z",
"partnerProgramMembershipEndDate": "2028-09-18T23:59:59Z",
"partnerProgramMembershipLastUpdatedDate": "2025-09-27T13:08:42Z",
"partnerProgramMembershipLastUpdatedActivity": "SUPPLEMENTARY_MEMBERSHIP_STARTED",
"linked": true,
"tierBased": false
}
],
"programTitle": "DocDemoDefaultProgram",
"programDescription": "Default program for DocDemo",
"programPointsToCurrencyRatio": 1.0,
"upgradeStrategies": []
},
{
"redeemed": 0.0,
"expired": 0.0,
"returned": 0.0,
"adjusted": 0.0,
"lifetimePoints": 0.0,
"loyaltyPoints": 0.0,
"cumulativePurchases": 212350.0,
"loyaltyId": -1,
"currentSlab": "Coral",
"currentSlabDescription": "Tier 2",
"nextSlab": "Opal",
"nextSlabSerialNumber": 3,
"nextSlabDescription": "Tier 3",
"slabSNo": 2,
"slabExpiryDate": "2121-11-10T23:59:59Z",
"programId": 983,
"delayedPoints": 0.0,
"delayedReturnedPoints": 0.0,
"delayedExpiredPoints": 0.0,
"totalAvailablePoints": 0.0,
"totalReturnedPoints": 0.0,
"linkedPartnerPrograms": [],
"programTitle": "DocTransferPoints",
"programDescription": "Test Program",
"programPointsToCurrencyRatio": 1.0,
"upgradeStrategies": [
{
"upgradeBasedOn": "CURRENT_POINTS",
"upgradeThreshold": 3000.0,
"customerUpgradeEntityValues": {
"currentValue": 0.0,
"gapToUpgrade": 3000.0,
"valueValidUpto": "2121-11-10"
}
}
]
}
],
"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": []
}
| Parameter | Data type | Description |
|---|---|---|
| id | integer | Unique identifier for the customer |
| profiles | array | Profiles associated with the customer |
| loyaltyInfo | object | Information related to the customer’s loyalty program |
| .loyaltyType | string | Type of loyalty program |
| .attributionV2 | object | Details about loyalty program attribution |
| -- createDate | string | Indicates the customer creation 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. |
| -- createdBy | object | Details of the user who created the loyalty program attribution |
| -- modifiedBy | object | Details of the user who modified the loyalty program attribution |
| -- modifiedDate | string | Indicates the customer 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. |
| -- createdFromSource | string | Source from which the loyalty program attribution was created |
| float | Total lifetime purchases made by the customer |
| segments | object | Segments associated with the customer |
| associatedWith | string | Identifier of the entity associated with the customer |
| extendedFields | object | Additional fields associated with the customer |
| loyaltyProgramDetails | array | Details of the loyalty program associated with the customer |
| float | Total points redeemed by the customer |
| float | Total points expired for the customer |
| float | Total points returned to the customer |
| float | Total points adjusted for the customer |
| float | Total lifetime points earned by the customer |
| float | Total loyalty points earned by the customer |
| float | Cumulative purchases made by the customer |
| integer | Unique identifier for the loyalty program |
| string | Current tier or slab in the loyalty program |
| string | Next tier or slab in the loyalty program |
| integer | Serial number of the next tier or slab |
| string | Description of the next tier or slab |
| integer | Serial number of the current tier or slab |
| string | Indicates the slab expiry 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. |
| integer | Unique identifier for the loyalty program |
| float | Points that are delayed for the customer |
| float | Returned points that are delayed for the customer |
| float | Expired points that are delayed for the customer |
| float | Total available points for the customer |
| float | Total points that have been returned from the customer |
| array | Partner programs that are linked to the customer |
| string | Title of the loyalty program |
| string | Description of the loyalty program |
| float | Ratio of loyalty points to currency |
| groupLoyaltyProgramDetails | array | Details of group loyalty programs associated with the customer |
| integer | Unique identifier for the group loyalty program |
| string | Title of the group loyalty program |
| string | Description of the group loyalty program |
| array | List of programs under the group loyalty program |
| -- id | integer | Unique identifier for the program |
| -- name | string | Name of the program |
| -- description | string | Description of the program |
| float | Lifetime points for the group loyalty program |
| float | Loyalty points for the group loyalty program |
| float | Promised points for the group loyalty program |
| float | Points to currency ratio |
| cardDetails | array | Details of the card associated with the customer |
| integer | Unique identifier for the card |
| string | Indicates the start date of the card issuance 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. |
| string | Date when the card was created |
| string | Indicates the start date of the card creation 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. |
| integer | Number of days until the card expires |
| string | Name of the card series |
| integer | Unique identifier for the customer |
| integer | Maximum number of active cards allowed |
| object | Custom fields associated with the card |
| string | Type of the card |
| string | Unique card number |
| integer | Unique identifier for the card series |
| string | Code of the card series |
| integer | Unique identifier for the organization |
| integer | Unique identifier for the entity |
| object | Status details of the card |
| -- reason | string | Reason for the card status |
| -- createdBy | integer | User who created the card status |
| -- actions | array | Actions associated with the card status |
| -- autoUpdateTime | string | Indicates the card status modification date in yyyy-mm-dd format. Note: This field will be deprecated in the future and is being replaced by autoUpdateTimeISO. |
| --autoUpdateTimeISO | string | Indicates the card status modification date 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. |
| -- createdOn | string | Indicates the card status creation date 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. |
| -- entityId | integer | Entity associated with the card status |
| -- id | integer | Unique identifier for the card status |
| -- isActive | boolean | Indicates whether the card status is active |
| -- labelId | integer | Label identifier |
| -- label | string | Status label |
| -- status | string | Current card status |
| boolean | Indicates whether transactions are allowed |
| string | Expiry date of the customer’s card, in ISO timestamp format. EU server example 2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC) India server example Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request. |
| boolean | Indicates if the card is active and digital |
| alternateCurrencyDetails | array | Details of alternate currency awarded |
| integer | Loyalty program identifier |
| string | Loyalty program name |
| object | Alternate currency details |
| -- name | string | Alternate currency name |
| -- earned | float | Available alternate currency |
| -- lifetimeEarned | float | Lifetime earned alternate currency |
| -- redeemed | float | Redeemed alternate currency |
| -- expired | float | Expired alternate currency |
| -- returned | float | Returned alternate currency |
| -- delayedEarned | integer | Promised alternate currency |
| -- delayedLifetimeEarned | integer | Lifetime promised alternate currency |
| -- delayedReturned | integer | Returned promised alternate currency |
| -- delayedExpired | integer | Expired promised alternate currency |
| -- totalAvailable | float | Total available alternate currency |
| -- totalRedeemed | float | Total redeemed alternate currency |
| -- totalReturned | float | Total returned alternate currency |
| -- totalExpired | float | Total expired alternate currency |
| warnings | array | Warnings associated with the response |
| boolean | Warning status |
| integer | Warning code |
| string | Warning message |
| upgradeStrategies | array | Rules defining customer tier upgrade |
| string | Parameter used for upgrade |
| double | Threshold required for upgrade |
| integer | Current customer values |
| -- currentValue | double | Current value attained |
| -- gapToUpgrade | double | Value required for upgrade |
| -- valueValidUpto | string | Indicates the date until which the currentValue in the upgrade strategy is valid in YYYY-MM-DD format. When this date is lapsed, on the next customer activity the system evaluates renewal criteria and updates the customer's tier. |
| gapToRenewSummary | array | Rules for tier renewal |
| string | Indicates the customer tier expiry 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. |
| boolean | Indicates if renewal is confirmed |
| array | Renewal strategy details |
| -- renewBasedOn | string | Renewal strategy |
| -- renewThreshold | double | Threshold for renewal |
| -- customerRenewEntityValue | double | Current renewal value |
| -- customerGapToRenewValue | double | Value required for renewal |
Error Code
| Error Code | Description | Reason |
|---|---|---|
| 8015 | Customer not found for the given identifiers |
|
