v1.4.0 Updated: Friday, October 28, 2022
Welcome to the IDMaml RESTful API. You can use our API to access all of IDMaml's services.
TEST URL: {{API_URL}} (All the examples in this documentation are based on Test Environment)
IDMaml is designed to help minimize the risks associated with money laundering and other illegal activities.
IDMaml platform and risk-mitigation solutions will help your organization build a robust compliance program while substantially reducing fraud and loss.
If you have any questions or comments, please let us know via our Support Portal.
The IDMaml API methodology is organized into four main sections:
As stated above, the IDMaml API authentication framework is built upon token-based authentication:
YYYY-MM-DD
Gender Options | |||
---|---|---|---|
female | f | ||
male | m |
We support only ISO 3166-1 alpha 2 country codes. Please visit this link to know more about country codes
Code | Description |
---|---|
200 - OK | The request was successful. If you are getting unexpected results, please check any Status or Error messages that have been returned in the response. If you believe there may be a problem, please raise a ticket with our Support team at https://idmerit.freshdesk.com/support/tickets/new. |
400 - Bad Request | The request could not be understood by the server. Please ensure the request is in the appropriate format and all necessary headers have been included. |
403 - Forbidden | The request was valid, but the requestor does not have appropriate permissions. Please ensure your username is correct and your access token is still valid. If your access token has expired, you may need to reauthenticate your credentials to get a new token. |
415 - Unsupported Media Type | The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format. |
500 - Internal Server Error | There was a back-end error when processing the request. Please ensure your request is in the correct format and retry. If you receive this error again, please raise a ticket with our Support team at https://idmerit.freshdesk.com/support/tickets/new. |
522 - Origin Connection Time-out | There was a back-end error when processing the request. Please resubmit the request. If you receive this error again, please raise a ticket with our Support team at https://idmerit.freshdesk.com/support/tickets/new. |
Please contact our support team at https://idmerit.freshdesk.com/support/tickets/new
Ping Test
curl -X GET \
-H 'Content-Type: application/json' \
'{{API_URL}}/v1.4/ping'
{
"status": true,
"status_code": 200,
"message": "Successfully Connected.",
}
Content-Type: application/json
Generate Token
Key | Value | |
---|---|---|
username |
{{username}} |
required |
password |
{{password}} |
required |
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username={{username}}' \
-d 'password={{password}}' \
'{{API_URL}}/v1.4/genToken'
{
"status": true,
"status_code": 200,
"issued": "{{issued}}",
"expires": "{{expires}}",
"access_token": "{{access_token}}",
"token_type": "bearer",
"username": "{{username}}",
}
Content-Type: application/json
Check Token / Authentication
curl -X GET \
-H 'Authorization: Bearer {{token}}' \
'{{API_URL}}/v1.4/auth'
{
"status": true,
"status_code": 200,
"message": "Token is valid.",
"expired_at": "2022-08-01 23:59:59",
}
Content-Type: application/json
Person Verification Service
The required fields to perform a match are:
Other fields you are able to match against are:
Key | Value | |
---|---|---|
request_id |
{{request_id}} |
required |
first_name |
{{first_name}} |
required |
last_name |
{{last_name}} |
required |
middle_name |
{{middle_name}} |
optional |
gender |
{{gender}} m / M / f / F / male / MALE / female / FEMALE |
optional |
dob |
{{dob}} yyyy-mm-dd |
optional |
age |
{{age}} |
optional |
address |
{{address}} |
optional |
city |
{{city}} |
optional |
state |
{{state}} |
optional |
zip |
{{zip}} |
optional |
country |
{{country}} |
optional |
name_type |
{{name_type}} p / P / c / C |
required |
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded ' \
-H 'Authorization: Bearer {{token}}' \
-d 'request_id={{request_id}}' \
-d 'first_name={{first_name}}' \
-d 'last_name={{last_name}}' \
-d 'middle_name={{middle_name}}' \
-d 'gender={{gender}}' \
-d 'dob={{dob}}' \
-d 'age={{age}}' \
-d 'address={{address}}' \
-d 'city={{city}}' \
-d 'state={{state}}' \
-d 'zip={{zip}}' \
-d 'country={{country}}' \
-d 'name_type={{name_type}}' \
'{{API_URL}}/v1.4/verify'
{
"status": true,
"status_code": 200,
"data": {
"first_name": "{{first_name}}",
"last_name": "{{last_name}}",
"middle_name": "{{middle_name}}",
"dob": "{{dob}}",
"gender": "{{gender}}",
"city": "{{city}}",
"state": "{{state}}",
"country": "{{country}}",
"address": "{{address}}"
},
"transaction_id": "16300592946128bb1ec25ecuyMrz",
"request_id": "00000",
}
Content-Type: application/json
Company Verification Service
The required fields to perform a match are:
Other fields you are able to match against are:
Key | Value | |
---|---|---|
request_id |
{{request_id}} |
required |
company_name |
{{company_name}} |
required |
name_type |
{{name_type}} p / P / c / C |
required |
address |
{{address}} |
optional |
city |
{{city}} |
optional |
state |
{{state}} |
optional |
zip |
{{zip}} |
optional |
country |
{{country}} |
optional |
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: Bearer {{token}}' \
-d 'request_id={{request_id}}' \
-d 'company_name={{company_name}}' \
-d 'name_type={{name_type}}' \
-d 'address={{address}}' \
-d 'city={{city}}' \
-d 'state={{state}}' \
-d 'zip={{zip}}' \
-d 'country={{country}}' \
'{{API_URL}}/v1.4/verify'
{
"status": true,
"status_code": 200,
"data": {
"company_name": "{{company_name}}",
"city": "{{city}}",
"state": "{{state}}",
"country": "{{country}}",
"zip": "{{zip}}",
"address": "{{address}}"
},
"transaction_id": "xxxxxxxxxxxxxxxxxxxxxxx",
"request_id": "00001",
}
Content-Type: application/json
Person Info(JSON) Service
The required fields to perform a match are:
Other fields you are able to match against are:
Key | Value | |
---|---|---|
request_id |
{{request_id}} |
required |
first_name |
{{first_name}} |
required |
last_name |
{{last_name}} |
required |
dob |
{{dob}} yyyy-mm-dd |
optional |
age |
{{age}} |
optional |
middle_name |
{{middle_name}} |
optional |
response_type |
{{response_type}} json / JSON |
optional |
name_type |
{{name_type}} p / P / c / C |
required |
monitoring |
{{monitoring}} (string) true / false |
optional |
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: Bearer {{token}}' \
-d 'request_id={{request_id}}' \
-d 'first_name={{first_name}}' \
-d 'last_name={{last_name}}' \
-d 'dob={{dob}}' \
-d 'age={{age}}' \
-d 'middle_name={{middle_name}}' \
-d 'response_type={{response_type}}' \
-d 'name_type={{name_type}}' \
-d 'monitoring={{monitoring}}' \
'{{API_URL}}/v1.4/info'
{
"status": true,
"status_code": 200,
"data": {
"name": "{{person full name}}",
"id": "{{number}}",
"status": "{{status}}",
"dob": "{{dob}}",
"type": "{{type}}",
"riskscore": "{{riskscore}}",
"registered_events": "{{registered_events}}",
"addresses": "{{addresses}}",
"attributes": "{{attributes}}",
"sourceurl": "{{sourceurl}}",
"aliases": "{{aliases}}",
"positions": "{{positions}}",
"relation": "{{relation}}",
"source": "{{source}}"
},
"transaction_id": "xxxxxxxxxxxxxxxxxxxxxxx",
"request_id": "00001",
}
Content-Type: application/json
Company Info(JSON) Service
The required fields to perform a match are:
Other fields you are able to match against are:
Key | Value | |
---|---|---|
request_id |
{{request_id}} |
required |
company_name |
{{company_name}} |
required |
name_type |
{{name_type}} p / P / c / C |
required |
response_type |
{{response_type}} json / JSON |
optional |
monitoring |
{{monitoring}} true / false / |
optional |
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: Bearer {{token}}' \
-d 'request_id={{request_id}}' \
-d 'company_name={{company_name}}' \
-d 'name_type={{name_type}}' \
-d 'response_type={{response_type}}' \
-d 'monitoring={{monitoring}}' \
'{{API_URL}}/v1.4/info'
{
"status": true,
"status_code": 200,
"data": {
"name": "{{company name}}",
"id": "{{number}}",
"status": "{{status}}",
"type": "{{type}}",
"riskscore": "{{riskscore}}",
"registered_events": "{{registered_events}}",
"addresses": "{{addresses}}",
"attributes": "{{attributes}}",
"sourceurl": "{{sourceurl}}",
"aliases": "{{aliases}}",
"positions": "{{positions}}",
"relation": "{{relation}}",
"source": "{{source}}"
},
"transaction_id": "xxxxxxxxxxxxxxxxxxxxxxx",
"request_id": "00001",
}
Content-Type: application/json
Person Info(PDF) Service
The required fields to perform a match are:
Other fields you are able to match against are:
Key | Value | |
---|---|---|
request_id |
{{request_id}} |
required |
first_name |
{{first_name}} |
required |
last_name |
{{last_name}} |
required |
dob |
{{dob}} yyyy-mm-dd |
optional |
age |
{{age}} |
optional |
middle_name |
{{middle_name}} |
optional |
response_type |
{{response_type}} pdf / PDF |
optional |
name_type |
{{name_type}} p / P / c / C |
required |
monitoring |
{{monitoring}} (string) true / false |
optional |
Steps to convert the API response to PDF
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: Bearer {{token}}' \
-d 'request_id={{request_id}}' \
-d 'first_name={{first_name}}' \
-d 'last_name={{last_name}}' \
-d 'dob={{dob}}' \
-d 'age={{age}}' \
-d 'middle_name={{middle_name}}' \
-d 'response_type={{response_type}}' \
-d 'name_type={{name_type}}' \
-d 'monitoring={{monitoring}}' \
'{{API_URL}}/v1.4/info'
{
"status": true,
"status_code": 200,
"data": {{base 64 encode string}},
"message": "person found.",
"expired_at": "2022-08-01 23:59:59",
"transaction_id": "xxxxxxxxxxxxxxxxxxxxxxx",
"request_id": "00001",
}
Content-Type: application/json
Company Info(PDF) Service
The required fields to perform a match are:
Other fields you are able to match against are:
Key | Value | |
---|---|---|
request_id |
{{request_id}} |
required |
company_name |
{{company_name}} |
required |
name_type |
{{name_type}} p / P / c / C |
required |
response_type |
{{response_type}} pdf / PDF |
optional |
monitoring |
{{monitoring}} true / false |
optional |
Steps to convert the API response to PDF
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: Bearer {{token}}' \
-d 'request_id={{request_id}}' \
-d 'company_name={{company_name}}' \
-d 'name_type={{name_type}}' \
-d 'response_type={{response_type}}' \
-d 'monitoring={{monitoring}}' \
'{{API_URL}}/v1.4/info'
{
"status": true,
"status_code": 200,
"data": {{base 64 encode string}},
"message": "person found.",
"expired_at": "2022-08-01 23:59:59",
"transaction_id": "xxxxxxxxxxxxxxxxxxxxxxx",
"request_id": "00001"
}
Content-Type: application/json
IDMERIT offers an optional API webhook that allows IDMeirt to automatically send PM (Portfolio Monitoring) alerts to client endpoints. This convenience feature removes the need for clients to code for extra API calls to call back into IDMerit to retrieve alerts.
To automatically receive alerts, IDMerit can be configured to point to a client endpoint (webhook). For integration, IDMerit supports REST API endpoints with login in credentials for added security.
Webhook URL: USER ENDPOINT URL
Authentication: Basic Auth
Parameters: