Skip to content
innovorder
⌘K

Engagement

Members & Cards

Manage loyalty program members: retrieve member information, check points balance, register new members, and enroll existing customers into loyalty programs.

GET/v1/loyalty/restaurants/{restaurantId}/customers/{customerId}/memberGet Loyalty Member by Customer ID

Retrieve loyalty member information for a specific customer at a given restaurant. Customers can only access their own membership. Optionally includes SmartPass data.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.
customerIdintegerYesThe unique identifier of the customer.
includeSmartPassbooleanNoWhether to include SmartPass URL in the response.

Response

json
{
  "status": 200,
  "code": "loyalty_card_found",
  "message": "A loyalty card has been found for that code.",
  "data": {
    "id": "member_abc123",
    "customerId": 5001,
    "externalId": "ext_789",
    "cardNumber": "CARD-001234",
    "email": "john.doe@example.com",
    "phone": "+33612345678",
    "points": 1250,
    "tierName": "Gold"
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"loyalty_card_found"Machine-readable application code for the result.
messagestring"A loyalty card has been found for that code."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.idstring"member_abc123"The id value.
data.customerIdinteger5001Identifier of the customer.
data.externalIdstring"ext_789"Identifier in the connected external system.
data.cardNumberstring"CARD-001234"The card number value.
data.emailstring"john.doe@example.com"Email address.
data.phonestring"+33612345678"Phone number.
data.pointsinteger1250The points value.
data.tierNamestring"Gold"The tier name value.

GET/v1/loyalty/restaurants/{restaurantId}/customers/{externalId}/pointsGet Points Balance

Retrieve the current points balance for a loyalty member identified by their external ID at a specific restaurant.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.
externalIdstringYesThe external loyalty provider ID of the member.

Response

json
{
  "status": 200,
  "code": "points_balance_found",
  "message": "Points balance has been found.",
  "data": {
    "points": 1250,
    "currency": "pts"
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"points_balance_found"Machine-readable application code for the result.
messagestring"Points balance has been found."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.pointsinteger1250The points value.
data.currencystring"pts"ISO 4217 currency code.

POST/v1/loyalty/restaurants/{restaurantId}/members/registerRegister Loyalty Member

Register a new member in the loyalty program for a restaurant. The memberId can be an email address or phone number. If Splio pairing is enabled, this also ensures a customer account exists for the brand. Primarily used by Kiosk and POS.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.

Request Body

json
{
  "memberId": "john.doe@example.com",
  "optIns": [
    1,
    2
  ]
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
memberIdstring"john.doe@example.com"Identifier of the associated member.
optInsarray[…]List of opt ins entries.
optIns[]integer1The opt ins value.

Response

json
{
  "status": 200,
  "code": "loyalty_card_found",
  "message": "A loyalty card has been found for that code.",
  "data": {
    "id": "member_abc123",
    "customerId": 5001,
    "externalId": "ext_789",
    "email": "john.doe@example.com",
    "phone": null,
    "points": 0,
    "tierName": null
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"loyalty_card_found"Machine-readable application code for the result.
messagestring"A loyalty card has been found for that code."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.idstring"member_abc123"The id value.
data.customerIdinteger5001Identifier of the customer.
data.externalIdstring"ext_789"Identifier in the connected external system.
data.emailstring"john.doe@example.com"Email address.
data.phonenullnullPhone number.
data.pointsinteger0The points value.
data.tierNamenullnullThe tier name value.

POST/v1/loyalty/restaurants/{restaurantId}/customers/{customerId}/enrollmentEnroll Customer in Loyalty

Enroll an existing customer into the loyalty program for a restaurant. The customer must already exist and the request must come from the customer themselves. The enrollment method (phone or email) depends on the provider register configuration.

Parameters

NameTypeRequiredDescription
restaurantIdintegerYesThe unique identifier of the restaurant.
customerIdintegerYesThe unique identifier of the customer to enroll.

Response

json
{
  "status": 200,
  "code": "module_loyalty_updated",
  "message": "A module loyalty has been updated.",
  "data": {
    "id": "member_abc123",
    "customerId": 5001,
    "externalId": "ext_789",
    "email": "john.doe@example.com",
    "points": 0
  }
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
statusinteger200HTTP status code returned by the API.
codestring"module_loyalty_updated"Machine-readable application code for the result.
messagestring"A module loyalty has been updated."Human-readable result message. Do not use this value for program logic.
dataobject{…}Endpoint-specific response payload.
data.idstring"member_abc123"The id value.
data.customerIdinteger5001Identifier of the customer.
data.externalIdstring"ext_789"Identifier in the connected external system.
data.emailstring"john.doe@example.com"Email address.
data.pointsinteger0The points value.

POST/v1/loyalty/pairingPair Customer with Loyalty Program

Create a new customer account and pair it with the loyalty program in a single step. This is a public endpoint (no authentication required) that handles both customer creation and loyalty registration.

Request Body

json
{
  "restaurantId": 1001,
  "firstName": "John",
  "lastName": "Doe",
  "email": "john.doe@example.com",
  "password": "securePassword123",
  "birthdate": "1990-05-15",
  "gender": "male",
  "phone": "+33612345678",
  "country": "FR",
  "optinLoyalty": true,
  "optinMarketing": false,
  "customFields": {
    "favoriteFood": "pizza"
  },
  "optInLists": [
    1,
    2
  ]
}
Request Body Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
restaurantIdinteger1001Identifier of the restaurant.
firstNamestring"John"The first name value.
lastNamestring"Doe"The last name value.
emailstring"john.doe@example.com"Email address.
passwordstring"securePassword123"The password value.
birthdatestring"1990-05-15"The birthdate value.
genderstring"male"The gender value.
phonestring"+33612345678"Phone number.
countrystring"FR"The country value.
optinLoyaltybooleantrueThe optin loyalty value.
optinMarketingbooleanfalseThe optin marketing value.
customFieldsobject{…}Object containing custom fields fields.
customFields.favoriteFoodstring"pizza"The favorite food value.
optInListsarray[…]List of opt in lists entries.
optInLists[]integer1The opt in lists value.

Response

json
{
  "id": "member_abc123",
  "customerId": 5001,
  "externalId": "ext_789",
  "cardNumber": "CARD-001234",
  "email": "john.doe@example.com",
  "phone": "+33612345678",
  "points": 0
}
Response Properties

Every field in the example is listed below. Explicit requiredness is shown when the endpoint contract defines it.

PropertyTypeExampleDescription
idstring"member_abc123"The id value.
customerIdinteger5001Identifier of the customer.
externalIdstring"ext_789"Identifier in the connected external system.
cardNumberstring"CARD-001234"The card number value.
emailstring"john.doe@example.com"Email address.
phonestring"+33612345678"Phone number.
pointsinteger0The points value.