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:
- 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.
- 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"
}
}
}
}
| Property | Description | Mandatory / Optional |
|---|---|---|
| InputRequest | Mandatory | |
| DisplayOutput | Mandatory | |
| Device | Always "CustomerDisplay" | Mandatory |
| InfoQualify | Always "Display" | Mandatory |
| OutputContent | Mandatory | |
| OutputFormat | "Text" to indicate text format | Mandatory |
| OutputText | List, one per text row | Mandatory |
| Text | Row text | Mandatory |
| InputData | Mandatory | |
| Device | Always "CustomerInput" | Mandatory |
| InfoQualify | Always "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"
}
}
}
}
}| Property | Description | Mandatory / Optional |
|---|---|---|
| InputResponse | Mandatory | |
| OutputResult | One per DisplayOutput item of the request, and in the same order | Mandatory |
| Device | Copy from request | Mandatory |
| InfoQualify | Copy from request | Mandatory |
| Response | Mandatory | |
| InputResult | Mandatory | |
| Device | Copy from request | Mandatory |
| InfoQualify | Copy from request | Mandatory |
| Response | Mandatory | |
| Input | Mandatory | |
| InputCommand | Copy from request | Mandatory |
| DigitInput | Mobile number entered by customer | Mandatory |
Updated 13 days ago
Did this page help you?