Client Integration Endpoints
The topics below define the operations required for processing loyalty transactions.
PUT /identifyCustomers
Summary
Use the Identify Customers operation to find a customer's loyalty account using a loyalty ID, code, phone number, email address, first name, or last name.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the location that is performing the transaction |
body |
| Yes | Includes the fields for the |
IdentifyCustomersResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| list {object} | Yes | The list of customers identified in the loyalty system |
| boolean | Yes | The flag that represents if the customer was fully identified.
|
| list {object} | No | The list of customer's loyalty balances. For example, points or visits. |
| list {object} | No | The list of stored value accounts available for the customer |
| string (enum) | Yes | The method used to identify loyalty customer. The possible values are as follows: code, |
| object | Yes | The customer's personal information. NoteIf no customer information is provided, an empty object should be sent in the response. |
| list {object} | Yes | The list of rewards available on the customer's balance. NoteIf no rewards are available for the customer, an empty array should be sent in the response. |
| string | Yes | The reward identification value |
| string | No | The reward name |
| number | Yes | The reward quantity |
| boolean | Yes | The flag that identifies if the reward should be applied automatically. NoteThese rewards cannot be removed from the order. |
| string | No | The reward status |
| string | Yes | Indicates the party responsible for the loyalty rewards. This should be set to "provider" when the loyalty rewards are calculated and validated by a loyalty provider. This should be set to "client" when the loyalty rewards are calculated and validated by us. NoteFor this type of integration, the value should be set to "client." |
| string | No | The reward's program identifier |
| string | No | The reward type |
| string | No | The amount of points associated with the reward |
| boolean | No | The flag that identifies if the reward is promoted by a provider and should be shown in a "promoted" category. |
| string | No | The additional reward type. For example, Birthday Reward or Anniversary Reward. |
| string | Yes | The reward code that matches the reward code in our system |
| list {object} | Yes | The reward expiration dates. NoteWhen the reward does not have an expiration date, an empty array should be sent in the response. |
| string | No | The reward expiration date |
| string | No | The total number of rewards to expire |
| object | Yes | The list of validated and declined rewards |
| list {object} | Yes | The list of customer's rewards that should be added to the order automatically. Noteif there are no rewards that should be added to the order automatically, an empty array should be provided in the response. |
| list {object} | Yes | The list of customer's rewards that did not pass the validation and is not applicable to the order. Typically, this is used in the single scan flow when the customer identification includes the reward that should be added to the order. NoteIf there are no declined rewards, an empty array should be provided in the response. |
general | Yes | Includes the fields for the GeneralResponseBody |
POST /redeemReward
Summary
The Redeem Reward operation redeems the rewards that are applied to the order.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the location that is performing the transaction |
body |
| Yes | Includes the fields for the RedeemRewardRequestBody |
RedeemRewardResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| object | Yes | The list of validated and declined rewards |
| list {object} | Yes | The list of successfully redeemed rewards. NoteIf there are no redeemed rewards, an empty array should be provided in the response. |
| list {object} | Yes | The list of customer's rewards that did not pass the validation and are not applicable to the order. NoteIf there are no declined rewards, an empty array should be provided in the response. |
general | Yes | Includes the fields for the GeneralResponseBody |
POST /submitOrder
Summary
Use the Submit Order operation to submit the completed transaction to the loyalty provider to accrue loyalty points on the customer's account.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the location that is performing the transaction |
body |
| Yes | Includes the fields for the SubmitOrderRequestBody |
SubmitOrderResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| object | No | The order receipt details |
general | Yes | Includes the fields for the GeneralResponseBody |
PUT /voidOrder
Summary
The Void Order operation voids an order that has had rewards applied to it. This operation reverses the reward application and reapplies the rewards to the customer's loyalty account if applicable.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the location that is performing the transaction |
body |
| Yes | Includes the fields for the |
VoidOrderResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| object | No | The order receipt details |
general | Yes | Includes the fields for the GeneralResponseBody |
Client Integration Data Models
GeneralRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The version of Gift and Loyalty the company uses |
| string | Yes | The identifier for the employee who entered the transaction |
| string | Yes | The date and time of the transaction in YYYY-MM-DDTHH:MM:SS.001Z format |
| string | No | The name of the integrator connected to the transaction |
| string | Yes | The type of the integrator connected to the transaction |
| string | Yes | The time of activation in HH:MM:SS.001 format |
| string | Yes | The date of the transaction in YYYY-MM-DD format |
| string | Yes | The identifier for the terminal at the site |
| string | Yes | The identifier used by the terminal to track the transaction |
OrderRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The point of sale (POS) order identification |
| object | Yes | The object containing the customer information |
| object | Yes | The customer loyalty information object |
| string | Yes | The customer identification value |
| string | Yes | The customer loyalty card number |
| object | No | The customer submit order object |
| string | No | The transaction identifier of the submitted order |
| object | Yes | The object with a list of all order-level discounts applied to the order. The applied loyalty discounts have a |
| array | Yes | The list of all discounts applied to the order |
| object | Yes | The discount amount |
| string | Yes | The discount code |
| string | Yes | The discount definition identification value |
| boolean | Yes | The discount distribution flag |
| object | No | The loyalty information details |
| string | No | The loyalty points amount |
| boolean | No | The flag that defines if the discount should be applied to the order automatically |
| string | No | The loyalty information code |
| string | No | The loyalty program identification value |
| number, string | No | The points quantity redeemed |
| string | No | The reward identification value |
| string | No | The reward type |
| string | No | The loyalty status |
| string | Yes | The discount name |
| string | Yes | The discount quantity |
| string | Yes | The total discount amount that is applied to the order |
| object | No | The object containing information about the employee that is submitted with the redeemed reward |
| string | No | The identification value for the employee who submitted the order |
| string | No | The name of the employee who submitted the order |
| string | No | The order guest count |
| array | Yes | The list of all items included in the order |
| array | No | The list of inner items objects |
| object | Yes | The item-level discounts have The loyalty rewards have a |
| object | Yes | The discount amount |
| string | Yes | The discount code |
| string | Yes | The discount definition identification value |
| boolean | Yes | The discount distribution flag |
| object | No | The loyalty information details |
| string | No | The loyalty points amount |
| boolean | No | The flag that defines if the discount should be applied to the item automatically |
| string | No | The loyalty information code. |
| string | No | The loyalty program identification value |
| number, string | No | The points quantity redeemed |
| string | No | The reward identification value |
| string | No | The reward type |
| string | No | The loyalty status |
| string | Yes | The item discount name |
| string | Yes | The item discount quantity |
| boolean | No | The flag that identifies if the item is bundled |
| string | Yes | The item type |
| string | Yes | The item name |
| string | Yes | The item order identification value |
| string | Yes | The item price |
| string | Yes | The product identification value |
| string | Yes | The item quantity |
| object | No | The item category object |
| object | No | The item major category report |
| string | No | The item major category report external identification value |
| string | No | The item major category report name |
| object | No | The item minor category report |
| string | No | The item minor category report external identification value |
| string | No | The item minor category report name |
| string | Yes | The POS order number |
| string (enum) | No | The order type. Can be 'refund' order 'order'.
|
| object | No | The object containing an array of all payments |
| string | No | The change amount |
| array | No | The list of payments used for the order |
| string | No | The payment account |
| string | Yes | The payment amount |
| string | No | The card brand name used for payment |
| string | No | The payment code |
| string | No | The name on the card used for payment |
| string | No | The payment name |
| string | Yes | The payment type identification value |
| string | No | The payment type name |
| string, null | No | The payment transaction identification value |
| string | No | The amount of tips paid |
| string | No | The total amount paid |
| string | Yes | The order subtotal amount |
| object | No | The object containing detailed information about the order taxes |
| array | Yes | The list of all taxes applied to the order |
| string | Yes | The amount of tax added |
| string | Yes | The tax name |
| string | Yes | The tax definition identification value |
| string | Yes | The total tax amount |
| string | Yes | The total exclusive tax amount |
| object | Yes | The object containing the time the order was created and closed |
| string | Yes | The order creation timestamp |
| string | Yes | The order closing timestamp |
| string | Yes | The order total amount |
IdentifyCustomersRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The customer's check identification value |
| string | Yes | The customer's identification |
| string | Yes | A generic field for providing identifying information for the customer. It is used when the type of identifying information is not known. |
| string | Yes | The customer's email address |
| string | Yes | The customer's first name |
| string | Yes | The customer's last name |
| string | Yes | The customer's loyalty card number value |
| array | No | An order object, formatted by our system, containing information about the customer's current order |
| string | Yes | The customer's phone number |
| string | Yes | The customer's zip code |
| string (enum) | Yes | Represents the method used to acquire customer's loyalty identifier. The possible values are as follows:
|
general | Yes | Includes the fields for the GeneralRequestBody |
RedeemRewardRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The POS check identification |
| array | No | The list of all items included in the order |
| string | Yes | The order's receipt date time |
general | Yes | Includes the fields for the GeneralRequestBody |
SubmitOrderRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The POS check identification |
| array | Yes | The list of all items included in the order |
| string | Yes | The order's receipt date time |
general | Yes | Includes the fields for the GeneralRequestBody |
VoidOrderRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The POS check identification |
| array | Yes | The object containing all order details |
general | Yes | Includes the fields for the GeneralRequestBody |
GeneralResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| object | Yes | The provider information |
| string | Yes | The response HTTP code |
| string | Yes | The response message from the provider or client |
| string | Yes | The response name |
| string | Yes | The request authorization code |
| string | Yes | The provider identification |
| string | Yes | The provider name |
| string | Yes | The transaction identification value |
| string | Yes | The response date and time |
ValidatedRewardsResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The provider internal reward identification value |
| string | Yes | The identifier of the matching offer. The value should match to the |
| string | Yes | The reward name |
| number | Yes | The reward quantity |
| boolean | Yes | The flag that identifies if the reward should be applied automatically. NoteThese rewards cannot be removed from the order. |
| string | Yes | Indicates the party responsible for the loyalty rewards. This should be set to "provider" when the loyalty rewards are calculated and validated by a loyalty provider. This should be set to "client" when the loyalty rewards are calculated and validated by us. NoteFor this type of the integration, the value should be set to "client." |
| string | No | The reward's program identifier |
| string | Yes | The reward code that matches the reward code in our system |
DeclinedRewardsResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The declined reward name |
| string | Yes | The declined reward identifier |
| string | Yes | The reward code that matches the reward code in the our system. |
| string | Yes | The identifier of the matching offer
|
| amount | No | The declined reward amount value.
|
| string | No | The declined reward's program identification |
| object | Yes | The declined reward error details |
| string | Yes | The error HTTP code |
| string | Yes | The error message |
RedeemedRewaredsResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The provider internal reward identification value |
| string | Yes | The reward name |
| number | Yes | The reward discount amount |
| number | Yes | The reward quantity |
| boolean | Yes | The flag that identifies if the reward should be applied automatically. NoteThese rewards cannot be removed from the order. |
| string | Yes | The reward code that matches the reward code in our system |
| string | No | The reward redemption identifier |
| string | No | The reward's program identifier |
| string | No | The redemption transaction identifier, if the rewards were redeemed one by one |
ReceiptResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| list {object} | No | The list of customer's loyalty balances that should be printed on a receipt. For example, points or visits. |
| string | No | The customer's loyalty balance |
| string | No | The loyalty balance's name. For example, Points. |
| string | No | The loyalty balance type |
| string | No | The amount of points redeemed in the current transaction |
| string | No | The amount of points earned in the current transaction |
| list {object} | No | The loyalty balance expiration dates |
| string | No | The loyalty balance expiration date |
| string | No | The balance amount to be expired |
| string | No | The loyalty customer's name |
| string | No | The customer's loyalty card number |
| array | No | The receipt messages |
| list {object} | No | The receipt loyalty footer and header messages |
| string (enum) | No | The type of the message. The possible values are as follows:
|
| string | No | The text of the message |
| string | No | The loyalty account identifier |
| string | No | The loyalty receipt code |
| list {object} | No | The list of loyalty rewards available on the customer's balance |
| string | No | The reward identification value |
| string | No | The reward name |
| string | No | The reward quantity |
| string | No | The reward status |
| string | No | The amount of points associated with the reward |
| list {object} | No | The reward expiration dates |
| string | No | The reward expiration date |
| string | No | The total number of rewards to expire |
BalanceResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The customer's loyalty balance |
| string | No | The loyalty balance's name. For example, Points. |
| string | No | The loyalty balance type |
| list {object} | No | The loyalty balance expiration dates |
| string | No | The loyalty balance expiration date |
| string | No | The balance amount to be expired |
CardsResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The customer's stored value account or card number |
| string | No | The customer's stored value account or card balance |
InformationResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The customer identification value |
| string | No | The customer's loyalty card or account number |
| string | No | The customer's first name |
| string | No | The customer's last name |
| string | No | The customer's email |
| string | No | The customer's phone number |
| string | No | The customer's birth date |
| string | No | The customer's address information |
| string | No | The customer's main address |
| string | No | The customer's additional address information |
| string | No | The customer's additional address information |
| string | No | The customer's city location |
| string | No | The customer's address instructions |
| string | No | The customer's state location |
| string | No | The customer's zip code location |
| list {object} | No | The list of customer's preselected tips |
| string (enum) | No | The customer's preselected tips calculation method. The possible values are as follows:
|
| string | No | The order total amount threshold |
| string | No | The tip amount to be added to the order |