Customer onboarding

Customer onboarding can be used to initiate an on-boarding process of a customer into the merchant’s loyalty programme

Customer onboarding can be used to initiate an on-boarding process of a customer into the merchant’s loyalty programme.

Initially, a CardAcquisition request is used to collect the customer identity. If there is no match, the cashier may ask the customer if he wants to become a member. If yes, the following steps are performed:

  1. At the POI:
  • The customer is prompted in the terminal to accept the terms & conditions and to enter the mobile number
  • A payment is initiated (same as a normal payment, potentially with a discounted amount), alternatively an EnableService request is initiated to abort the transaction.
  1. Afterwards, out of bounds:
  • The ECR sends the mobile number and the card reference collected i the CardAcquisition request to the loyalty programme system.
  • The loyalty programme system sends an SMS with an onboarding link to the customer.
  • Via the link, the customer onboards to the loyalty programme and is assigned a loyalty id.
  • The loyalty programme system sends an enrollment request, including the loyalty id and the CardAcquisition card reference, to Aera's loyalty lookup service.
  • The Aera lookup service enrolls the loyalty id and links it to the card used during the CardAcquisition.

For future payments using this card, the customer is recognised automatically via Aera's loyalty lookup service.

For step 1a the following request/reponse pair is used to display terms & condtions and request input of mobile number:

Example Input request

{
  "SaleToPOIRequest": {
    "MessageHeader": {
      "ProtocolVersion": "3.1",
      "ServiceID": "2",
      "MessageClass": "Device",
      "MessageCategory": "Input",
      "MessageType": "Request",
      "DeviceID": "ABC123",
      "SaleID": "ECR123",
      "POIID": "AT12345"
    },
    "InputRequest": {
      "DisplayOutput": {
        "Device": "CustomerDisplay",
        "InfoQualify": "Display",
        "OutputContent": {
          "OutputFormat": "Text",
          "OutputText": [
            {
              "Text": "Text row 1"
            },
            {
              "Text": "Text row 2"
            }
          ]
        }
      },
      "InputData": {
        "Device": "CustomerInput",
        "InfoQualify": "Input",
        "InputCommand": "DigitString"
      }
    }
  }
}
PropertyDescriptionMandatory / Optional
InputRequestMandatory
DisplayOutputMandatory
DeviceAlways "CustomerDisplay"Mandatory
InfoQualifyAlways "Display"Mandatory
OutputContentMandatory
OutputFormat"Text" to indicate text formatMandatory
OutputTextList, one per text rowMandatory
TextRow textMandatory
InputDataMandatory
DeviceAlways "CustomerInput"Mandatory
InfoQualifyAlways "Input"Mandatory
InputCommand"DigitString" (requesting digit input like a phone number)Mandatory

Example Input response

{
  "SaleToPOIResponse": {
    "MessageHeader": {
      "ProtocolVersion": "3.1",
      "ServiceID": "2",
      "MessageClass": "Device",
      "MessageCategory": "Input",
      "MessageType": "Response",
      "DeviceID": "ABC123",
      "SaleID": "ECR123",
      "POIID": "AT12345"
    },
    "InputResponse": {
      "OutputResult": {
        "Device": "CustomerDisplay",
        "InfoQualify": "Display",
        "Response": {
          "Result": "Success"
        }
      },
      "InputResult": {
        "Device": "CustomerDisplay",
        "InfoQualify": "Input",
        "Response": {
          "Result": "Success"
        },
        "Input": {
          "InputCommand": "DigitString",
          "DigitInput": "11223344"
        }
      }
    }
  }
}
PropertyDescriptionMandatory / Optional
InputResponseMandatory
OutputResultOne per DisplayOutput item of the request, and in the same orderMandatory
DeviceCopy from requestMandatory
InfoQualifyCopy from requestMandatory
ResponseMandatory
InputResultMandatory
DeviceCopy from requestMandatory
InfoQualifyCopy from requestMandatory
ResponseMandatory
InputMandatory
InputCommandCopy from requestMandatory
DigitInputMobile number entered by customerMandatory

Did this page help you?