Add Customer

Lets you register customers in the org’s loyalty program or just register their identifiers across sources such as InStore, Facebook,Webengage, WeChat, Martjack, TMall, Taobao, JD, ecommerce, Line, Website, and Mobile app. You can also add customer-level extended and custom field details.

You can also issue loyalty card to the customer using this API.

The API functions as follows -

  • If you try registering an identifier that exists in a different source, a new source account is added to the existing account. Details of each source account will be maintained separately.

  • In a source account, identifiers should be unique - no two customers can have a same identifier.

  • You cannot update existing customer details with this API. To update customer details, use customer update API; and to update identifiers, use the Update Identifier API.

Rate Limit

RegionDefault Limit (RPM)
Asia-2 (Singapore)100
Asia-1 (N. Virginia)600
EMEA (Ireland)100


Following are the prerequisites to use customer registration API:

  • Different sources (FACEBOOK, WEB_ENGAGE, WECHAT, INSTORE, MARTJACK, TMALL, TAOBAO, JD, ECOMMERCE, WEBSITE, LINE) supported by your organization

  • Account ids in which you want to register customers(for sources with multiple accounts such as WeChat, Line and Facebook)


Extended Fields are proposed fields used to standardize input values and keys across organizations (unlike custom fields that have no control in input values). Platforms back-end team controls the field names, data-types, enum values, and scopes of extended fields. Extended Fields are created at customer level, transaction level, and transaction line-item level. Examples of customer level extended fields are age_group, preferred_store, gender, and nationality. Extended fields are either associated to verticals or to a generic category (available for all orgs). To know the list of extended fields enabled for an org, use GET v2/extendedFields API.

Request Body Parameters

loyaltyTypeenumLoyalty status of the customer.
Value: loyalty, non_loyalty .
profileslistMeta information of the customer
   FirstnamestringFirst Name of the customer
   LastnamestringLast name of the customer
   identifierslist objidentifiers of the customer in type and value.
      typeenumType of the customer identifier.
Values: mobile, email, externalId, wechat, martjackId, fbId mobile, tmall_uname, cuid, ali_uname, jd_uname, vip_uname, mobilePush, and line, and card (to issue loyalty card to the customers through registration).
      valuestringValue of the specified identifier. For the type card, value is the card number.
Note: For the mobile numbers, enter the mobile number with the country code
   sourceenumSource in which you want to register a customer.
You can add customers on different sources.
   accountIdstringFor sources that support multiple accounts, For example, FACEBOOK, WEB_ENGAGE, WECHAT, MOBILE_APP.
   fieldsobjCustomer or card level custom field details in key-value pairs.
activityenumState of the customer's lifecycle (entirety lifecycle). State is auto assigned according to the activity.
      seriesIdintCard series ID (for card series generated in capillary). Required for the identifier type: card.
      seriesCodestringUnique series code (for external card series).
Applicable for the identifier type: card.
      statusLabelstringUser defined card status.
Required for the identifier type: card.
   commChannelsobjAvailable communication channels of the customer.
Value: mobile, email, wechat, ios, android, line, mobilePush.
      primarybooleanPass true if it is the primary identifier of the org (for registration).
      verifiedbooleanPass true if the identifier is verified.
      subscribedbooleanPass true if the identifier is subscribed for the org's newsletters (bulk messages).
      metaobjAdditional details of the identifier.
         lastViewedDateDateDate when the customer last opened the app.
Applicable for channel mobilePush.
      attributesobjAdditional Details of the identifier.
createDatedate-timeCreate date indicates the time at which the customer enrolled or was registered in the system.
associatedWithstringThe TILL code associated with the customer registration
extendedFieldsobjCustomer or card level extended field details in key value pairs. You can only pass extended fields that are enabled for your org with the respective datatype values.
loyaltyProgramEnrollmentsobjLets you enroll new customers in the loyalty program.
   programIdintUnique ID of the loyalty program in which you want to enroll.
   tierNumberintSequence number of the tier that you want to allocate to the customer.
For example, 1 for te lowest tier, 2 for the subsequent tier, and so on.
   loyaltyPointsintLoyalty Points to credit in customer's account
   tierExpiryDatedate-timeExpiry date and time of the specified tier.
Supported format:YYYY-MM-DDTHH:MM:SS+/-(time-zone).
   pointsExpiryDatedate-timeExpiry date and time of the points issued.
Supported format: YYYY-MM-DDTHH:MM:SS+/-(time-zone).
   endPointsEnabledarrayUse this to add dummy customers (for internal or testing purposes) and specify the respective endpoints.


If you try to register a customer that exists in a different source, the accounts will be merged automatically.

Click Try It! to start a request and see the response here!