To prevent a user from gaining access to data on the core outside of their privilege, a banking platform may send customer PII and a Customer ID to register an association between a customer on the platform and a customer on the Smiley core. EncoreTech will store the Customer ID and a Smiley delegate reference ID, which will be used on requests made to the core.
Authentication
To register a customer, please first authenticate with EncoreTech. Please see the Authentication section for instructions.
Registration
Once you have an appropriate access token with the 'core/smiley' scope, you may use that token to register a session.
To register a session for a customer, there are two approaches available. In the first method, you will require the relevant customer Personally Identifiable Information (PII) to establish a connection with the customer in the Smiley core system. This information typically includes the customer's social security number (or TIN), account number, and birth date. Additionally, you will need the unique customer ID from the banking platform to associate with the customer.
Alternatively, you can use the customer key associated with that particular customer in the Smiley core system. Similar to the process described above for new customer registration, you will still need the unique customer ID from the banking platform to associate with the customer.
Sample Request 1:
curl --location --request POST 'https://uat.encoretech.io/core/sessions' \
--header 'Content-Type: application/json' \
--data-raw '{
"demographics": {
"socialSecurityNumber": "string",
"accountNumber": "string",
"birthDay": "string"
},
"registration": {
"customerId": "string"
}
}'
Sample Request 2:
curl --location --request POST 'https://uat.encoretech.io/core/sessions' \
--header 'Content-Type: application/json' \
--data-raw '{
"customer": {
"customerKey": "string"
},
"registration": {
"customerId": "string"
}
}'
Sample Response:
{
"name": "Success",
"className": "Success",
"message": "Success",
"data": {customerKey: "test-customer-key" },
"code": 200
}
When you have successfully registered a session, the customer ID, delegate reference ID and expiration DateTime are returned by Smiley and stored by EncoreTech. This is a backend process that does not need to be accounted for by the banking platform. Once a customer is registered, authentication to the Smiley core will be handled on behalf of the platform.
Session Handling
Registration is a one-time setup. Once it is complete, you will send the customer ID with all subsequent API calls. The active delegate reference ID is retrieved by EncoreTech using this customer ID and sent to the Smiley core for session authentication.
Before a call to the Smiley core is made, EncoreTech checks the expiration DateTime of the active delegate reference ID. If the delegate reference ID has expired, a new session will be started. Starting a new session returns a new active delegate reference ID to be stored and used by EncoreTech. This process is seamless and does not cause any disruption to calls made by the banking platform.
API Calls
Once you are registered, you are able to use your customer ID against the Smiley core through EncoreTech APIs. To do this, pass in the customerID where appropriate for the API (query string or request body).
Sample request:
curl --location -g --request GET 'https://uat.encoretech.io/core/accounts?customerId={{customerId}}'
Sample Response:
{
"name": "Success",
"className": "Success",
"message": "Success",
"data": [
{
"id": "",
"customerKey": "",
"guid": "",
"nickname": "Savings",
"accountReferenceId": "",
"type": "S",
"currentBalance": 0,
"availableBalance": 0,
"interestRate": 0.04,
"accruedInterest": 0,
"yearToDateInterest": 0,
"paidYearToDateInterest": 0,
"pastDueAmount": 0,
"creditLimit": 0,
"availableCredit": 0,
"originationDate": "2022-11-14T00:00:00",
"nextPaymentDate": "0001-01-01T00:00:00",
"maturityDate": "0001-01-01T00:00:00",
"productCode": "I53",
"isDefault": false,
"hasCard": false,
"receiveEmailNotices": "Y",
"receiveEmailStatements": "Y",
"receivePaperNotices": "N",
"receivePaperStatements": "N",
"authorizationCode": "B",
"originalBalance": 0
}
],
"code": 200
}