Customer registration
Customers can create accounts that let them authorize and perform operations such as redeeming coupons, making purchases, managing their own data, and more. The data is available for you to see and modify in the customer’s profile; the primary unique identifier in Synerise is the email address (unless configured differently, see Setting non-unique emails).
A customer can also exist in the database if they don’t have a self-managed account.
For more details on profiles, see Customer profiles.
Registering a customer with RaaS
Registration as a Service (RaaS) creates an account in Synerise without any third-party integrations. It may be configured to require email confirmation. The basic request only requires an email, password, an UUID, but you can provide additional information. See method reference.
To authenticate this request, you need a JWT of an anonymous profile.
curl --location --request \
POST 'http://{SYNERISE_API_BASE_PATH}/sauth/clients/registered' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Api-Version: 4.4' \
--header 'Authorization: Bearer eyJhb...Ndo' \
--data-raw '{
"email":"sampleclient@synerise.com",
"password":"strongpassword",
"uuid":"b3f56868-9667-4843-a8e5-0509456baa9b"
}'
Alternatively, you can use the authentication endpoint. If an account doesn’t exist, the authentication endpoint creates one.
Account activation
Synerise RaaS may be configured for three types of account confirmation:
- Automatic: the account is ready to use immediately. The
snrs_email_confirmed
attribute in the customer is FALSE. - Email confirmation required: the account is ready to use, but confirmation is required to set the
snrs_email_confirmed
attribute in the customer profile to TRUE. - Email activation required: the account cannot be accessed until it is confirmed. Activation sets the
snrs_email_confirmed
attribute in the customer profile to TRUE. - PIN activation: the customer receives a PIN code instead of a confirmation link. Activation sets the
snrs_email_confirmed
attribute in the customer profile to TRUE.
Setting the activation method
- Get the current settings for your workspace.
Method reference available here.curl --location --request GET 'https://{SYNERISE_API_BASE_PATH}/sauth/settings/general' \ --header 'Authorization: Bearer eyJh...qU'
- From the response, copy the current settings.
- Change the copied settings and send an update request.
Method reference available here. The following is an example of enabling PIN activation.Important: Remember about additional settings for each confirmation type, such as PIN length or confirmation redirect link.curl --location --request POST 'https://{SYNERISE_API_BASE_PATH}/sauth/settings/general' \ --header 'Authorization: Bearer eyJ...JwqU' \ --header 'Content-Type: application/json' \ --data-raw '{ "registrationType": "REQUIRE_PIN_CONFIRMATION", "tokenLifetimeInSeconds": 3600, "confirmationRedirectLink": null, "voucherPoolUuid": null, "allowOverwriteCustomIdentify": false, "allowEmailChangeFromWebForm": false, "pinConfirmationType": "ON_CONFLICT_WITH_EXTERNAL_ACCOUNT", "pinConfirmationLength": 6, "pinConfirmationValidInSeconds": 300, "allowPinResendFromDifferentDeviceId": false }'
Confirming the account by PIN
Confirming the account by PIN has two modes, selected with the pinConfirmationType
setting:
ON_CONFLICT_WITH_EXTERNAL_ACCOUNT
(default setting) requires the PIN only if an account with the same unique identifier already exists and was registered with a third-party Identity Provider.EVERYONE
requires the PIN for all registrations.
Activating/confirming the account
Method reference available here.
The activation request must always be sent from last device that requested a PIN. If you re-send a PIN from a different device than the one that sent the registration request, the activation request must be made from the device that requested re-sending the PIN.
Prerequisites
- Email sender integration must be enabled.
- The confirmation mail template must include a
{{pin_code}}
insert.
The PIN is sent to the customer’s email automatically after registration.
curl --request POST
--url https://{SYNERISE_API_BASE_PATH}/sauth/clients/activation/by-pin-code/confirmation
--header 'Authorization: Bearer eyJ...JwqU'
--header 'content-type: application/json'
--data '{
"deviceId":"5966145e-412d-44db-b826-7d53e6cfd300",
"email":"john.doe@synerise.com",
"pinCode":"123456",
"uuid":"07243772-008a-42e1-ba37-c3807cebde8f"
}'
Result: The account is activated/confirmed and ready to use.
Re-sending an activation/confirmation PIN
Method reference available here.
If the PIN expired, re-send it.
By default, you can only request the re-sending from the last device that requested a PIN previously. If you want to allow requesting a PIN from other devices, set allowPinResendFromDifferentDeviceId
to TRUE.
The activation request can only be sent from the last device that requested a PIN, regardless of the settings.
Prerequisites
- Email sender integration must be enabled.
- The confirmation mail template must include a
{{pin_code}}
insert.
curl --request POST
--url https://{SYNERISE_API_BASE_PATH}/sauth/clients/activation/by-pin-code/request
--header 'Authorization: Bearer eyJ...JwqU'
--header 'content-type: application/json'
--data '{
"deviceId":"5966145e-412d-44db-b826-7d53e6cfd300",
"email":"john.doe@synerise.com",
"uuid":"07243772-008a-42e1-ba37-c3807cebde8f"
}'
Result: The activation PIN is re-sent.
Confirming the account by activation link
Activating/confirming the account
Method reference available here.
Prerequisites:
Email sender integration must be enabled.
The token is sent to the customer’s email automatically after registration.
curl --request POST
--url https://{SYNERISE_API_BASE_PATH}/sauth/clients/activation/confirmation
--header 'authorization: Bearer eyJh...JxkM5o'
--header 'content-type: application/json'
--data '{
"token":"eyJh...JwcR4z"
}'
Result: The account is activated/confirmed and ready to use.
Requesting a new activation/confirmation token
Method reference available here.
Prerequisites:
Email sender integration must be enabled.
If the activation token expires or the message was not delivered, you can request a new token.
curl --request POST
--url https://{SYNERISE_API_BASE_PATH}/sauth/clients/activation/request
--header 'authorization: Bearer eyJh...JxkM5o'
--header 'content-type: application/json'
--data '{
"email":"sampleclient@synerise.com"
}'
Result: The email with the token is re-sent.
Registering customers with third-party mechanisms
You can register a customer by using Facebook, Google sign-in, OAuth, or Sign in with Apple.
- Registering a customer with Facebook Login requires that your application is integrated with Facebook. For more details, see the Facebook Developer Documentation.
- Registering a customer with Sign in with Apple requires that your application is integrated with Sign in with Apple. For more details, see the Apple Developer Documentation.
- Registering a customer with Google requires that your application is integrated with Google. For more details, see the Google Identity documentation.
- Registering with OAuth creates a customer account in Synerise, but a customer account must also exist in your own database to serve as a basis for OAuth authentication.
The following is a basic request for Facebook authentication, but you can provide more information or change the Identity Provider. See method reference.
accessToken
is the token that is sent by Synerise backend to your OAuth implementation.
curl --location --request \
POST 'https://{SYNERISE_API_BASE_PATH}/sauth/auth/v3/login/client' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"apiKey":"01234abc-1234-5678-9abc-def012345678",
"identityProvider": "FACEBOOK",
"identityProviderToken": "70fb8a02-0a6e-48ca-96d5-0212ee140eae"
}'
The response is an authentication token.