Customer creation

You can create a customer on the Shaype platform in two ways:

  • With Shaype KYC feature
  • Without Shaype KYC feature (assuming you are responsible for the KYC for your customer).

Steps to create a customer with personal account


Create Case - (Required only with KYC)

Create a case is the first step to onboard a customer on the platform when using Shaype KYC functionality

If using KYC, the field scanCase.id from the create case endpoint, should be sent to identityVerificationCaseId in the create customer request. This will link the id verification case to the customer creation request.

API reference: Create new identity verification case and first submission

Sample payloads


Create Customer

Customer is the entry point for a user in the Shaype platform, it allows you to then create accounts and cards.

We have a single endpoint to create a customer, distinguished by the skipKyc field in the request. The default value for skipKyc field is false.

ATTRIBUTESDESCRIPTION
Address The residential address of the individual
Customer Details The full name and date of birth of the individual
Email Address
Phone Number The phone number of the individual, both Australian and International numbers are support.

This must be a mobile not a landline as it is used for 2FA security, text notifications and use in 3DS for applicable Visa transactions.

The customer will become active automatically when the KYC is successful

API reference: Create Customer

Sample payloads


Activate Customer - (Required only with non-KYC)

The default the customer status would be PENDING_APPROVAL. This means that the application is under evaluation or the customer has not yet completed all required onboarding steps.

If Shaype is doing the KYC for you, the platform will execute this step automatically at the end of a successful KYC procedure.

If you are not using Shaype KYC, you will need to manually update the customer status to ACTIVE.

For all possible customer status detail please refer to Customer Status

API reference: Update Customer status

Sample payloads


Create an Account

Create an account for the customer.

productId is required to an create an account. What is productId and to retrieve the productId please refer product doc.

API reference: Create Account

Sample payloads


Update Account Risk Level

Risk levels are one of the parameters arranged with our Product Team when integration options are discussed, so the exact meaning of this option might vary.

The default functionality defines two risk levels: HIGH and LOW - with HIGH assigned by default and denoting accounts that didn't go through all regulatory checks yet. Once you're ready to allow the account to transact, you should set its risk level to LOW. Before that, all movement of funds will be blocked.

API reference: Update Account Risk Level

Sample payloads



Duplication Checks on Customer Creation

The Shaype platform does not support creating a customer with the same details under a single client. To prevent customer duplication, the platform has internal checks on the following fields in the Create Customer API request:

  • Email Address
  • Phone Number
  • Combination of Document Type and Number
  • Combination of First Name, Last Name and DOB

Some of our duplicate checks can be disabled. This might be useful to test our KYC process in staging with the same user and set of documents. Please contact the Shaype Client Integration team to disable these checks.

ConfigurableNot configurable
firstName + lastName + dateOfBirthphoneNumber
identityDocumentNumber + identityDocumentTypeemail

📘

Points to Note

  • If a duplicate is found, customer creation will fail.
  • If a customer is INACTIVE, they will be excluded from duplicate checks.

Customer Operations

Get All Customers

  • API retrieves a list of all customers belongs to the client. This endpoint is useful for obtaining a list of customers, including their details.

API definition: Get All Customer

Search Customers

  • The search endpoint allows you to search customer based on various criteria such as dateOfBirth, email, firstName, phoneNumber etc. Please refer API definition page for details.

API definition: Search Customer

Get Customer by ID

  • Retrieves the details of a specific customer based on their unique customerId.

API definition: Get Customer by ID

Update Customer Details

  • Updates the details of a specific customer using their unique customer Id except customer status.
  • This operation also sends a webhook event with the type CUSTOMER_DETAILS_CHANGE along with the customerDetailsChangeEvent object.

API definition: Update Customer Details

Update Customer Status

  • Updates the status of a specific customer using their unique customerId. Please refer to Customer Status section for all status.
  • This operation also sends a webhook event with the type CUSTOMER_STATUS_UPDATED along with the customerStatusUpdatedEvent object.

API definition: Update Customer Status

Block Customer

  • Block a specific customer using their unique customerId. Blocking will change the customer status to BLOCKED and sends a webhook event with the type CUSTOMER_STATUS_UPDATED. Requesting client to handle the blocking scenario at their end.

API definition: Block Customer

Unblock Customer

  • Unblock a blocked customer using their unique customerId. Unblock customer will change the customer status to ACTIVE and sends a webhook event with the type CUSTOMER_STATUS_UPDATED. Requesting client to handle the unblocking scenario at their end.

API definition: Unblock Customer


Webhook Events

Shaype platform will send various below webhook events on different operations performed on customers and accounts. Please find the sample events payloads

ONBOARDING_PASSED

{
  "customerHayId": "42f5b631-edd5-00f0-9f17-cd17da0ca0d9",
  "idempotencyKey": "42f5b631-edd5-00f0-9f17-cd17da0ca0d9",
  "type": "ONBOARDING_PASSED",
  "firebaseDeviceToken": "fD3ZhPHr3UxGsi81Xc_zGt:APA91bFuuqvv4pUJ39sXE79RJK3kBvgYwUmfH2E9F9wUdlgurBkvWNyxv8vsLL93RCKKyyaZ9i4hk5rM1oxgCvTH6rtOozmoAge0_VPdJg32eNVHvdfZlKpAUhsaPKtV3JfriZsdf234sd"
}

ONBOARDING_FAILED

{
  "customerHayId": "c1c476dd-6c1a-23dd-8e4f-a4229f9563bf",
  "idempotencyKey": "3971e549-a178-23dd-9d76-737328a6ce40",
  "type": "ONBOARDING_FAILED",
  "firebaseDeviceToken": "dbRQCIhFLEsIn3_SSDE8r9:APA91bHTpCuhS6sjHG6uRMnP_tn7mOmy0QebEprYDQPVoJf7oXspxhagt9Ai1OuDqZHssU7BMk-sxII85WcFoxqruW8NXCykwvPzyjTh9UiYbKYdUdS6tg-TPsaPuAeQGQblasdd32sdfsZ",
  "onboardingFailedEvent": {
    "state": "KYC_AML_SCAN",
    "isSubmissionFailure": true
  }
}

CUSTOMER_STATUS_UPDATED

{
  "customerHayId": "74b7aaa9-dwe3-4a09-a618-f1bd405c3ead",
  "idempotencyKey": "f7ec6a11-df3t-4eff-a5d9-31e948e8210f",
  "type": "CUSTOMER_STATUS_UPDATED",
  "actionOwner": "CLIENT",
  "customerStatusUpdatedEvent": {
    "customerStatus": "ACTIVE"
  }
}

ACCOUNT_STATUS_CHANGE

{
  "customerHayId": "0964ac36-a1dd-8dj8-b0a1-f01eca1941b4",
  "idempotencyKey": "ff1531ca-d069-6537-bede-95db70c12a91",
  "type": "ACCOUNT_STATUS_CHANGE",
  "actionOwner": "PLATFORM",
  "accountStatusChangeEvent": {
    "accountHayId": "92000f75-11f6-4ec1-h892-6a98591ab95f",
    "accountStatus": "APPROVED"
  }
}