Skip to main content

/member/register

Overview

This endpoint is used to register a new user into the loyalty program by collecting required personal data and consent flags.

When to Use This Endpoint

Use this endpoint during the first interaction with a customer when:

  • A customer opts into the loyalty program
  • A user signs up via POS, kiosk, or an online interface

Key Considerations

  • An SMS or email may be triggered automatically for confirmation or consent
  • All required consents (e.g., Terms of Use, GDPR) must be collected at registration time
  • Use this call to capture and store the user's communication preferences from the start

Request Details

FieldDescriptionTypeMandatory
phoneNumberPhone number of the new memberMemberY
emailEmail addressMemberY
firstNameFirst nameMemberY
lastNameLast nameMemberY
allowedSMSConsent to receive SMSMemberY
allowedEmailConsent to receive emailMemberY
termsOfUseTerms of use acceptedMemberY
gdprGDPR consentMemberY
birthdayMember's date of birthMemberY

Method & URL

POST /member/register

Headers

HeaderTypeRequiredDescription
x-api-keystringYesAPI key used for authentication
x-source-typestringYesOrigin of the request (POS, Web, Kiosk, etc.)
x-source-namestringYesName of the client or integration system
x-pos-idstringYesUnique POS terminal identifier
x-branch-idstringYesIdentifier for the business branch or location

Request Example

curl --location --request POST 'https://dev-pos-api.fidelizacion.app/v1/member/register' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {{api-key}}' \
--header 'x-source-type: POS' \
--header 'x-source-name: pos_terminal_01' \
--header 'x-pos-id: POS001' \
--header 'x-branch-id: BR001' \
--data-raw '{
"phoneNumber": "1234567890",
"email": "member@example.com",
"firstName": "John",
"lastName": "Doe",
"allowedSMS": true,
"allowedEmail": true,
"termsOfUse": true,
"gdpr": true,
"birthday": "1990-01-01"
}'

Success Response

{
"status": "success",
"data": {
"member": {
"phoneNumber": "1234567890",
"email": "member@example.com",
"firstName": "John",
"lastName": "Doe",
"allowedSMS": true,
"allowedEmail": true,
"termsOfUse": true,
"gdpr": true,
"birthday": "1990-01-01"
}
}
}

Error Response Examples

Missing Required Field

{
"status": "error",
"error": {
"code": "1001",
"message": "Missing required field: phoneNumber"
}
}

Member Already Exists

{
"status": "error",
"error": {
"code": "211",
"message": "Member already exists with the same phone number or email!"
}
}

Field Reference

FieldTypeDescription
phoneNumberstringPhone number of the new member
emailstringEmail address of the new member
firstNamestringFirst name
lastNamestringLast name
allowedSMSbooleanConsent to receive SMS
allowedEmailbooleanConsent to receive email
termsOfUsebooleanIndicates if terms of use were accepted
gdprbooleanIndicates if GDPR consent was given
birthdaystringBirthday in ISO format (YYYY-MM-DD)
  • Registering a new customer during checkout or onboarding
  • Capturing communication and consent preferences on initial interaction
  • Enabling future access to loyalty features such as /member/details and /payment