LogoLogo
NymCardAPI catalogContact usnFront catalog
  • NYMCARD DOCUMENTATION
  • Get Started
    • nCore API Quick Tutorial
    • API Core Principles
    • Program management
      • Manage documents by APIs
      • User KYB process
      • Necessary parameters per user type
      • User ID verification by SDK
      • User KYC process
    • Issuance
      • Users
      • Cards
    • Issuing Physical Cards
      • Individual card issuance
      • Bulk card issuance
      • Card fulfillment
      • Card PIN management
      • Card replacement
      • Proxy number usage
    • Issuing Virtual Cards
      • Migration of virtual to physical card
    • Funding and transfers
      • Funding
      • Internal funding source
      • External funding source
        • From card
        • From bank account
        • Lean API flow
        • DAPI direct API flow
      • Transfers
      • Western Union APIs
    • Product Management
      • Card product
      • Balance limits
      • Velocity limits
      • Fees
      • Charges
      • Multi-currency
      • Authorization controls
        • Enhancements for MCC list management
    • Transactions
      • Payment ecosystem
      • Transaction lifecycle
      • Transaction types
      • Transaction endpoints scenarios
      • Multi-clearing process
    • Webhooks
      • Introduction to webhooks
      • nCore webhook events
      • Steps to configure a webhook
      • Webhooks samples
      • Webhook changes for simulation
      • Webhooks management
    • Security
      • PCI widget
      • 3D Secure
      • OTP SMS templates
    • Release announcements
      • Embedded Lending Release Notes
      • Changes in the release on 13/07/2023
      • Changes in the release on 23/05/2023
      • Changes in the release on 04/04/2023
  • For developers
    • nCore API catalog
    • nFront API catalog
Powered by GitBook
On this page
  • About KYC verification
  • KYC management

Was this helpful?

  1. Get Started
  2. Program management

User KYC process

PreviousUser ID verification by SDKNextIssuance

Last updated 9 months ago

Was this helpful?

About KYC verification

Know Your Customer (KYC) is the mandatory process of identifying and verifying the customer's identity before allowing them to have an account and perform transactions. KYC standards are designed to protect financial institutions against fraud, corruption etc. KYC process helps to establish customer identity and understand the nature of customers’ activities by performing KYC risk intelligence screening in order to qualify that the source of funds is legitimate.

KYC policies for individual user

nCore platform offers KYC process on two types of individual users given below:

S No.

User Type

Policy name

Prerequisite

1

Parent user

UAE_INDIVIDUAL_PRIMARY

KYC processing must be enabled at tenant level

2

Child user

UAE_INDIVIDUAL_SECONDARY

KYC processing must be enabled at tenant level and

Parent user must be KYC verified

Please contact the NymCard representative at to enable KYC processing.

Restrictions on user status

Following are the KYC restrictions based on user status.

When the user status is “PENDINGKYC”, “SUSPENDED” or “TERMINATED”, then operations like creating an account, creating a card and linking a card are not allowed. These operations are enabled for the user only when the user status is marked as “ACTIVE”. In addition to that, when the user status is “PENDINGKYC”, then the user can create a child user.

Note, that if KYC settings=true at the tenant level, the following parameters can not be updated for user with ACTIVE status:

How to simulate user KYC process

nCore sandbox environment provides a feature to simulate the KYC processing of user(s) and update appropriate user statuses based on the KYC result.

Once you create a request to perform a user KYC successfully by sending a POST request to /users/{id}/kyc endpoint, the platform starts a service which runs internally and performs the checks based on the policy you linked in the request. You can create more than one request. The internal service will pick all submitted KYC requests, process them and update the user and KYC statuses and give you a glance of the frictionless KYC processing which nCore platform provides in sandbox as well as in production environments. After a successful KYC processing you can create resources for the KYC verified users in a sandbox environment.

KYC Use cases

In the following ways you can simulate different KYC processing use cases.

Before creating a user, please make sure that the KYC service picks only those KYC requests when

  • The ‘require_kyc’ parameter is set as “true” at tenant level and

  • The user status is set as “PENDINGKYC” and

  • The KYC status is “SUBMITTED”

Positive use case:

To simulate a positive KYC processing case, please create a user with ‘last_name’ as “pass” as given below.

Now create a ‘perform KYC’ request as given below.

Note: the KYC service will process the request and return a response as “OK”.

Negative use case:

To simulate a negative KYC processing case, please create a user with a last_name as “fail” as given below.

Now create a ‘perform KYC’ request as given below.

Note: the KYC service will process the request and return a response as “FAILED”.

KYC webhooks

Once the API user submits the KYC request a webhook ‘KYC_RESULT’ is triggered and the notification is sent to the configured endpoint to notify the client.

You can create a corresponding webhook as shown in the below example.

Also when the user's status is changing internally based on the KYC processing, the webhook status is kept notifying the client.

You can create a corresponding webhook as shown in the below example.

KYC management

You can perform and manage KYC verification by using our APIs. Following are the APIs available at nCore platform for KYC management.

  • Perform KYC

  • Get KYC by ID

  • Search for KYC requests

Perform KYC of user

You can perform KYC on a user by sending a POST request to /users/{id}/kyc endpoint; where id is the user’s id to whom the KYC is requested. An example is given below.

Get KYC by ID

You can retrieve a specific KYC by sending a GET request to /users/kyc/{id} endpoint, where id is the KYC request ID.

Search for KYC requests

You can search for KYC requests by sending a POST request to /users/kyc:search endpoint along with the filter as shown below.

{

"first_name": "John", "last_name": "pass"

}

{

"kyc_policy": "UAE_INDIVIDUAL_PRIMARY"

}

{

"first_name": "John", "last_name": "fail"

}

{

"kyc_policy": "UAE_INDIVIDUAL_PRIMARY"

}

For further details, please refer to the section.

{ "kyc_policy": "UAE_INDIVIDUAL_PRIMARY" }

{ "query": "Transfer", "sort_by": "By name", "order_by": "asc", "matcher": [ "and" ], "filters": [ { "field": "ID", "operator": "any_of", "values": [ "21" ] } ], "cursors": { "after": "John Smith", "has_more": true }, "limit": 0 }

{ "endpoint": "", "events": [ "KYC_RESULT" ], "config": { "basic_auth_username": "username", "basic_auth_password": "password", "custom_headers": [ { "header_name": "apikey", "header_value": "306e38e4-54be-469f-beca-4297129289d6" } ], "created": "2021-05-27T18:48:00.074Z", "modified": "2021-05-27T18:48:00.074Z" } }

{ "endpoint": "", "events": [ "USER_STATUS_CHANGE" ], "config": { "basic_auth_username": "username", "basic_auth_password": "password", "custom_headers": [ { "header_name": "apikey", "header_value": "306e38e4-54be-469f-beca-4297129289d6" } ], "created": "2021-05-27T18:48:00.074Z", "modified": "2021-05-27T18:48:00.074Z" } }

POST /users
POST /users/{id}/kyc
POST /users
POST /users/{id}/kyc
POST /webhooks
https://example.com/
POST /webhooks
https://example.com/
Webhooks
POST /users/{id}/kyc
GET /users/kyc/{id}
POST /users/kyc:search
contact@nymcard.com