### Create KYC Protect Profile Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/documentation/processflows/basicintegration Profiles are essential for organizing searches, enabling monitoring, and maintaining audit trails. This example shows the creation of a company profile. ```json { "name": "Creditsafe Ltd", "type": "company", "details": { "legalName": "Creditsafe Ltd" } } ``` -------------------------------- ### GET /compliance/kyc-protect/kycMonitoring/profiles/{profileId}/alerts Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/global-monitoring Gets a list of KYC alerts by profile. ```APIDOC ## GET /compliance/kyc-protect/kycMonitoring/profiles/{profileId}/alerts ### Description Gets a list of KYC alerts associated with a specific profile. ### Method GET ### Endpoint /compliance/kyc-protect/kycMonitoring/profiles/{profileId}/alerts ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier of the profile. #### Query Parameters None #### Request Body None ### Request Example ``` GET /compliance/kyc-protect/kycMonitoring/profiles/profile123/alerts ``` ### Response #### Success Response (200) - **alerts** (array) - A list of KYC alerts for the specified profile. - **alertId** (string) - The unique identifier for the alert. - **timestamp** (string) - The timestamp when the alert was generated. - **details** (string) - Details about the alert. - **status** (string) - The current status of the alert (e.g., "open", "closed"). #### Response Example ```json { "alerts": [ { "alertId": "alert789", "timestamp": "2023-10-27T10:00:00Z", "details": "Company name mismatch detected.", "status": "open" } ] } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/profiles/alerts/metrics Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-profile-management Returns a list of KYC and AML alert metrics on profiles. ```APIDOC ## GET /compliance/kyc-protect/profiles/alerts/metrics ### Description Returns a list of KYC and AML alert metrics on profiles. ### Method GET ### Endpoint /compliance/kyc-protect/profiles/alerts/metrics ### Response #### Success Response (200) - **metrics** (object) - An object containing alert metrics. - **totalAlerts** (integer) - The total number of alerts. - **kycAlerts** (integer) - The number of KYC alerts. - **amlAlerts** (integer) - The number of AML alerts. - **profilesWithAlerts** (integer) - The number of profiles with at least one alert. #### Response Example ```json { "metrics": { "totalAlerts": 150, "kycAlerts": 50, "amlAlerts": 100, "profilesWithAlerts": 75 } } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/profiles/{profileId}/schedules/{scheduleId} Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-profile-management Returns a schedule by profileId and scheduleId. ```APIDOC ## GET /compliance/kyc-protect/profiles/{profileId}/schedules/{scheduleId} ### Description Returns a schedule by profileId and scheduleId. ### Method GET ### Endpoint /compliance/kyc-protect/profiles/{profileId}/schedules/{scheduleId} ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier of the profile. - **scheduleId** (string) - Required - The unique identifier of the schedule. ### Response #### Success Response (200) - **scheduleId** (string) - The unique identifier of the schedule. - **profileId** (string) - The identifier of the profile the schedule is linked to. - **scheduleDate** (string) - The date and time the schedule is set to run. - **modifiedDate** (string) - The date and time the schedule was last modified. #### Response Example ```json { "scheduleId": "scheduleA", "profileId": "profile123", "scheduleDate": "2023-11-01T09:00:00Z", "modifiedDate": "2023-10-26T15:30:00Z" } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/batchUploads Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/batch-uploads Retrieves a list of all requested batch uploads. ```APIDOC ## GET /compliance/kyc-protect/batchUploads ### Description Returns a list of uploads that have been requested. ### Method GET ### Endpoint /compliance/kyc-protect/batchUploads ### Parameters #### Query Parameters None #### Request Body None ### Response #### Success Response (200) - **uploads** (array) - A list of upload objects. - **upload_id** (string) - The unique identifier for the upload request. - **status** (string) - The current status of the upload. - **submitted_at** (datetime) - The timestamp when the request was submitted. #### Response Example ```json { "uploads": [ { "upload_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "status": "COMPLETED", "submitted_at": "2023-10-27T10:00:00Z" }, { "upload_id": "b2c3d4e5-f6a7-8901-2345-67890abcdef0", "status": "FAILED", "submitted_at": "2023-10-26T09:00:00Z" } ] } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/profiles Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/profile-management Returns a list of profiles ordered by modified date. ```APIDOC ## GET /compliance/kyc-protect/profiles ### Description Returns a list of profiles ordered by modified date. ### Method GET ### Endpoint /compliance/kyc-protect/profiles ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) * **profiles** (array) - A list of profile objects. * **profileId** (string) - The ID of the profile. * **name** (string) - The name of the profile. * **type** (string) - The type of the profile. * **modifiedDate** (string) - The date the profile was last modified. #### Response Example ```json { "profiles": [ { "profileId": "abcde12345", "name": "Example Corp", "type": "business", "modifiedDate": "2023-10-27T10:00:00Z" }, { "profileId": "fghij67890", "name": "John Doe", "type": "individual", "modifiedDate": "2023-10-26T15:30:00Z" } ] } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/profiles/types Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/administrator-resources/protectgetkycprofiletypes Retrieves a list of all available profile types for KYC Protect. ```APIDOC ## GET /compliance/kyc-protect/profiles/types ### Description Returns all the profile Types available within the KYC Protect service. ### Method GET ### Endpoint /compliance/kyc-protect/profiles/types ### Parameters #### Query Parameters None #### Path Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **profileTypes** (array) - A list of available profile types. - **type** (string) - The name of the profile type. - **description** (string) - A description of the profile type. #### Response Example ```json { "profileTypes": [ { "type": "Company", "description": "Profile for a business entity." }, { "type": "Individual", "description": "Profile for a natural person." } ] } ``` #### Error Responses - **400 Bad Request** - `correlationId` (string) - A unique ID assigned to this request. - `message` (string) - Error message. - `details` (string) - Provides further information on why the request was rejected. - **401 Unauthorized** - `error` (string) - Error description. - **403 Forbidden** - `message` (string) - Example: "Access forbidden" - **404 Not Found** - `correlationId` (string) - A unique ID assigned to this request. - `message` (string) - Error message. - `details` (string) - Provides further information on why the request was rejected. ``` -------------------------------- ### POST /compliance/kyc-protect/profiles/{profileId}/keyparties Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/profile-key-parties/compliancepostkyckeypartiesbyprofileid Creates a key party folder linked to a profile ID using the provided details. Returns the created key party information. ```APIDOC ## POST /compliance/kyc-protect/profiles/{profileId}/keyparties ### Description Creates a key party folder linked to a profile ID using the provided details. Returns the created key party information. ### Method POST ### Endpoint /compliance/kyc-protect/profiles/{profileId}/keyparties ### Parameters #### Path Parameters - **profileId** (string) - Required - ID of the profile #### Query Parameters None #### Request Body - **items** (array) - Required - **items.name** (string, null) - Maximum length is 200 characters - **items.firstName** (string, null) - First name of the key party. Valid for entity type Individual. Maximum length is 200 characters combining First name, Middle name and Last name. - **items.middleName** (string, null) - Middle name of the key party. Valid for entity type Individual. Maximum length is 200 characters combining First name, Middle name and Last name. - **items.lastName** (string, null) - Last name of the key party. Valid for entity type Individual. Maximum length is 200 characters combining First name, Middle name and Last name. - **items.entityType** (string, null) - Entity type of the key party. Types - individual, business. - **items.keyPartyType** (string, null) - Entity type of the key party. Types - director, shareHolder, ubo. - **items.gender** (string, null) - Gender of the key party. Valid for entity type Individual. Enum: "male", "female". - **items.dateOfBirth** (string, null) - Date of birth of the key party. Date YYYY-MM-DD or YYYY format. Must be after 1900 and not in the future. Valid for the entity type Individual. - **items.organisationNumber** (string, null) - Key party organisation number. Valid for entity type Business. - **items.activityCode** (string, null) - Activity code of the key party. Valid for entity type Business. - **items.percentageOfShares** (number, null) - Share percentage of the key party. Valid for key party type ShareHolder. - **items.role** (string, null) - Role of the key party. Valid for key party type Director. - **items.countryCode** (string, null) - Country code of the key party. - **items.address** (object) - Address details of the key party. - **items.address.buildingDetails** (string, null) - The building details of the address being created. Must have a maximum length of 250 characters. - **items.address.street** (string, null) - The street of the address being created. Must have a maximum length of 250 characters. - **items.address.city** (string, null) - The city of the address being created. Must have a maximum length of 250 characters. - **items.address.region** (string, null) - The region of the address being created. Must have a maximum length of 250 characters. - **items.address.postalCode** (string, null) - The postal code of the address being created. Must have a maximum length of 50 characters. - **items.address.countryCode** (string, null) - Two-letter ISO-3166-2 country code. - **items.address.type** (string, null) - Required - Type of the address, registered, trading, other. - **items.address.description** (string, null) - The description of the address being created. Must have a maximum length of 250 characters. ### Request Example ```json { "items": [ { "name": "Example Corp", "entityType": "business", "keyPartyType": "shareHolder", "address": { "buildingDetails": "123 Main St", "street": "Main Street", "city": "Anytown", "region": "CA", "postalCode": "12345", "countryCode": "US", "type": "registered", "description": "Main Office" }, "organisationNumber": "987654321", "activityCode": "12345", "percentageOfShares": 50 } ] } ``` ### Response #### Success Response (200) - **items** (array) - Information about the created key parties. - **items.id** (string) - Unique identifier for the key party. - **items.name** (string) - Name of the key party. - **items.entityType** (string) - Entity type of the key party. - **items.keyPartyType** (string) - Key party type. - **items.address** (object) - Address details of the key party. - **items.address.buildingDetails** (string) - Building details. - **items.address.street** (string) - Street. - **items.address.city** (string) - City. - **items.address.region** (string) - Region. - **items.address.postalCode** (string) - Postal code. - **items.address.countryCode** (string) - Country code. - **items.address.type** (string) - Type of the address. - **items.address.description** (string) - Description of the address. #### Response Example ```json { "items": [ { "id": "kp_12345abcde", "name": "Example Corp", "entityType": "business", "keyPartyType": "shareHolder", "address": { "buildingDetails": "123 Main St", "street": "Main Street", "city": "Anytown", "region": "CA", "postalCode": "12345", "countryCode": "US", "type": "registered", "description": "Main Office" }, "organisationNumber": "987654321", "activityCode": "12345", "percentageOfShares": 50 } ] } ``` ``` -------------------------------- ### Get KYC Monitoring Alerts by Profile Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/documentation/processflows/basicintegration Retrieves alerts associated with a specific profile that is under KYC monitoring. ```APIDOC ## GET /compliance/kyc-protect/kycMonitoring/profiles/{profileId}/alerts ### Description Fetches all KYC monitoring alerts for a given profile. Alerts indicate potential changes or events requiring attention. ### Method GET ### Endpoint /compliance/kyc-protect/kycMonitoring/profiles/{profileId}/alerts ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier for the profile. #### Query Parameters - **status** (string) - Optional - Filter alerts by status (e.g., 'open', 'closed'). ### Response #### Success Response (200) - **alerts** (array) - An array of KYC alert objects. - **alertId** (string) - The unique identifier for the alert. - **profileId** (string) - The profile associated with the alert. - **timestamp** (string) - The time the alert was generated. - **status** (string) - The current status of the alert. #### Response Example ```json { "alerts": [ { "alertId": "alert789", "profileId": "profileA", "timestamp": "2023-10-27T10:00:00Z", "status": "open" } ] } ``` ``` -------------------------------- ### Get KYC Alerts by Profile Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/documentation/processflows/basicintegration Retrieves alerts associated with a specific profileId for KYC monitoring. This allows users to view any detected changes or issues. ```http GET /compliance/kyc-protect/kycMonitoring/profiles/{profileId}/alerts ``` -------------------------------- ### POST /compliance/kyc-protect/profiles/{profileId}/keyparties Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/profile-key-parties Creates a new key party folder linked to a specific profile ID using the provided user details. Returns the information of the created key party. ```APIDOC ## POST /compliance/kyc-protect/profiles/{profileId}/keyparties ### Description Uses the details provided by the user to create key parties. Returns the created key parties information. ### Method POST ### Endpoint /compliance/kyc-protect/profiles/{profileId}/keyparties ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier of the profile. #### Request Body - **keyPartyDetails** (object) - Required - The details of the key party to be created. - **name** (string) - Required - The name of the key party. - **role** (string) - Required - The role of the key party (e.g., Director, Shareholder). - **identification** (object) - Optional - Identification details for the key party. - **type** (string) - Required - The type of identification (e.g., Passport, National ID). - **value** (string) - Required - The identification number. ### Request Example ```json { "keyPartyDetails": { "name": "John Doe", "role": "Director", "identification": { "type": "Passport", "value": "AB1234567" } } } ``` ### Response #### Success Response (201 Created) - **keyPartyId** (string) - The unique identifier of the created key party. - **profileId** (string) - The ID of the profile the key party is linked to. - **name** (string) - The name of the key party. - **role** (string) - The role of the key party. - **createdAt** (string) - Timestamp of creation. #### Response Example ```json { "keyPartyId": "kp_12345abc", "profileId": "prof_abcdef123", "name": "John Doe", "role": "Director", "createdAt": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### POST /compliance/kyc-protect/searches/businesses/download Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-businesses/compliancekycsearchbusinessdownload Initiates a business AML screening and provides a URL to download the resulting PDF report. The search consumes one credit. ```APIDOC ## POST /compliance/kyc-protect/searches/businesses/download ### Description Downloads a PDF file for a business AML screening. A name, at least one valid dataset, at least one valid country code, and a threshold are required. The name must not exceed 200 characters. Each search deducts one credit. ### Method POST ### Endpoint /compliance/kyc-protect/searches/businesses/download ### Parameters #### Query Parameters - **countryCodes** (array,null) - Required - List of Two-letter country code ISO-3166-2. - **threshold** (integer) - Required - Must be one of 75, 80, 85, 90, 95, or 100. - **name** (string,null) - Required if FirstName and LastName are not provided - Example: Google Inc. Max 200 characters allowed. - **datasets** (array,null) - Required - Specifies which datasets will be searched. Options include: - Politically Exposed Persons (All) - Only linked PEPs (PEP by Association) - Sanctioned (All) - SAN-CURRENT - Only current Sanctions - SAN-FORMER - Only former Sanctions - Insolvency - Averse Media - POI - Profile of Interest - Enforcement - State Owned Enterprises (All) - Only current SOE - Only former SOE ### Request Example ```json { "countryCodes": ["US", "GB"], "threshold": 85, "name": "Example Corp", "datasets": ["SAN-CURRENT", "Insolvency"] } ``` ### Response #### Success Response (201) - **downloadUrl** (string) - Url of the file to download. - **fileName** (string) - Name of the file. - **expiresAt** (string) - Date and time when the url will expire. - **searchId** (string) - Id of the search. #### Response Example ```json { "downloadUrl": "https://example.com/downloads/report.pdf", "fileName": "report.pdf", "expiresAt": "2023-10-27T10:00:00Z", "searchId": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } ``` #### Error Response (400) - **correlationId** (string) - A unique ID assigned to this request. - **message** (string) - Error message. - **details** (string) - Provides further information on why the request was rejected. #### Error Response (401) - **error** (string) - Authentication error details. #### Error Response (403) - **message** (string) - Example: "Access forbidden" ``` -------------------------------- ### POST /compliance/kyc-protect/profiles/{profileId}/keyparties/searches/bulk Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/profile-key-parties/compliancepostkyckeypartiessearchesbulkbyprofileid Request multiple searches to be performed and linked to a key party asynchronously. ```APIDOC ## POST /compliance/kyc-protect/profiles/{profileId}/keyparties/searches/bulk ### Description Request multiple searches to be performed and linked to a key party asynchronously. ### Method POST ### Endpoint /compliance/kyc-protect/profiles/{profileId}/keyparties/searches/bulk ### Parameters #### Path Parameters - **profileId** (string) - Required - id of the profile #### Query Parameters None #### Request Body - **items** (array,null) - The Request Items collection - **items.type** (string) - The entity type of the search. Available values are individual and business. - **items.name** (string,null) - Required if FirstName and LastName are not provided - **items.firstName** (string,null) - If FirstName is provided then LastName must also be provided - **items.middleName** (string,null) - Middle name is optional, valid along with Firstname and LastName only - **items.lastName** (string,null) - If LastName is provided then FirstName must also be provided - **items.dateOfBirth** (string,null) - Date YYYY-MM-DD or YYYY format. Must be after 1900 and not in the future. - **items.gender** (string,null) - Define the gender of the individual you are searching for. - **items.pepTiers** (array,null) - When searching the PEP dataset, define what tiers of the PEP profiles should be included in the results where: PEP Tier 1 indicates senior roles, PEP Tier 2 - middle-ranking, PEP Tier 3 - junior officials. If the PEP Dataset is NOT included on the list of searched datasets, then this value is ignored. The PEP Tier filter does not apply to PEP-LINKED Profiles. - **items.datasets** (array,null) - Specifies which datasets will be searched: PEP - Politically Exposed Persons (All), PEP-CURRENT - Only current PEPs, PEP-FORMER - Only former PEPs, PEP-LINKED - Only linked PEPs (PEP by Association), SAN - Sanctioned (All), SAN-CURRENT - Only current Sanctions, SAN-FORMER - Only former Sanctions, INS - Insolvency, AM - Averse Media, POI - Profile of Interest, ENF - Enforcement, DD - Disqualified Director - **items.sanctionBodies** (array,null) - Specifies which SanctionBodies will be searched. When null is supplied, the Settings preferences will be applied. When null is supplied and Settings preferences not set, all sanction bodies will be applied. When no sanction bodies supplied, all sanction bodies will be applied. - **items.countryCodes** (array,null) - Country codes for filtering searches. - **items.threshold** (integer) - Must be one of 75, 80, 85, 90, 95, or 100 - **items.keyPartyId** (string) - The ID of the key party to link the searches to. ### Request Example ```json { "items": [ { "type": "individual", "firstName": "John", "lastName": "Doe", "dateOfBirth": "1990-01-01", "datasets": ["PEP", "SAN"], "threshold": 90, "keyPartyId": "kp_12345" } ] } ``` ### Response #### Success Response (200) No specific fields mentioned for success response, typically returns an empty object or a confirmation. #### Response Example ```json { "message": "Searches initiated successfully." } ``` #### Error Response (400) - **correlationId** (string) - A unique ID assigned to this request. - **message** (string) - Error message. - **details** (string) - Provides further information on why the request was rejected. #### Error Response (401) - **error** (string) - Authentication error. #### Error Response (403) - **message** (string) - Example: "Access forbidden" #### Error Response (404) - **correlationId** (string) - A unique ID assigned to this request. - **message** (string) - Error message. - **details** (string) - Provides further information on why the request was rejected. ``` -------------------------------- ### GET /compliance/kyc-protect/searches/businesses/{searchId}/hits/{hitId}/download Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect Retrieves a download URL and metadata for the AML details PDF associated with a specific hit. Use this to get the PDF file containing detailed AML information. ```APIDOC ## GET /compliance/kyc-protect/searches/businesses/{searchId}/hits/{hitId}/download ### Description Retrieves the download URL and metadata for the AML details PDF associated with a specific hit within a business search. Use this endpoint to obtain the PDF file containing detailed AML information for a flagged result () from a previously performed search (). The response includes the download URL, file name, expiration timestamp, and identifiers for the search and hit. ### Method GET ### Endpoint /compliance/kyc-protect/searches/businesses/{searchId}/hits/{hitId}/download ### Parameters #### Path Parameters - **searchId** (string) - Required - The unique identifier of the AML search. - **hitId** (string) - Required - The unique identifier of the AML hit. ### Response #### Success Response (200) - **downloadUrl** (string) - The URL to download the PDF file. - **fileName** (string) - The name of the PDF file. - **expiresAt** (string) - The timestamp when the download URL expires. - **searchId** (string) - The identifier of the search. - **hitId** (string) - The identifier of the hit. #### Response Example ```json { "downloadUrl": "https://example.com/downloads/aml_report_abc123.pdf", "fileName": "aml_report_abc123.pdf", "expiresAt": "2023-10-28T10:00:00Z", "searchId": "search_xyz789", "hitId": "hit_abc123" } ``` ``` -------------------------------- ### POST /compliance/kyc-protect/searches/businesses/download Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-businesses Initiates a business AML screening. Requires a name, dataset, country code, and threshold. Consumes one credit per search. ```APIDOC ## POST /compliance/kyc-protect/searches/businesses/download ### Description Initiates a business AML screening. Requires a name, at least one valid dataset, at least one valid country code, and a threshold. The name length must not exceed 200 characters. The user will be deducted 1 credit for each search. ### Method POST ### Endpoint /compliance/kyc-protect/searches/businesses/download ### Parameters #### Query Parameters - **name** (string) - Required - The name of the business to search. - **dataset** (string) - Required - The dataset to use for the search (e.g., "company_basic", "company_full"). - **countryCode** (string) - Required - The ISO 3166-1 alpha-2 country code for the search. - **threshold** (integer) - Required - The threshold for the screening. ### Request Example ```json { "name": "Example Corp", "dataset": "company_basic", "countryCode": "US", "threshold": 80 } ``` ### Response #### Success Response (200) - **searchId** (string) - The ID of the initiated search. #### Response Example ```json { "searchId": "a1b2c3d4-e5f6-7890-1234-567890abcdef" } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/searches/businesses/{searchId} Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-businesses/getkycsearchbusinessbysearchid Retrieves a single Business AML search result based on the provided search ID. This endpoint is useful for getting the complete details of a specific search, including its status, associated hits, and metadata. ```APIDOC ## GET /compliance/kyc-protect/searches/businesses/{searchId} ### Description Returns a single Business AML search based on the provided Search ID. ### Method GET ### Endpoint `/compliance/kyc-protect/searches/businesses/{searchId}` ### Parameters #### Path Parameters - **searchId** (string) - Required - Id of the search ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **id** (string) - Id of the search - **name** (string) - Name provided for the search. Length must not exceed 200 characters - **countryCodes** (array) - Countries provided to the search - **threshold** (integer) - Hits with scores below this value will not be shown. - **type** (string) - Indicates whether search type is individual or business - **datasets** (array) - Provided datasets for the search - **sanctionBodies** (array,null) - Provided sanctionBodies for the search - **status** (string) - Status of the search. Available values are new, approved, declined, pending, cancelled, referred and closed. - **riskRating** (string) - The risk rating being assigned to the profile. Enum: "notApplicable", "veryLow", "low", "medium", "high", "veryHigh" - **assignedToUserId** (integer) - Id of the user assigned to the search - **assignedUser** (string) - Name of the user assigned to the search - **createdById** (integer) - Id of the user who created the search - **createdBy** (string) - Name of the user who created the search - **createdAt** (string) - Search created date time - **modifiedById** (integer) - Id of the user who modified the search - **modifiedBy** (string) - Name of the user who modified the search - **modifiedAt** (string) - Search modified date time - **note** (string) - Note associated with the search - **scheduleId** (string) - Schedule Id linked to the search - **totalHitCount** (integer) - Total number of hits in the search - **truePositiveHitsCount** (integer) - The number of true-positive hits in the search - **falsePositiveHitsCount** (integer) - The number of false-positive hits in the search - **undecidedHitsCount** (integer) - The number of undecided hits in the search #### Response Example (200) ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "name": "Example Business Search", "countryCodes": ["US", "CA"], "threshold": 70, "type": "business", "datasets": ["PEP", "Sanctions"], "sanctionBodies": null, "status": "approved", "riskRating": "medium", "assignedToUserId": 101, "assignedUser": "John Doe", "createdById": 100, "createdBy": "Jane Smith", "createdAt": "2023-10-27T10:00:00Z", "modifiedById": 101, "modifiedBy": "John Doe", "modifiedAt": "2023-10-27T11:30:00Z", "note": "Initial review completed.", "scheduleId": "sch-987654", "totalHitCount": 5, "truePositiveHitsCount": 2, "falsePositiveHitsCount": 1, "undecidedHitsCount": 2 } ``` #### Error Response (400) - **correlationId** (string) - A unique ID assigned to this request. - **message** (string) - Error message. - **details** (string) - Provides further information on why the request was rejected #### Response Example (400) ```json { "correlationId": "f0e9d8c7-b6a5-4321-fedc-ba9876543210", "message": "Invalid search ID format.", "details": "The provided searchId does not conform to the expected UUID format." } ``` #### Error Response (401) - **error** (string) - Authentication error message. #### Response Example (401) ```json { "error": "Unauthorized: Missing or invalid authentication token." } ``` #### Error Response (403) - **message** (string) - Access forbidden message. #### Response Example (403) ```json { "message": "Access forbidden: Insufficient permissions to access this resource." } ``` ``` -------------------------------- ### Create Profile Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/documentation/processflows/basicintegration Creates a new profile, which is required for grouping searches, monitoring, and audit trails. ```APIDOC ## POST /compliance/kyc-protect/profiles ### Description Creates a new profile, which is required for grouping searches, monitoring, and audit trails. ### Method POST ### Endpoint /compliance/kyc-protect/profiles ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **name** (string) - Required - The name of the profile. - **type** (string) - Required - The type of entity the profile represents (e.g., company, individual). - **details** (object) - Optional - Additional details about the entity. - **legalName** (string) - Optional - The legal name of the entity. ### Request Example ```json { "name": "Creditsafe Ltd", "type": "company", "details": { "legalName": "Creditsafe Ltd" } } ``` > Note: Valid profile type values include trust, individual, soletrader, company, plc, partnership, otherEntity. ### Response #### Success Response (200) Details of the created profile, including its unique ID. #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "name": "Creditsafe Ltd", "type": "company", "createdAt": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### Example Individual AML Search Request Body Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/documentation/processflows/singlesearch An example JSON payload for an individual AML search. It demonstrates the use of 'name' and other required parameters like threshold and datasets. ```json { "threshold": 80, "name": "Donald Trump", "datasets": [ "AM" ] } ``` -------------------------------- ### Example Business AML Search Request Body Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/documentation/processflows/singlesearch An example JSON payload for initiating a business AML search. It includes essential parameters like country codes, threshold, name, and datasets. ```json { "countryCodes": [ "GB" ], "threshold": 85, "name": "Creditsafe", "datasets": [ "AM" ] } ``` -------------------------------- ### POST /compliance/kyc-protect/searches/businesses/download Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect Downloads a PDF file for a business AML screening. Requires a name, dataset, country code, and threshold. ```APIDOC ## POST /compliance/kyc-protect/searches/businesses/download ### Description Downloads a PDF file for a business AML screening. A request requires a name, at least one valid dataset, at least one valid countrycode and a threshold. Length of name must not exceed 200 characters. User will be deducted 1 credit for each search. ### Method POST ### Endpoint /compliance/kyc-protect/searches/businesses/download ### Parameters #### Query Parameters - **name** (string) - Required - The name of the business to screen. - **dataset** (string) - Required - The dataset to use for the screening. - **countryCode** (string) - Required - The country code for the screening. - **threshold** (number) - Required - The threshold for the screening. ### Request Example ```json { "name": "Example Business", "dataset": "default", "countryCode": "US", "threshold": 0.8 } ``` ### Response #### Success Response (200) - **pdf_url** (string) - The URL to download the PDF report. #### Response Example ```json { "pdf_url": "https://example.com/path/to/report.pdf" } ``` ``` -------------------------------- ### POST /authenticate Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/authentication Supply username and password to generate an Authentication Token for secure API access. ```APIDOC ## POST /authenticate ### Description Supply username and password to generate an Authentication Token for secure API access. ### Method POST ### Endpoint /authenticate ### Parameters #### Request Body - **username** (string) - Required - The username for authentication. - **password** (string) - Required - The password for authentication. ### Request Example ```json { "username": "your_username", "password": "your_password" } ``` ### Response #### Success Response (200) - **token** (string) - The generated authentication token. #### Response Example ```json { "token": "your_auth_token" } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/profiles/alerts/metrics Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-profile-management/complianceprotectgetkycprofilealertsmetrics Fetches a list of KYC and AML alert metrics for profiles. Supports pagination, searching, and sorting. ```APIDOC ## GET /compliance/kyc-protect/profiles/alerts/metrics ### Description Returns a list of KYC and AML alert metrics on profiles. This endpoint allows for filtering and sorting of alert data. ### Method GET ### Endpoint /compliance/kyc-protect/profiles/alerts/metrics ### Query Parameters #### Query Parameters - **page** (integer) - Optional - Starting page number for pagination. - **pageSize** (integer) - Optional - Number of items to return per page. - **searchTerm** (string) - Optional - A search term to match against profile names and internal IDs. - **sortOrder** (string) - Optional - The order in which the items should be sorted. Available values: `asc`, `desc`. - **sortBy** (string) - Optional - The field by which the items should be sorted. Available values: `alertLastModifiedDate`, `addedToMonitoringDate`, `latestAlertDate`. ### Response #### Success Response (200) - **totalSize** (integer) - The total number of alert metrics available. - **items** (array) - An array of alert metric objects. - **profileId** (string) - Id of the Profile. - **profileName** (string) - Name of the Profile. - **internalId** (string,null) - Internal Id of the Profile. - **undecidedSearchHitsCount** (integer) - Count of search hits in 'Undecided' state associated with the profile. - **openKycAlertsCount** (integer) - Count of KYC alerts in 'Open' state associated with the profile. - **latestAlertCreatedAt** (string) - The date and time the latest alert was created for the profile. - **latestMonitoringUpdaterRunAt** (string,null) - The date and time the latest monitoring updater ran for the profile. #### Error Response (400) - **correlationId** (string) - A unique ID assigned to this request. - **message** (string) - Error message. - **details** (string) - Further information on why the request was rejected. #### Error Response (401) - **error** (string) - Authentication error details. #### Error Response (403) - **message** (string) - Access forbidden message. #### Error Response (404) - **correlationId** (string) - A unique ID assigned to this request. - **message** (string) - Error message. - **details** (string) - Further information on why the request was rejected. #### Error Response (409) - **correlationId** (string) - The unique identifier (UUID). - **message** (string) - Error message. - **details** (string) - Further information on why the request was rejected. ### Request Example ```json { "example": "GET /compliance/kyc-protect/profiles/alerts/metrics?page=1&pageSize=10&sortBy=alertLastModifiedDate&sortOrder=desc" } ``` ### Response Example ```json { "totalSize": 100, "items": [ { "profileId": "prof_12345", "profileName": "Example Profile", "internalId": "int_abcde", "undecidedSearchHitsCount": 5, "openKycAlertsCount": 2, "latestAlertCreatedAt": "2023-10-27T10:00:00Z", "latestMonitoringUpdaterRunAt": "2023-10-26T15:30:00Z" } ] } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/profiles/{profileId}/hits Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/aml-screening-profile-management Return hits of the searches linked to a profile. ```APIDOC ## GET /compliance/kyc-protect/profiles/{profileId}/hits ### Description Return hits of the searches linked to a profile. ### Method GET ### Endpoint /compliance/kyc-protect/profiles/{profileId}/hits ### Parameters #### Path Parameters - **profileId** (string) - Required - The unique identifier of the profile. ### Response #### Success Response (200) - **hits** (array) - A list of hit objects from searches linked to the profile. - **hitId** (string) - The unique identifier of the hit. - **searchId** (string) - The identifier of the search that generated the hit. - **hitDate** (string) - The date and time the hit was recorded. - **hitDetails** (object) - Details about the hit. #### Response Example ```json { "hits": [ { "hitId": "hit789", "searchId": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "hitDate": "2023-10-27T11:05:00Z", "hitDetails": { "entityName": "Another Entity", "matchScore": 0.95 } } ] } ``` ``` -------------------------------- ### GET /compliance/kyc-protect/lookup/kycMonitoring/countryCodes Source: https://doc.creditsafe.com/connect-apis-catalog/product-catalog/kycprotect/kycprotect/global-monitoring/complianceprotectgetlookupmonitoringcountrycodes Retrieves a list of acceptable country codes for KYC monitoring. ```APIDOC ## GET /compliance/kyc-protect/lookup/kycMonitoring/countryCodes ### Description Gets the list of acceptable country codes for kyc monitoring. ### Method GET ### Endpoint /compliance/kyc-protect/lookup/kycMonitoring/countryCodes ### Parameters #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) - **countryCodes** (array of strings) - A list of available country codes. #### Response Example ```json { "countryCodes": [ "US", "GB", "DE" ] } ``` #### Error Responses - **400 Bad Request**: - `correlationId` (string) - A unique ID assigned to this request. - `message` (string) - Error message. - `details` (string) - Provides further information on why the request was rejected. - **401 Unauthorized**: - `error` (string) - Error description. - **403 Forbidden**: - `message` (string) - Example: "Access forbidden" - **404 Not Found**: - `correlationId` (string) - A unique ID assigned to this request. - `message` (string) - Error message. - `details` (string) - Provides further information on why the request was rejected. ```