The first thing we need to consider is the exact needs of the project before jumping into programming. Please take a look at the article «How to Integrate NeoCheck«.
That said, NeoCheck provides an intuitive and powerful REST JSON API to integrate KYB (Know Your Business) and AML (Anti-Money Laundering) compliant verifications into your business or application. This API reference provides information about the available endpoints and how to interact with them.
For detailed technical specifications, please visit our Swagger portal: https://kyb.neocheck.net/Swagger/index.html
API Authentication
Access to the NeoCheck API is protected using OAuth2 authorization tokens. To authenticate your requests, you must call the authentication request with valid username and password credentials provided by the NeoCheck team. The endpoint for authentication is: /api/authorization/token
Note: The apiKey and apiSecret parameters are obsolete. Simply leave them empty as their content is ignored and only retained for backward compatibility.
Company Management
After authentication, you must search for the company to be verified. For this step, you can use two different endpoints:
Note: For all endpoints from this point onward, the following parameters must be set in the Headers. Authorization, you must include the token obtained in the previous authentication request. Example: Bearer YOUR_ACCESS_TOKEN. Content-Type, you must set the corresponding content type, application/json.
/api/v1/kyb/companies/lookup
- This GET method is used to find the available companies according to the following filters as query parameters:
- companyName: The name of the company
- vatNumber: The company’s VAT number
- country: The company’s country of registration
- The method returns a list in the form of an array containing the matching companies.
- This GET method is used to find the available companies according to the following filters as query parameters:
/api/v1/kyb/companies/{id}
- This GET method is used to obtain the KYB verification company using the provider identifier as a path parameter.
- It returns the KYB verification company corresponding to the identifier passed as a parameter.
KYB Verification Management
Once the information of the corresponding company is obtained, a call must be made to the POST /api/v1/kyb/verifications endpoint in order to create the KYB verification.
In the body, configure the following parameters:
- companyProviderIdentifier: (String)
- Description: Company ID provided by the provider.
- Example: «A12345678»
- manualCompanyData: (Object)
- Description: Object containing the company’s data.
- Example:
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"providerIdentifier": "string",
"businessName": "string",
"businessRegNumber": "string",
"vatNumber": "string",
"dateOfRegistration": "2025-08-06T13:14:06.612Z",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"postalCode": "string",
"locality": "string",
"province": "string",
"country": "string",
"currentAddress": true
}
- kybVerificationId: (Guid)
- Description: KYB verification ID.
- Example: «
00000000-0000-0000-0000-000000000000
»
- applicantId: (Guid)
- Description: applicant's ID.
- Example: «
00000000-0000-0000-0000-000000000000
»
- notificationApiUrl: (String)
- Description: URL to which verification status notifications will be sent.
- Example: "https://example.com/api/notifications"
- kybVerificationTicket: (Object)
- Description: Object in which the ticket and applicant data are added, such as name, email address, phone number, language, and whether the link will be sent directly to the applicant via email.
- Example:
{
"name": "string",
"emailAddress": "string",
"phoneNumber": "string",
"language": "string",
"sendLink": true
}
Full Body Example
{
"companyProviderIdentifier": "string",
"manualCompanyData": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"providerIdentifier": "string",
"businessName": "string",
"businessRegNumber": "string",
"vatNumber": "string",
"dateOfRegistration": "2025-08-06T13:14:06.612Z",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"postalCode": "string",
"locality": "string",
"province": "string",
"country": "string",
"currentAddress": true
},
"kybVerificationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"applicantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"notificationApiUrl": "string",
"kybVerificationTicket": {
"name": "string",
"emailAddress": "string",
"phoneNumber": "string",
"language": "string",
"sendLink": true
}
}
This endpoint will return a string as a response, which corresponds to the verification ID.
Obtain the link manually
If you want to obtain the ticket link manually, you can make a call to the following endpoint: /api/v1/kyb/verifications/{id}/ticket/link, where the id is the verification ID obtained in the previous step.
It will return a string corresponding to the ticket URL for the applicant.
Error Handling
Neocheck API returns standard HTTP status codes to indicate the success or failure of a request. Here are some common examples:
- 200 OK: The request was successful.
- 401 Unauthorized: Authentication failed or the API key is invalid. Review the token being used for the request.
- 404 Not Found: The requested resource was not found. Please check the endpoint you are targeting.
- 500 Internal Server Error: Internal system failure.