> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.finrock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# POST /dac/v1/aml — Configure AML Screening Settings

> Enable or update AML screening for your sub-account. Set your provider, supply an API token, configure risk thresholds and screening directions.

Finrock's AML screening integration lets you automatically flag or freeze transactions and addresses that exceed your configured risk threshold. This endpoint allows you to enable AML screening for your sub-account, select your preferred provider, supply your provider API key, and specify the exact risk levels and transaction directions to screen. Once configured, every deposit and/or withdrawal is checked in real time against the provider's database of known illicit and high-risk addresses.

## AML Providers and Risk Levels

| Provider    | Supported Risk Levels             |
| ----------- | --------------------------------- |
| Chainalysis | `SEVERE`, `HIGH`, `MEDIUM`, `LOW` |
| Cipertrace  | `SEVERE`, `HIGH`, `MEDIUM`, `LOW` |
| AMLBot      | `SEVERE`, `HIGH`, `MEDIUM`, `LOW` |

## Request

**Method:** `POST`
**URL:** `https://api.finrock.io/dac/v1/aml`

<ParamField body="provider" type="string" required default="Chainalysis">
  The AML provider to use for screening. Must be one of `Chainalysis`, `Cipertrace`, or `AMLBot`.
</ParamField>

<ParamField body="aml_token" type="string" required>
  The API key issued by your chosen AML provider. Finrock uses this token to authenticate requests to the provider on your behalf.
</ParamField>

<ParamField body="aml_risk_levels" type="string" required default="SEVERE, HIGH">
  A comma-separated list of risk levels that trigger a freeze or block. For example: `SEVERE, HIGH` or `SEVERE, HIGH, MEDIUM`. Transactions from addresses flagged at any listed risk level will be held.
</ParamField>

<ParamField body="aml_deposit" type="boolean" required default="true">
  Set to `true` to enable AML screening on incoming deposits. When enabled, Finrock checks the sender address against the provider's dataset before crediting the deposit.
</ParamField>

<ParamField body="aml_withdrawal" type="boolean" required default="true">
  Set to `true` to enable AML screening on outgoing withdrawals. When enabled, Finrock checks the destination address before releasing the withdrawal.
</ParamField>

## Example Request

```bash theme={null}
curl --request POST \
     --url https://api.finrock.io/dac/v1/aml \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '{
  "provider": "Chainalysis",
  "aml_token": "your-chainalysis-api-key",
  "aml_risk_levels": "SEVERE, HIGH",
  "aml_deposit": true,
  "aml_withdrawal": true
}'
```

## Response

A `200` response confirms that the AML settings have been saved and are now active. A `400` response indicates missing required fields or an invalid provider value.

<ResponseField name="200" type="object">
  Confirms the AML configuration was updated successfully.
</ResponseField>

<ResponseField name="400" type="object">
  Returned when required fields are missing, the provider value is invalid, or the `aml_token` fails validation.
</ResponseField>

<Warning>
  Once AML screening is active, deposits or withdrawals from addresses flagged at your selected risk levels will be automatically frozen. Ensure your `aml_risk_levels` threshold aligns with your compliance policy before enabling in production.
</Warning>
