# Mesh Documentation > Documentation for Mesh Append .md to any documentation page URL to get its markdown version. ## Guides - [Getting Started](https://docs.mesh.complyadvantage.com/docs/getting-started.md): Getting started with your ComplyAdvantage Mesh API integration - [Key integration use cases](https://docs.mesh.complyadvantage.com/docs/key-integration-use-cases.md): The choice of APIs to integrate with will depend on the specific outcomes you want to achieve - [Creating and screening customers](https://docs.mesh.complyadvantage.com/docs/creating-and-screening-customers.md): How to create and screen individual or multiple customers - [Checking for screening hits](https://docs.mesh.complyadvantage.com/docs/checking-for-screening-hits.md): Checking for hits after screening a customer - [Viewing screening results](https://docs.mesh.complyadvantage.com/docs/viewing-screening-results.md): Viewing cases, alerts, and risks after screening customers - [Simple step-by-step integration](https://docs.mesh.complyadvantage.com/docs/simple-step-by-step-integration.md): Step-by-step guide for integrating customer onboarding and screening workflow - [Glossary](https://docs.mesh.complyadvantage.com/docs/glossary.md): Glossary of key terms - [Overview](https://docs.mesh.complyadvantage.com/docs/overview.md): Introduction to ComplyAdvantage Mesh - [Errors](https://docs.mesh.complyadvantage.com/docs/errors.md): How the ComplyAdvantage Mesh API handles error responses - [Versioning](https://docs.mesh.complyadvantage.com/docs/versioning.md): How the ComplyAdvantage Mesh API is versioned - [Rate Limiting](https://docs.mesh.complyadvantage.com/docs/rate-limiting.md): How the ComplyAdvantage Mesh API handles rate limiting - [Working with lists](https://docs.mesh.complyadvantage.com/docs/working-with-lists.md): How to work lists in the ComplyAdvantage Mesh API - [Dates and times](https://docs.mesh.complyadvantage.com/docs/dates-and-times.md): How to work with dates and times in the ComplyAdvantage Mesh API - [Countries and currencies](https://docs.mesh.complyadvantage.com/docs/countries-and-currencies.md): How to work with countries and currencies in the ComplyAdvantage Mesh API - [Webhooks](https://docs.mesh.complyadvantage.com/docs/webhooks.md): Webhooks in ComplyAdvantage Mesh - [Onboarding](https://docs.mesh.complyadvantage.com/docs/onboarding.md): What is customer screening and risk scoring in ComplyAdvantage Mesh? - [Postman and OpenAPI Schema](https://docs.mesh.complyadvantage.com/docs/postman-and-openapi-schema.md): Supercharge your ComplyAdvantage Mesh API integration - [Customers](https://docs.mesh.complyadvantage.com/docs/customers.md): What is a customer in ComplyAdvantage Mesh? - [Cases](https://docs.mesh.complyadvantage.com/docs/cases.md): What are cases and case management in ComplyAdvantage Mesh? - [Alerts and Risks](https://docs.mesh.complyadvantage.com/docs/alerts-and-risks.md): What are alerts and risks in ComplyAdvantage Mesh? ## API Reference - [Create an access token with username/password (legacy)](https://docs.mesh.complyadvantage.com/reference/createtoken.md): **This endpoint remains fully supported. For new implementations, we strongly recommend using [API access tokens](https://docs.mesh.complyadvantage.com/v0.3/reference/createtokenv3) going forward.** Mesh is authenticated via OAuth2. An initial request must be made to collect the token. This token can then be used to authenticate all requests for the following 24 hours, after which the token must be refreshed. The username and password should be one of the users already created in your account. The value `realm` is provided by ComplyAdvantage. The access token returned by the initial request can then be used within the authorization header. ``` "Authorization":"Bearer {access_token}" ``` The bearer token has a validity period of 24 hours (86,400 seconds), after which any authentication attempts will fail. To refresh a token, use the same method as that used to generate it. - [Create an API access token](https://docs.mesh.complyadvantage.com/reference/createtokenv3.md): **This is the recommended authentication method for all integrations with Mesh. If you're building a new integration, we recommend you use this endpoint and API credentials rather than the legacy username/password flow. Existing integrations using username/password continue to be supported and are not required to migrate.** API access to Mesh uses the OAuth2 client credentials flow. Users can generate a set of credentials (consisting of an access key and secret) in the UI (Settings > Access Management > API Credentials). The lifespan, permissions and optional expiry date of the credentials can all be configured by the user at the time of creation. These credentials can then be used to generate an access token by calling this endpoint. This token must then be sent in headers when making authenticated API calls. ``` "Authorization":"Bearer {access_token}" ``` Each token has an expiry of 24 hours (86,400 seconds). This is not configurable. Once a token expires, any requests made using it will fail — there is no refresh mechanism, so a new token must be generated the same way as before. When client credentials expire or are revoked by the user, they can no longer be used to generate access tokens. - [Create and Screen a Customer asynchronously](https://docs.mesh.complyadvantage.com/reference/createcustomerandscreenasync.md): This endpoint initiates the 'create and screen' workflow for your customer in **asynchronous mode**. The workflow consists of five steps: 1. **Customer Record Creation:** The Customer Record is created in Mesh. 2. **Risk Scoring:** An initial Risk Score is calculated for the Customer. 3. **Customer Screening:** The Customer is screened using settings based on the Calculated Risk Score. 4. **Alerts:** Alerts associated with the screened customer are generated based on the risk analysis. 5. **Case Creation:** Create cases based on the result of customer screening and alerts, for an analyst to review. Each customer must have a unique customer external identifier specified as part of the request. This identifier is used to find the customer within Mesh and link back to your own internal systems. The customer can be one of: `PERSON`, `COMPANY`, `` or `UNDEFINED` and can optionally have multiple `products`. Following risk scoring, the customer will be screened using ComplyAdvantage's AML database. You can specify the screening profile used for initial screening and subsequent ongoing monitoring within the `configuration` object. The value for `screening_profile_identifier` can be found in the settings section of the Mesh application. The workflow will execute asynchronously. The initial POST returns a 'workflow-instance-identifier' and you can be notified of completion by: * either polling the GET `/workflows/` endpoint with the `workflow_identifier` returned when starting the workflow * or, setting up a `WORKFLOW_COMPLETED` webhook that will fire when your workflow completes. You need "Access to base customer screening functionality" enabled and the "Create and screen customers" permission to use this endpoint. - [Create and Screen a Customer synchronously](https://docs.mesh.complyadvantage.com/reference/createcustomerandscreensync.md): This endpoint initiates the 'create and screen' workflow for your customer in **synchronous mode**. The workflow consists of five steps: 1. **Customer Record Creation:** The Customer Record is created in Mesh. 2. **Risk Scoring:** An initial Risk Score is calculated for the Customer. 3. **Customer Screening:** The Customer is screened using settings based on the Calculated Risk Score. 4. **Alerts:** Alerts associated with the screened customer are generated based on the risk analysis. 5. **Case Creation:** Create cases based on the result of customer screening and alerts, for an analyst to review. Each customer must have a unique customer external identifier specified as part of the request. This identifier is used to find the customer within Mesh and link back to your own internal systems. The customer can be one of: `PERSON`, `COMPANY`, `` or `UNDEFINED` and can optionally have multiple `products`. Following risk scoring, the customer will be screened using ComplyAdvantage's AML database. You can specify the screening profile used for initial screening and subsequent ongoing monitoring within the `configuration` object. The value for `screening_profile_identifier` can be found in the settings section of the Mesh application. The workflow executes synchronously up to customer screening, returning the workflow status. This end-point is currently idempotent: in case of downstream error you can re-send the exact same request, and the workflow will be retried. Submitting a request for the same external identifier concurrently will result in the request being rejected with `409 Conflict`. The body of the rejected request points to the first workflow (and customer, when known) so its result can be fetched instead. To screen an entity: - Exactly one of `full_name` or `last_name` must be provided (not both, not neither). - When using `last_name`: `title`, `first_name`, `middle_name`, `last_name`, `fathers_name`, `mothers_name`, and `suffix` are optional. - When using `full_name`: `title`, `first_name`, `middle_name`, `last_name`, `fathers_name`, `mothers_name`, and `suffix` must all be omitted. By default, the screen customer request is done synchronously only until the screening workflow step and returns hit/no hits in `step_details.customer-screening.step_output.screening_result`. `last_sync_step` query parameter can be set to `ALERTING` to additionally wait for the alerting workflow step. The advantage of this option is that alert identifiers are included in the response in `step_details.alerting.step_output.alerts[].identifier`. You need "Access to base customer screening functionality" enabled and the "Create and screen customers" permission to use this endpoint. - [Get status and result of onboarding](https://docs.mesh.complyadvantage.com/reference/getworkflowstate.md): ## Overall workflow status This endpoint will return the status and eventual end result of the specified workflow. Once a workflow has been initiated, it can be periodically polled to receive the status using the workflow-instance-identifier provided in the response of the POST `v2/workflows/create-and-screen` The response comprises the status of the overall workflow. One of - `NOT-STARTED` - The workflow is queued but has not yet begun - `IN-PROGRESS` - The workflow is executing but not yet completed. The step details should be checked to ascertain progress - `COMPLETED` - The workflow has completed execution without errors. The step details should be checked to ascertain the end results - `ERRORED` - The workflow has completed with errors. In addition to the status, the workflow endpoint returns: - `steps` - an array of the step keys within the workflow - `step_details` - an object containing the status and return values for each of steps within the workflow (see following section) ## Workflow steps The workflow response contains a `step_details` object, which contains the status and returned values from each step in the workflow. Each step object within the step_details contains a status field that can be one of the following values: - `NOT-STARTED` - The step has not yet been executed - `IN-PROGRESS` - The step is executing - `COMPLETED` - The step has completed and the step_output object can be checked for output - `SKIPPED` - The step has been skipped because it did not meet the criteria for execution. In the case of the “create and screen" workflow, this applies to the screening step when the customer risk is prohibited - `ERRORED` - The step has completed but returned errors In addition to the status, the step detail contains: - `identifier` - a unique identifier for the step - `step_output` - an object containing the return values for the step - [Get a list of customers ](https://docs.mesh.complyadvantage.com/reference/customergetcustomerslist.md): This endpoint returns a list of customers that match the specified search criteria. The response includes partial information for each customer, including essential fields from the customer profile, risk level, and status objects. Complete details for each customer can be retrieved by calling the relevant endpoint with a specific customer identifier. This endpoint can return up to 10,000 customers. For larger datasets, use the 'exports' endpoint, which is designed for exporting large volumes of data. You need the "View customers" permission to use this endpoint. - [Get a list of acquisition sources matching the search parameter.](https://docs.mesh.complyadvantage.com/reference/customergetacquisitionsources.md): You need the "View customers" permission to use this endpoint. - [Get customer using your identifier](https://docs.mesh.complyadvantage.com/reference/customergetcustomerv2withexternalidentifier.md): This endpoint returns a 308 Permanent Redirect response, directing you to the get [customer](https://docs.mesh.complyadvantage.com/reference/customergetcustomerv2) endpoint based on the provided external identifier. Many API libraries follow the automatic redirect but, in some programming languages it may requires an additional API call. You need the "View customers" permission to use this endpoint. - [Get customer details](https://docs.mesh.complyadvantage.com/reference/customergetcustomerv2.md): Once the workflow status returns as COMPLETED, it is possible to collect the latest customer record. The response contains all the information submitted during the POST `/v2/customer` request. The customer-identifier can be found within the GET `/v2/workflows/` response from within the `step_output` within the `customer-creation` step. There is a number of customer statuses that can be returned from this endpoint: | Status name | Description | | ------ | ------ | |Processing| The customer has been created successfully but there are parts of the create-and-screen workflow that are still in progress| |Active|The customer is active - the initial risk level is not prohibited and there are no onboarding screening results, or these results were returned and their case status is accepted| |Closed|The customer is closed - the initial risk level is prohibited, or there are screening results and the case status is rejected, or maybe the client closed this customer for another reason.| You need the "View customers" permission to use this endpoint. - [Retrieve cases for a customer](https://docs.mesh.complyadvantage.com/reference/casesservicev2customerscustomer_identifiercasesget.md): Returns a paginated list of cases associated with a customer. You need one of the "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Get monitoring configuration of a customer](https://docs.mesh.complyadvantage.com/reference/customergetmonitoringconfig.md): This endpoint returns the monitor status for a single customer. You need the "View customer monitoring status" permission to use this endpoint. - [Update monitoring configuration for an existing customer](https://docs.mesh.complyadvantage.com/reference/customerupdatecustomermonitorconfiguration.md): This endpoint allows you to set the monitoring configuration for a single customer. You need "Access to base customer monitoring functionality" enabled and the "Monitor and unmonitor customers" permission to use this endpoint. - [Get a list of notes on a customer.](https://docs.mesh.complyadvantage.com/reference/customergetcustomernotes.md): This endpoint returns a paginated list of notes on a customer. You need the "View customers" permission to use this endpoint. - [Create note on a customer.](https://docs.mesh.complyadvantage.com/reference/customercreatecustomernote.md): This endpoint enables you to create a note on a customer. You need the "Update customers" permission to use this endpoint. - [Get customer's products](https://docs.mesh.complyadvantage.com/reference/customergetproductsv2.md): This endpoint returns a list of the latest product information for a single customer. You need the "View customers" permission to use this endpoint. - [Generate a screening certificate for a specific customer](https://docs.mesh.complyadvantage.com/reference/screeningcertificatesserviceapipostreportsv2.md): Calling this endpoint will return a download URL to a screening certificate for a specific customer. When the response is 201, it means the screening certificate is generated successfully, and can be downloaded from the link returned. When the response is 200, it indicates that the data for the certificate is not yet available and you should try again shortly. You need the "View customers" permission to use this endpoint. - [Get customer's risk score](https://docs.mesh.complyadvantage.com/reference/riskscoringmanagerserviceapigetriskscore.md): This endpoint returns the latest risk score for a customer. It includes the overall score and level as well as a breakdown of the score by category. You need the "View customers" permission to use this endpoint. - [Override customer's risk score level](https://docs.mesh.complyadvantage.com/reference/riskscoringmanagerserviceapiupdateriskscore.md): Manually override the overall risk score level for a customer. Once overridden, the risk score type is set to MANUAL and will not be automatically recalculated by the system. The manual override persists until explicitly changed again through this endpoint or removed. You need the "Update customers" permission to use this endpoint. - [Transition a customer's status](https://docs.mesh.complyadvantage.com/reference/customertransitioncustomerstatus.md): This endpoint allows you to change a customer's status. You need the "Update customers" permission to use this endpoint. - [Rescreen a customer synchronously](https://docs.mesh.complyadvantage.com/reference/orchestrationlayerapipostv2rescreencustomerworkflowssync.md): This endpoint initiates the synchronous 'rescreen' workflow for your customer. The workflow consists of two steps: 1. **Customer Rescreening:** The customer is screened against the latest data sources to identify any new risk information. 2. **Alerting:** If new, relevant, risks are found an alert is generated. The workflow executes synchronously, returning the workflow status and result immediately. The rescreening operation applies the rules and settings defined in the customer's monitoring configuration. If no monitoring configuration is currently assigned to the customer, the system will default to using the initial screening configuration applied when the customer was first screened. Rescreen events count towards your total onboarding search volumes You need "Enables re-screening of customers on demand via UI/API" enabled to use this endpoint. - [Update and re-score a customer synchronously](https://docs.mesh.complyadvantage.com/reference/updatecustomer.md): This endpoint initiates the synchronous 'update and re-score' workflow for your customer in synchronous mode. The workflow consists of two steps: 1. **Customer Record Update:** The customer record, and associated view of products, is updated. 2. **Risk Scoring:** The risk score is re-calculated for the updated customer. The workflow executes synchronously returning the workflow status. This end-point is currently idempotent: in case of downstream error you can re-send the exact same request, and the workflow will be retried. In using this endpoint: - **The Customer profile is mandatory and must be provided in full:** * This endpoint overwrites the previous version of the customer record, any missing fields are treated as removed data and this data will be deleted from the customer view. - **The associated Product information is optional** and behaves in one of two ways: * If the `products` tag is not provided, the current list of products will stay as is * If the `products` tag is provided, it will overwrite the previous version of products. As such, all products - new, changed, and unchanged should be provided. You need the "Update customers" permission to use this endpoint. - [Get list of cases](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesget.md): Returns a paginated list of cases for the user's account. Accepts filter and sort query parameters. You need one of the "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Assign cases in bulk](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesassignbulkpost.md): This endpoint synchronously updates assignee for up to 100 cases. You need the "Update cases" permission to use this endpoint. - [Leave a note on multiple cases in bulk](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesnotesbulkpost.md): This endpoint creates a note for multiple cases. Up to 100 cases. You need the "Update cases" permission to use this endpoint. - [Get a list of available case states](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesstatesget.md): This endpoint returns all possible states to which a case can be transitioned. - [Transition cases in bulk](https://docs.mesh.complyadvantage.com/reference/casesservicev2casestransitionbulkpost.md): This endpoint synchronously updates state (or stage) for up to 100 cases. You need the "Update cases" permission to use this endpoint. - [Get a specific case](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifierget.md): This endpoint returns a single case by ID. You need one of the "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Retrieve the alerts for a case](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifieralertsget.md): Returns a paginated list of alerts associated with a case. You need one of the "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Get the notes on an alert](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifieralertsalert_identifiernotesget.md): Returns a paginated list of notes associated with a specific alert. You need the "View alerts" permission to use this endpoint. - [Leave a note on an alert](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifieralertsalert_identifiernotespost.md): Creates a note linked to a specific alert. You need the "Update alerts" permission to use this endpoint. - [Assign a case to a user](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifierassignpost.md): This endpoint updates the assignee for a single case (to a new value or to null). You need the "Update cases" permission to use this endpoint. - [Get the notes on a case](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifiernotesget.md): Returns a paginated list of notes associated with a case. You need one of the "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Leave a note on a case](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifiernotespost.md): Creates a note linked to a specific case. - [Retrieve the subjects for a case](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifiersubjectsget.md): Returns a paginated list of subjects associated with a case. You need one of the "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Transition a case to a stage](https://docs.mesh.complyadvantage.com/reference/casesservicev2casescase_identifiertransitionpost.md): This endpoint transitions a case to a new stage. Note: - case_state is deprecated. Please use case_stage instead. - For those already integrated using case_state, if any new case stages are added the case state response for these will be returned as USER_DEFINED You need the "Update cases" permission to use this endpoint. - [Get list of alert mutes for account or customer](https://docs.mesh.complyadvantage.com/reference/alertservicegetalertmutes.md): Get list of alert mutes for account or customer You need the "View alerts" permission to use this endpoint. - [Create alert mutes for customer](https://docs.mesh.complyadvantage.com/reference/alertservicecreatealertmute.md): Allows muting future alerts about the same risk, currently only support for customer scoped muting is provided You need the "Create and delete mutes" permission to use this endpoint. - [Delete alert mute](https://docs.mesh.complyadvantage.com/reference/alertservicedeletealertmute.md): Delete a muted alert for a risk, currently only support for customer scoped muting is provided You need the "Create and delete mutes" permission to use this endpoint. - [Get risks within an alert](https://docs.mesh.complyadvantage.com/reference/alertservicegetrisks.md): This endpoint will list all risks for a given alert. You need the "View alerts" permission to use this endpoint. - [Update the status of a risk](https://docs.mesh.complyadvantage.com/reference/alertservicechangeriskstatus.md): Given an alert identifier, risk identifier, and new risk state, updates the state of the given risk signal. **Note**: A risk signal from a `TRANSACTION_MONITORING` alert cannot be updated and will result in a 400 response code You need the "Update risks" permission to use this endpoint. - [Transition an alert to a state](https://docs.mesh.complyadvantage.com/reference/alertservicetransitionalertstate.md): This endpoint transitions an alert to a new state. You need the "Update alerts" permission to use this endpoint. - [Get the notes for a screening risk](https://docs.mesh.complyadvantage.com/reference/entityscreeninggetrisknotes.md): Get the notes for a screening risk - [Create a new note on a screening risk](https://docs.mesh.complyadvantage.com/reference/entityscreeningcreatenote.md): Create a new note on a screening risk - [Get list of alert mutes for account or entity](https://docs.mesh.complyadvantage.com/reference/alertservicegetalertmutesv3.md): Get list of alert mutes for the current client account, or filtered by a specific entity (customer, counterparty or agent). entity_identifier and entity_type must be provided together or both omitted. Results are paginated; use page and size parameters to navigate pages. You need the "View alerts" permission to use this endpoint. - [Create an alert mute](https://docs.mesh.complyadvantage.com/reference/alertservicecreatealertmutev3.md): Creates an alert mute for the current client account. CUSTOMER entity identifiers must be valid UUIDs; COUNTERPARTY identifiers are accepted as strings. You need the "Create and delete mutes" permission to use this endpoint. - [Delete an alert mute](https://docs.mesh.complyadvantage.com/reference/alertservicedeletealertmutev3.md): Delete an alert mute by its identifier for the current client account. You need the "Create and delete mutes" permission to use this endpoint. - [Get a list of all webhook notification configurations.](https://docs.mesh.complyadvantage.com/reference/notificationgetwebhookconfigurations.md): Use this endpoint to get back a list of all webhook notification configurations that the account has set up. You need the "View webhooks" permission to use this endpoint. - [Create a new webhook configuration](https://docs.mesh.complyadvantage.com/reference/notificationcreatewebhookconfiguration.md): This endpoint enables you to create a webhook configuration that will monitor an event type and send updates to the URL you specify. There are several event types you can listen to: ### CASE_CREATED Receive an update whenever a new case is created. Note: - case_state is deprecated. Please use case_stage instead. - This webhook produces two responses v1 and v2 - please use v2 as it contains case_stage and also the customer external_identifier Example: ```json { "api_version": "v2", "webhook_type": "CASE_CREATED", "case_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "case_state": "ONBOARDING_NOT_STARTED", "case_type": "CUSTOMER_ONBOARDING", "customer": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique customer identifier", "version": 1 }, "case_stage": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "display_name": "Not Started", "display_order": 1, "stage_type": "INITIAL", "decision_type": null }, "subjects": [ { "type": "CUSTOMER", "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique customer identifier", "version": "1" }, { "type": "TRANSACTION", "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique transaction identifier" }, { "type": "COUNTERPARTY", "external_identifier": "your unique counterparty identifier" } ] } ``` ### CASE_TRANSITIONED Receive an update whenever a case changes its stage, e.g. from "Not Started" to "In Progress". Note: - case_state is deprecated. Please use case_stage instead. - This webhook produces two responses v1 and v2 - please use v2 as it contains case_stage and also the customer external_identifier - Replaces webhook type CASE_STATE_UPDATED (deprecated) — existing deprecated subscriptions continue to be functional. Example: ```json { "api_version": "v2", "webhook_type": "CASE_TRANSITIONED", "case_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "case_state": "CASE_STATE_POSITIVE_END_STATE", "case_type": "CUSTOMER_ONBOARDING", "customer": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique customer identifier", "version": 1 }, "note": { "contents": "note left at the time the case state was updated" }, "case_stage": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "display_name": "False Positive", "display_order": 4, "stage_type": "DECISION", "decision_type": "POSITIVE" }, "subjects": [ { "type": "CUSTOMER", "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique customer identifier", "version": "1" }, { "type": "TRANSACTION", "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique transaction identifier" }, { "type": "COUNTERPARTY", "external_identifier": "your unique counterparty identifier" } ] } ``` ### CASE_ALERT_LIST_UPDATED Receive an update whenever the alert list associated with a case is updated, such as when new alerts are added to the case. Example: ```json { "api_version": "v2", "account_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" "webhook_type": "CASE_ALERT_LIST_UPDATED", "case_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "customer": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique customer identifier", "version": 1 }, "alert_identifiers": [ "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ], "subjects": [ { "type": "CUSTOMER", "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique customer identifier", "version": "1" }, { "type": "TRANSACTION", "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "external_identifier": "your unique transaction identifier" }, { "type": "COUNTERPARTY", "external_identifier": "your unique counterparty identifier" } ] } ``` ### WORKFLOW_COMPLETED Receive an update when an onboarding workflow completes. Example: ```json { "api_version": "v2", "webhook_type": "WORKFLOW_COMPLETED", "workflow_instance_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "COMPLETED", "step_details": { "alerting": { "identifier": null, "status": "COMPLETED", "step_output": { "alerts": [ { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } ] } }, "customer-creation": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "COMPLETED", "step_output": { "customer_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } }, "customer-screening": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "COMPLETED", "step_output": { "screening_result": "HAS_PROFILES", "aml_types": [ "SANCTION", "ADVERSE_MEDIA", "ADVERSE_MEDIA_V2_CYBERCRIME", "PEP_CLASS_1", "PEP_CLASS_2", "WARNING" ] } }, "initial-risk-scoring": { "identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "COMPLETED", "step_output": { "overall_level": "LOW-RISK", "overall_value": 0 } } }, "steps": [ "customer-creation", "initial-risk-scoring", "customer-screening", "alerting" ], "workflow_type": "create-and-screen" } ``` ### TRANSACTION_REVIEWED Receive an update when a transaction has been reviewed and either released or rejected. Example: ```json { "api_version": "v3", "account_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "webhook_type": "TRANSACTION_REVIEWED", "transaction_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "transaction_external_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "evaluation_outcome": "HOLD", "review_decision": "RELEASE" } ``` ### CUSTOMER_RISK_SCORE_CHANGED Receive an update whenever a customer's risk score value changes. Example: ```json { "api_version": "v3", "account_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "webhook_type": "CUSTOMER_RISK_SCORE_CHANGED", "customer_external_identifier": "your unique customer identifier", "risk_score": { "score": 75.0, "level": "HIGH", "manual_override": false, "categories_scores": [ { "category_type": "AML", "score": 85.0, "weight": 0.5, "level": "HIGH", "risk_attributes": [] } ] }, "previous_risk_score": { "score": 50.0, "level": "MEDIUM", "manual_override": false, "categories_scores": [] } } ``` ### CUSTOMER_RISK_LEVEL_INCREASED Receive an update whenever a customer's risk level increases (e.g., from MEDIUM to HIGH). Example: ```json { "api_version": "v3", "account_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "webhook_type": "CUSTOMER_RISK_LEVEL_INCREASED", "customer_external_identifier": "your unique customer identifier", "risk_score": { "score": 85.0, "level": "HIGH", "manual_override": false, "categories_scores": [] }, "previous_risk_score": { "score": 50.0, "level": "MEDIUM", "manual_override": false, "categories_scores": [] } } ``` ### CUSTOMER_RISK_LEVEL_DECREASED Receive an update whenever a customer's risk level decreases (e.g., from HIGH to MEDIUM). Example: ```json { "api_version": "v3", "account_identifier": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "webhook_type": "CUSTOMER_RISK_LEVEL_DECREASED", "customer_external_identifier": "your unique customer identifier", "risk_score": { "score": 45.0, "level": "MEDIUM", "manual_override": false, "categories_scores": [] }, "previous_risk_score": { "score": 80.0, "level": "HIGH", "manual_override": false, "categories_scores": [] } } ``` ### TRANSACTION_MONITORING_ASYNC_COMPLETED Receive an update when an asynchronous transaction monitoring evaluation has completed. Example: ```json { "api_version": "v2", "webhook_type": "TRANSACTION_MONITORING_ASYNC_COMPLETED", "webhook_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "transaction_external_id": "your unique transaction identifier", "transaction_version": 1, "monitoring_outcome": "HOLD", "scenario_evaluations": [ { "scenario_configuration_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "evaluation_results": [ { "scenario_identifier": { "scenario_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "version": 0 }, "scenario_name": "Over 1000 USD", "priority": 1, "scenario_outcome": "HOLD" } ] } ] } ``` You need the "Create and update webhooks" permission to use this endpoint. - [Test a webhook](https://docs.mesh.complyadvantage.com/reference/notificationtestwebhookconfiguration.md): This is an optional test that will send an example payload to the URL you specify. Test webhook payload: ```json { "message": "This is a test webhook from ComplyAdvantage" } ``` You need the "Create and update webhooks" permission to use this endpoint. - [Update a webhook notification configuration.](https://docs.mesh.complyadvantage.com/reference/notificationpatchwebhookconfiguration.md): This endpoint will update the webhook configuration You need the "Create and update webhooks" permission to use this endpoint. - [Get a list of all exports that the requesting user attempted to create](https://docs.mesh.complyadvantage.com/reference/exportsservicelistexports.md): Calling this endpoint will return a list of all the exports that the requesting user attempted to create. It will return exports that are pending, successful and failed. You need the "View and download insights" permission to use this endpoint. - [Create a new export](https://docs.mesh.complyadvantage.com/reference/exportsservicecreateexport.md): Create a new export by selecting an export type and a start and end date. The available export names are CUSTOMER_SCREENING, CUSTOMER, SCREENING_AND_MONITORING_CASES, PROFILES, PAYMENT_SCREENING_CASES, TRANSACTION_MONITORING_CASES_AND_ALERTS, TRANSACTIONS. You need the "View and download insights" permission to use this endpoint. - [Get a list of export types](https://docs.mesh.complyadvantage.com/reference/exportsservicegetexporttypes.md): This endpoint will return a paginated list of available exports, along with details about the data contained within each and how it can be used for analytical and reporting purposes. You need the "View and download insights" permission to use this endpoint. - [Get a download url for a given export](https://docs.mesh.complyadvantage.com/reference/exportsservicegetexportdownloadurl.md): This endpoint will return the download url for the requested export. For security reasons, the returned download URL is valid for only 5 seconds (TTL) from the moment it is issued, so the download must be started immediately or a new URL requested via this endpoint. You need the "View and download insights" permission to use this endpoint. - [Get the selectable columns of an export type](https://docs.mesh.complyadvantage.com/reference/exportsservicegetexporttypecolumns.md): This endpoint will return a paginated list of the columns that can be selected for the given export type. Export types that do not yet support column selection return an empty list. You need the "View and download insights" permission to use this endpoint. - [Get a list of all email notification configurations](https://docs.mesh.complyadvantage.com/reference/notificationgetemailconfigurations.md): Returns all the email notification configurations created for this account. Allows to filter by email notification type. You need the "View email notification configurations" permission to use this endpoint. - [Create a new email notification configuration](https://docs.mesh.complyadvantage.com/reference/notificationcreateemailconfiguration.md): This endpoint enables you to create an email notification, by selecting a type of notification that should trigger the sending of this email and specify who the email should be sent to, when the conditions are met. At least one recipient should be specified. There is one event type which can trigger an email to be sent: ### CASE_ASSIGNED Sends an email to the assignee, whenever a new case is assigned to that user. If that user is configured in the list of recipients and the person assigning the email is not the same user (so only sending an email notification when someone else assigns a case to this user). Example: ``` Hi Sophie, A case has been assigned to you by Julian Type: Customer Onboarding Created at: February 10, 2025 at 10:00am Stage: In Review Assignee: Sophie Note: Assigned to you because you are specialized on these scenarios Click here to view this case Please contact support@complyadvantage.com if you have any questions. ``` You need the "Create and update email notification configurations" permission to use this endpoint. - [Test an email](https://docs.mesh.complyadvantage.com/reference/notificationtestemailconfiguration.md): This is an optional test that will send an example email to the email address you specify. Test Email content: ```"This is a test email from ComplyAdvantage with identifier=2032e328-c48b-4674-8229-576955df1a79 "``` You need the "Create and update email notification configurations" permission to use this endpoint. - [Delete an email notification configuration](https://docs.mesh.complyadvantage.com/reference/notificationdeleteemailconfiguration.md): This endpoint allows deleting an email notification configuration. You need the "Create and update email notification configurations" permission to use this endpoint. - [Update an email notification configuration](https://docs.mesh.complyadvantage.com/reference/notificationpatchemailconfiguration.md): This endpoint allows updating who the email notification is configured to be sent to. You need the "Create and update email notification configurations" permission to use this endpoint. - [Get audit log for a case](https://docs.mesh.complyadvantage.com/reference/auditgetcaseaudittrailv2.md): Returns the audit log trail for a case. You need one of the "View cases", "View cases (customer onboarding)", "View cases (customer monitoring)", "View cases (payment screening)" or "View cases (transaction monitoring)" permissions to use this endpoint. - [Get audit log for a customer](https://docs.mesh.complyadvantage.com/reference/auditgetcustomeraudittrailv2.md): Returns the audit log trail for a customer. You need the "View customers" permission to use this endpoint. - [Get audit log for a transaction](https://docs.mesh.complyadvantage.com/reference/auditgettransactionaudittrailv2.md): Returns the audit log trail for a transaction. You need the "View transactions" permission to use this endpoint. - [Get audit log for your account](https://docs.mesh.complyadvantage.com/reference/auditgetmyaccountaudittrailv2.md): Returns the audit log trail for your account. You need the "View all accounts" permission to use this endpoint. - [Get audit log for a role](https://docs.mesh.complyadvantage.com/reference/auditgetroleaudittrailv2.md): Returns the audit log trail for a role. You need the "View roles in account" permission to use this endpoint. - [Get audit log for a user](https://docs.mesh.complyadvantage.com/reference/auditgetuseraudittrailv2.md): Returns the audit log trail for a user. You need the "View users" permission to use this endpoint. - [Get details about your account](https://docs.mesh.complyadvantage.com/reference/identity_v2_accounts_me_getmyaccount.md): Returns details about your account. - [Switch logged in account](https://docs.mesh.complyadvantage.com/reference/identity_v2_accounts_me_updateuseraccountmetadata.md): Changes the active logged in account for your user. A new token will need to be generated to authenticate subsequent requests. This endpoint cannot be used with API credentials. - [Get list of users in your account](https://docs.mesh.complyadvantage.com/reference/identity_v2_accounts_me_users_getmyaccountsusers.md): Returns all users that belong to your account. - [Get the states for all batch processes](https://docs.mesh.complyadvantage.com/reference/bulkuploadergetallv2batchprocessing.md): This endpoint will return a list of all batch processes that have been initiated, including their `identifiers`, status and errors. You need one of the "View customers" or "View transactions" permissions to use this endpoint. - [Initiate a batch-process](https://docs.mesh.complyadvantage.com/reference/bulkuploaderpostv2batchprocessing.md): This endpoint initiates a batch process asynchronously for a given workflow type. The response will return an `identifier` that can be used to retrieve the file processing status by polling GET /v2/batch-processing/{identifier}. The workflow types available are: 1. **Create and screen a batch of customers** - This workflow will initiate all of the steps in the ['Create and screen customer asynchronously'](https://docs.mesh.complyadvantage.com/reference/createcustomerandscreenasync) for each of the customers in your file. 2. **Create and monitor a batch of transactions** - This workflow will initiate all of the steps in the 'Create and process transactions asynchronously' for each of the transactions in your file. To learn more about the format of the batch file, see [Batch transaction upload](https://support.complyadvantage.com/hc/en-gb/articles/36369611503633-Batch-transaction-upload). The response will include an `identifier` that can be used to check the status of the batch process,as well as any validation errors that have caused the file to not be processed. To invoke 'create-and-screen' workflow, you need "Access to base customer screening functionality" enabled and the "Create and screen customers" permission. To invoke 'create-and-monitor' workflow, you need "Access to base transaction monitoring functionality" enabled. - [Delete a batch process](https://docs.mesh.complyadvantage.com/reference/bulkuploaderdeletev2batchprocessing.md): Given an `identifier`, this endpoint will delete a file that has failed validation. Files that were successful cannot be deleted using this endpoint. You need "Access to base transaction monitoring functionality" enabled and the "Create and screen customers" permission to use this endpoint. - [Get the state for a single batch process](https://docs.mesh.complyadvantage.com/reference/bulkuploadergetv2batchprocessing.md): Given an `identifier`, this endpoint will return the status for a single batch process. You need one of the "View customers" or "View transactions" permissions to use this endpoint. - [Download a summary report](https://docs.mesh.complyadvantage.com/reference/bulkuploaderdownloadreportv2batchprocessing.md): This endpoint returns a URL to download a CSV report for batch upload processes where one or more customers failed to be processed. Use the batch process identifier in the request in order to access the report URL. You need one of the "View customers" or "View transactions" permissions to use this endpoint. - [Get list of case workflows](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesworkflowsget.md): This endpoint returns a page of workflows. - [Get a specific case workflow](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesworkflowsworkflow_identifierget.md): This endpoint returns the latest version of a single workflow by ID. - [Update a specific case workflow](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesworkflowsworkflow_identifierput.md): This endpoint updates a single workflow by ID. Supported Operations: - Rename Stages: - You can change the name of existing stages - Any change in name will apply to all cases, including closed cases. Ensure the new stage name preserves the original meaning to maintain integrity in audit logs, insights, and reports - Renaming decisions does not change their decision type - Reorder Stages: - Stages of types Reviews and Decision can be reordered across the new display order - Stages can only be reordered within their types - Add Stages: - Review stage: - a minimum of 1 review stage is needed - a maximum of 8 review stages are allowed - Decisions: - a minimum of 2 decisions are needed and this should include one of each: - positive - negative - a maximum of 8 decisions are allowed - Change Alert Grouping: - Alert Grouping can be set to true or false - If the property is not set no change will be made You need the "Update case workflows" permission to use this endpoint. - [Get a specific version of a case workflow](https://docs.mesh.complyadvantage.com/reference/casesservicev2casesworkflowsworkflow_identifierversionsversionget.md): This endpoint returns a specific version of a single workflow by ID. - [Get your client details](https://docs.mesh.complyadvantage.com/reference/identity_v2_clients_me_getmyclient.md): Returns your client details. - [Get list of accounts within your client](https://docs.mesh.complyadvantage.com/reference/identity_v2_clients_me_accounts_getmyclientsaccounts.md): Returns a list of accounts within your client. You need the "View all accounts" permission to use this endpoint. - [Retrieve list of users in the client](https://docs.mesh.complyadvantage.com/reference/identity_v2_clients_me_users_getclientusers.md): Retrieve list of users in the client. You need the "View users" permission to use this endpoint if no value is passed for the `identifier` query param. - [Retrieve all custom lists](https://docs.mesh.complyadvantage.com/reference/customlistapiallcustomlists.md): Retrieve all custom lists regardless of their status You need "Access to custom lists for customer screening" enabled to use this endpoint. - [Create a new custom list](https://docs.mesh.complyadvantage.com/reference/customlistapinewcustomlist.md): Create a new empty custom list ready to be populated You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Add a specific entity to a list](https://docs.mesh.complyadvantage.com/reference/customlistapinewentityaddedtolist.md): Register the operation to add a new entity to an existing and active custom list. The entity will be effectively added asynchronously and will be searchable later. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Add or update a specific entity to a list](https://docs.mesh.complyadvantage.com/reference/customlistapinewentityaddedorupdatedtolist.md): Register the operation to add or update a new entity to an existing and active custom list. The entity will be effectively added or updated asynchronously and will be searchable later. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Archive an entity from a list](https://docs.mesh.complyadvantage.com/reference/customlistapientityarchivedfromlist.md): Register the operation to archive an existing entity to an existing custom list. The entity will be archived asynchronously and will be removed from search later. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Fetch a specific entity from a list](https://docs.mesh.complyadvantage.com/reference/customlistapifetchlatestentitybyid.md): Retrieve the latest version of an entity by id within a list You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Add a risk word](https://docs.mesh.complyadvantage.com/reference/customlistapiaddriskwordtolist.md): Adds a single risk word to a custom list of type `RISK_WORD`. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Add or update a risk word](https://docs.mesh.complyadvantage.com/reference/customlistapiaddorupdateriskwordinlist.md): Adds a risk word to a custom list of type `RISK_WORD`, or updates it if a risk word with the same identifier already exists. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Delete a risk word](https://docs.mesh.complyadvantage.com/reference/customlistapiarchiveriskwordfromlist.md): Removes a single risk word from a custom list of type `RISK_WORD`, identified by its identifier. The risk word will be archived asynchronously and removed from search later. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Retrieve a risk word](https://docs.mesh.complyadvantage.com/reference/customlistapifetchriskwordbyid.md): Retrieves a single risk word from a custom list of type `RISK_WORD` by its identifier. You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Delete a custom list by its identifier](https://docs.mesh.complyadvantage.com/reference/customlistapideletecustomlistbyid.md): Deletes a custom list if it's not being used by a Screening Configuration You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Retrieve a custom list from its identifier](https://docs.mesh.complyadvantage.com/reference/customlistapifetchcustomlistbyid.md): Retrieve the custom list details by identifier You need "Access to custom lists for customer screening" enabled and the "Create, update, and delete custom lists and their entities, and download entities" permission to use this endpoint. - [Get a list of custom fields](https://docs.mesh.complyadvantage.com/reference/customergetcustomfields.md): This endpoint returns a paginated list of custom fields which can be optionally filtered by customer type. You need the "View customers" permission to use this endpoint. - [Create a custom field for customers](https://docs.mesh.complyadvantage.com/reference/customercreatecustomfield.md): Create a new custom field to be used in the customer schema. You need the "Manage customer custom fields" permission to use this endpoint. - [Update customer custom fields](https://docs.mesh.complyadvantage.com/reference/customerupdatecustomercustomfield.md): Update the display name for a custom field. You need the "Manage customer custom fields" permission to use this endpoint. - [Retrieve the labels for a customer](https://docs.mesh.complyadvantage.com/reference/customergetlabelsv2.md): Provides the labels that have been set for the specified customer. You need the "View customers" permission to use this endpoint. - [Set labels for a customer](https://docs.mesh.complyadvantage.com/reference/customerupdatelabels.md): Sets the labels for a customer. The labels you specify replace what was there before. The payload you send is a JSON array of the label UUIDs you want to set for this customer. You need the "Update customers" permission to use this endpoint. - [Get a list of labels](https://docs.mesh.complyadvantage.com/reference/labelmanagergetlabelslist.md): This endpoint allows you to retrieve all the labels in an account. It can also be used to perform a direct search on a label identifier or name, and can be sorted by name or created at of the labels. You need the "View customers" permission to use this endpoint. - [Create new labels](https://docs.mesh.complyadvantage.com/reference/labelmanagercreatelabels.md): This endpoint allows you to create labels by submitting an array of label names. You need the "Create and update labels" permission to use this endpoint. - [Rename label](https://docs.mesh.complyadvantage.com/reference/labelmanagerrenamelabel.md): This endpoint allows you to rename a label You need the "Create and update labels" permission to use this endpoint. - [Get screening configurations](https://docs.mesh.complyadvantage.com/reference/entityscreeninggetconfigurations.md): This endpoint returns a list of configurations with its metadata - [Create screening configuration](https://docs.mesh.complyadvantage.com/reference/entityscreeningcreateconfiguration.md): This endpoint creates a new screening configuration You need "Access to base customer screening functionality" enabled and the "Create and update customer screening configurations" permission to use this endpoint. - [Update screening configuration](https://docs.mesh.complyadvantage.com/reference/entityscreeningupdateconfiguration.md): This endpoint updates a screening configuration details You need "Access to base customer screening functionality" enabled and the "Create and update customer screening configurations" permission to use this endpoint. - [Get screening configuration versions](https://docs.mesh.complyadvantage.com/reference/entityscreeninggetconfigurationversions.md): This endpoint returns all versions of a screening configuration - [Get a screening configuration version](https://docs.mesh.complyadvantage.com/reference/entityscreeninggetconfigurationversion.md): This endpoint returns a version of a configuration with its metadata - [List permissions](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_permissions_listpermissions.md): List permissions. DEPRECATED: Please use GET /v3/iam/permissions instead. - [List permission groups with permissions](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_permissions_groups_listpermissiongroups.md): List permission groups - [Get list of roles](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_roles_getroles.md): Returns a list of roles. You need the View roles in organization permission to use the account_identifier parameter. You need the "View roles in account" permission to use this endpoint. - [Create a new role](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_roles_createrole.md): You need the "Create, update, and delete roles in account" permission to use this endpoint. - [Archive a role](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_roles_role_identifier_deletespecificrole.md): You need the "Create, update, and delete roles in account" permission to use this endpoint. - [Get details about a role](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_roles_role_identifier_getspecificrole.md): Returns details for a given role. You need the "View roles in account" permission to use this endpoint. - [Partial update an existing role](https://docs.mesh.complyadvantage.com/reference/identity_v2_iam_roles_role_identifier_updateaccountrole.md): You need the "Create, update, and delete roles in account" permission to use this endpoint. - [List permissions](https://docs.mesh.complyadvantage.com/reference/identity_v3_iam_permissions_listpermission.md): List permissions - [Get payment screening configurations](https://docs.mesh.complyadvantage.com/reference/paymentscreeningfetchconfigurationsummaries.md): This endpoint returns a list of all payment screening configurations with their metadata Payment screening configurations define which lists a transaction will be screened against and the fuzziness that should be applied to the search. You can create multiple configurations in your account. Each payment screening configuration can have multiple versions. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Create payment screening configuration](https://docs.mesh.complyadvantage.com/reference/paymentscreeningcreateconfiguration.md): This endpoint allows you to create a new payment screening configuration. Payment screening configurations define which lists a transaction will be screened against and the settings to apply to the search. You can create multiple configurations in your account and each configuration can have multiple versions. Within the configuration are one or more source collections. A source collection contains: * The sanctions lists you wish to screen against * A global fuzziness score (a spectrum with 0 as exact search, 100 as very broad search) * Name search options: * Name fuzziness score that, if present, overrides the global fuzziness * Search options * Reference text search options: * Reference text fuzziness score that, if present, overrides the global fuzziness * Search options * BIC search strictness In addition, you can choose to omit your customer from the screening. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Retrieve latest payment screening configuration by id](https://docs.mesh.complyadvantage.com/reference/paymentscreeningfetchlatestconfiguration.md): This endpoint provides full details of the latest version of the payment screening configuration specified by the configuration ID. Payment screening configurations define which lists a transaction will be screened against, and the fuzziness that should be applied to the search. You can create multiple of these in your account. Each payment screening configuration can have multiple versions. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Create a new version of a configuration](https://docs.mesh.complyadvantage.com/reference/paymentscreeningupdateconfiguration.md): This endpoint creates a new version of a payment screening configuration. Specify the details of the new version, as you would when creating a new configuration. The new version will be created with an incremented version number. Payment screening configurations define which lists a transaction will be screened against and the settings to apply to the search. You can create multiple configurations in your account and each configuration can have multiple versions. Within the configuration are one or more source collections. A source collection contains: * The sanctions lists you wish to screen against * A global fuzziness score (a spectrum with 0 as exact search, 100 as very broad search) * Name search options: * Name fuzziness score that, if present, overrides the global fuzziness * Search options * Reference text search options: * Reference text fuzziness score that, if present, overrides the global fuzziness * Search options * BIC search strictness In addition, you can choose to omit your customer from the screening. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Get payment screening configuration versions](https://docs.mesh.complyadvantage.com/reference/paymentscreeningfetchconfigurationversions.md): This endpoint returns all versions of a screening configuration. Payment screening configurations define which lists a transaction will be screened against, and the fuzziness that should be applied to the search. You can create multiple of these in your account. Each payment screening configuration can have multiple versions. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Get a payment screening configuration version](https://docs.mesh.complyadvantage.com/reference/paymentscreeningfetchconfigurationbyversion.md): This endpoint returns a version of a payment screening configuration with its metadata. Payment screening configurations define which lists a transaction will be screened against, and the fuzziness that should be applied to the search. You can create multiple of these in your account. Each payment screening configuration can have multiple versions. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Retrieve risks for a transaction](https://docs.mesh.complyadvantage.com/reference/paymentscreeninggetrisksbytransaction.md): Retrieve all payment-screening risks attached to a single transaction. The transaction is addressed by exactly one of two mutually exclusive query parameters: `transaction_identifier` (the internal ComplyAdvantage payment identifier, a UUID) or `transaction_external_identifier` (the client's own external payment reference, an arbitrary string). Supplying both, or neither, is a 400. Returns a 200 with an empty `risks` array when the transaction exists but produced no risks. Results are ordered by `created_at` ascending; ties are broken by risk `identifier`. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Bulk risk status update](https://docs.mesh.complyadvantage.com/reference/paymentscreeningbulkupdateriskstatus.md): Update the status of multiple risks in one request, by risk identifier. Outcomes are reported per-item (partial success): well-formed identifiers that do not resolve within the account scope are reported as success=false / NOT_FOUND rather than failing the whole request. Returns 207 Multi-Status for every well-formed, processed batch. You need "Access to base payment screening functionality" enabled to use this endpoint. - [Update a single risk status](https://docs.mesh.complyadvantage.com/reference/paymentscreeningupdateriskstatus.md): Update the status of a single risk using its identifier You need "Access to base payment screening functionality" enabled to use this endpoint. - [Bulk create or update CTR transaction locations](https://docs.mesh.complyadvantage.com/reference/regulatoryreportingbulkupsertctrtransactionlocations.md): Bulk create or update CTR transaction location prefill information, identified by their external identifier: existing entries are updated and new ones are created. Each entry is independently validated and processed — partial success is a valid outcome. You need the account-level "Account has access to FinCEN CTR reports" permission and the user-level "Manage settings such as pre-fill data for FinCEN CTR reports" permission to use this endpoint. - [Bulk delete CTR transaction locations](https://docs.mesh.complyadvantage.com/reference/regulatoryreportingbulkdeletectrtransactionlocations.md): Bulk delete CTR transaction location prefill information by external identifier. Each entry is independently processed — partial success is a valid outcome. You need the account-level "Account has access to FinCEN CTR reports" permission and the user-level "Manage settings such as pre-fill data for FinCEN CTR reports" permission to use this endpoint. - [Bulk create or update SAR financial institutions](https://docs.mesh.complyadvantage.com/reference/regulatoryreportingbulkupsertsarfinancialinstitutions.md): Bulk create or update SAR financial institutions, agents, and branches, identified by their external identifier: existing entries are updated and new ones are created. Processing order is: standalone FIs → agents → branches. Each entry is independently validated — partial success is a valid outcome. You need the account-level "Account has access to FinCEN SAR reports" permission and the user-level "Manage settings such as pre-fill data for FinCEN SAR reports" permission to use this endpoint. - [Bulk delete SAR financial institutions](https://docs.mesh.complyadvantage.com/reference/regulatoryreportingbulkdeletesarfinancialinstitutions.md): Bulk delete SAR financial institutions, agents, and branches by external identifier. Each entry is independently processed — partial success is a valid outcome. You need the account-level "Account has access to FinCEN SAR reports" permission and the user-level "Manage settings such as pre-fill data for FinCEN SAR reports" permission to use this endpoint. - [Create a new user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_createuser.md): Creates a new user. To enable the user to access an account, they must be assigned at least one role. A user will not be sent an email invite until assigned at least one role. Follow these steps to create and configure a user: 1. **Create user:** Create the user by calling `POST /users`. 2. **Get role(s):** Use `GET /roles` to fetch the role_identifier(s) you wish to assign to the user. 3. **(Optional) Get account**: If you need to assign roles for an account you're not currently logged into but within the same organization, retrieve the relevant `account_identifier` using `GET clients/me/accounts`. 4. **Assign user role**: Use `POST /users/{user_identifier}/roles` to assign the user to an account with a list of `role_identifier(s)` and optionally the `account_identifier` if applicable. You need the "Create and update users" permission to use this endpoint. - [Get details about your user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_me_getmyuser.md): Returns details about your user. - [Update your user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_me_patchmyuser.md): Update details for your user. This endpoint cannot be used with API credentials. - [Get accounts for your user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_me_accounts_getmyaccounts.md): Returns a list of accounts for your user. This endpoint cannot be used with API credentials. - [Get permissions for your user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_me_permissions_getmypermissions.md): Returns your permissions. - [Bulk assign user roles](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_roles_bulk_bulkupdateuseraccountroles.md): Set the roles for a list of users in an account. You need the "Assign roles in account" permission to use this endpoint. - [Get details about a user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_user_identifier_getspecificuser.md): Returns details for a given user. - [Update an existing user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_user_identifier_partialupdateuser.md): Updates details for a given user. You need the "Create and update users" permission to use this endpoint. - [Get accounts for a user](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_user_identifier_accounts_getspecificusersaccounts.md): Returns a list of accounts for a given user. You need the "View users" permission to use this endpoint. - [Assign user roles](https://docs.mesh.complyadvantage.com/reference/identity_v2_users_user_identifier_roles_updateuseraccountroles.md): Set the roles of a user in an account. You need the "Assign roles in account" permission to use this endpoint. - [List Lookup Lists for an account](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicelistlookuplists.md): Lists all Lookup Lists for an account, returning the latest version of each. You need the "View lookup lists" permission to use this endpoint. - [Create a new Lookup List](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicecreatelookuplist.md): Creates a new Lookup List with a schema. You need the "Create and update lookup lists" permission to use this endpoint. - [Get a Lookup List by identifier](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicegetlookuplist.md): Gets the latest version of a Lookup List by identifier. You need the "View lookup lists" permission to use this endpoint. - [Update lookup list name](https://docs.mesh.complyadvantage.com/reference/meshenrichmentserviceupdatelookuplist.md): Updates a Lookup List name. You need the "Create and update lookup lists" permission to use this endpoint. - [Delete a lookup list draft version by identifier](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicedeletelookuplistversion.md): Deletes the latest version of a Lookup List if its status is draft. You need the "Create and update lookup lists" permission to use this endpoint. - [Promote a DRAFT version to ACTIVE](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicepostpromotedraft.md): Promotes a version that is in DRAFT, changing it to ACTIVE. You need the "Create and update lookup lists" permission to use this endpoint. - [List all versions for a Lookup List](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicelistlookuplistversions.md): Returns all versions of a Lookup List in an account, sorted by created date. You need the "View lookup lists" permission to use this endpoint. - [Creates a new lookup list version](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicecreatelookuplistversion.md): Creates a new Lookup List version. You need the "Create and update lookup lists" permission to use this endpoint. - [Download a CSV file containing all items for a Lookup List Version](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicelistlookuplistversionitemsdownload.md): Returns a CSV file containing all items from a lookup list version. You need the "View lookup lists" permission to use this endpoint. - [List all items for a Lookup List Version](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicelistlookuplistversionitems.md): Returns all items from a Lookup List version. You need the "View lookup lists" permission to use this endpoint. - [List all Lookup List Mappings](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicelistlookuplistmappings.md): Returns all Lookup List Mappings for the account, optionally filtered by status and/or lookup list identifier, sorted by created date. You need the "View lookup lists" permission to use this endpoint. - [Create a new Lookup List Mapping](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicecreatelookuplistmapping.md): Create a new Lookup List Mapping record associated with a specific Lookup List. You need the "View lookup lists" and "Create and update lookup lists" permissions to use this endpoint. - [Lists all available Source Fields for Lookup List Mappings](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicelistallavailablesourcefields.md): Lists all available Source Fields for Lookup List Mappings, allowing filtering by type. Deliberately not paginated. You need the "View lookup lists" permission to use this endpoint. - [Delete a Lookup List mapping by identifier](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicedeletelookuplistmapping.md): This deletion will maintain the lookup list mapping record but setting its status to INACTIVE. You need the "View lookup lists" and "Create and update lookup lists" permissions to use this endpoint. - [Get a single Lookup List Mapping by identifier](https://docs.mesh.complyadvantage.com/reference/meshenrichmentservicegetlookuplistmapping.md): Returns a single Lookup List Mapping by its identifier. You need the "View lookup lists" permission to use this endpoint. - [Update a Lookup List Mapping](https://docs.mesh.complyadvantage.com/reference/meshenrichmentserviceupdatelookuplistmapping.md): Updates a Lookup List Mapping by creating a new record with the updated values, and marking the old one as INACTIVE, so that it is not used anymore, but it's kept for audit purposes. You need the "View lookup lists" and "Create and update lookup lists" permissions to use this endpoint. - [Get a list of transactions](https://docs.mesh.complyadvantage.com/reference/meshsearchservicegettransactions.md): Returns all transactions in an account with the ability to search, sort and filter. You need the "View Transactions" permission to use this endpoint. Additionally, you need either "Access to base transaction monitoring functionality" and/or "Access to base payment screening functionality" to use this endpoint. - [List custom fields for the account](https://docs.mesh.complyadvantage.com/reference/activitystorelistcustomfields.md): Returns a paginated list of transaction custom fields configured for the account. - [Create a new custom field](https://docs.mesh.complyadvantage.com/reference/activitystorecreatecustomfield.md): When you submit a custom field to us, an internal identifier will be assigned. This API allows you to create a custom field for your account. - [Update an existing custom field](https://docs.mesh.complyadvantage.com/reference/activitystoreupdatecustomfield.md): Update the display_name and/or description of an existing custom field for your account. - [Retrieve a Transaction using your identifier as a reference](https://docs.mesh.complyadvantage.com/reference/activitystoregettransactionusingexternalidentifier.md): When you submit a Transaction to us, you provide us with your identifier for the Transaction. This API allows you to retrieve a Transaction using this identifier you supplied to us. - [Create and process a transaction](https://docs.mesh.complyadvantage.com/reference/orchestrationlayerapipostv3transactionprocess.md): Creates a transaction and executes our payment screening and transaction monitoring processes. The response will indicate whether the transaction should be held or processed. Updates a transaction if a transaction with the same external_identifier, occurred_at, customer_external_identifier and details.type already exists but other data has changed. Supports updating existing transactions on the Synchronous Transaction Monitoring flow only; not supported for fast payment screening or async flows. This endpoint requires PAYMENT_SCREENING_BASE and/or TRANSACTION_MONITORING_BASE account permission depending on the configuration identifies supplied with the payload. - [Retrieve a Transaction using our identifier](https://docs.mesh.complyadvantage.com/reference/activitystoregettransactionusinginternalidentifier.md): When you submit a transaction to us we allocate an internal identifier for the Transaction. This API allows you to retrieve a Transaction using the identifier we set when we received your transaction. - [Make a decision on a held transaction](https://docs.mesh.complyadvantage.com/reference/activitystoreposttransactionreviewdecision.md): When a transaction is held (evaluation_outcome=HOLD), a decision can be made to either release or reject the transaction. This decision will be recorded in the review_decision field and sent as a webhook, if configured. This endpoint cannot be used for transactions that are not held. - [Set or clear risk types for a transaction](https://docs.mesh.complyadvantage.com/reference/activitystoresettransactionrisktypes.md): This endpoint allows you to set the risk types for a transaction. Currently supports setting the risk to 'r_fraud' or removing all risks by passing an empty list. - [Retrieve all versions of a Transaction](https://docs.mesh.complyadvantage.com/reference/activitystorelisttransactionversions.md): Returns a paginated list of all versions of a Transaction, sorted by version in descending order. Initially every transaction has exactly one version. - [Retrieve a specific version of a Transaction using our identifier](https://docs.mesh.complyadvantage.com/reference/activitystoregettransactionversionbyinternalidentifier.md): When you submit a transaction to us we allocate an internal identifier for the Transaction. This API allows you to retrieve a specific version of a Transaction using the identifier we set when we received your transaction. ## Pages - [API authentication](https://docs.mesh.complyadvantage.com/page/authentication.md) - [Conceptual differences](https://docs.mesh.complyadvantage.com/page/conceptual-differences.md) - [Checking for hits/profiles](https://docs.mesh.complyadvantage.com/page/hits.md) - [Overview](https://docs.mesh.complyadvantage.com/page/mesh-upgrade-guide.md) - [Onboarding and screening a customer](https://docs.mesh.complyadvantage.com/page/onboarding.md) - [Retrieving detailed entities/profile information](https://docs.mesh.complyadvantage.com/page/risks.md) - [Terminology](https://docs.mesh.complyadvantage.com/page/terminology.md)