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​

Request Body​

FieldTypeRequiredDescription
newMemberDataobjectYesObject containing new member registration data

newMemberData Fields​

FieldTypeRequiredDescription
phoneNumberstringConditionalPhone number of the new member (required if email is absent)
emailstringConditionalEmail address (required if phoneNumber is absent)
firstNamestringNoFirst name
lastNamestringNoLast name
allowedSMSbooleanNoConsent to receive SMS
allowedEmailbooleanNoConsent to receive email
termsOfUsebooleanNoTerms of use accepted
gdprbooleanNoGDPR consent
birthdaystringNoMember's date of birth (ISO date format)
cardNumberstringNoPhysical card number
commonExtIdstringNoExternal identifier
preferredLanguagestringNoPreferred language as an ISO 639-1 two-letter code — the primary language subtag of a BCP 47 tag (e.g. en, es, ca)

Method & URL​

POST /member/register

See API Servers for the base URL to use for your brand (the example below uses a fixed dev URL for illustration).

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 '{
"newMemberData": {
"phoneNumber": "1234567890",
"email": "member@example.com",
"firstName": "John",
"lastName": "Doe",
"allowedSMS": true,
"allowedEmail": true,
"termsOfUse": true,
"gdpr": true,
"preferredLanguage": "en",
"birthday": "1990-01-01",
"cardNumber": "1234567890123456"
}
}'

Success Response​

{
"status": "success",
"member": {
"membershipKey": "abc123",
"commonExtId": "EXT-001",
"status": "active",
"phoneNumber": "1234567890"
}
}

Error Response Examples​

Member Already Exists​

{
"status": "error",
"error": {
"code": "204",
"message": "Member already exists with same phone number"
}
}
{
"status": "error",
"error": {
"code": "205",
"message": "Member already exists with same email"
}
}

Cannot Register Member​

{
"status": "error",
"error": {
"code": "203",
"message": "Cannot register member (DB error)"
}
}

Error Codes​

CodeDescription
203Cannot register member (DB error)
204Member already exists with same phone number
205Member already exists with same 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)
cardNumberstringPhysical card number of the member
commonExtIdstringExternal identifier
preferredLanguagestringPreferred language as an ISO 639-1 two-letter code — the primary language subtag of a BCP 47 tag (e.g. en, es, ca)
  • 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