AML Checks
ALPPAY can screen incoming payments against anti-money-laundering (AML) risk data. When enabled, every qualifying deposit is checked automatically and the result — risk score, risk level and a danger flag — is attached to the transaction and delivered in your webhooks.
When a Check Is Triggered
AML screening is configured per merchant:
- AML enabled — the master switch for your account.
- AML threshold (USD) — a deposit is checked when its received amount in USD reaches the threshold. Deposits below the threshold are not checked.
Both are managed by your account manager. If the threshold is not set, no automatic checks are performed.
Checks run automatically on incoming payments. You can also request a manual check of any transaction or address from the merchant dashboard (AML section).
Supported Networks
Automatic and manual AML checks are available on:
- Ethereum (
ethereum) - Tron (
tron) - Bitcoin (
bitcoin) - BNB Smart Chain (
bsc) - Solana (
solana) - The Open Network (
ton)
Risk Score and Levels
Each check produces a risk score from 0 to 100, mapped to a risk level:
| Risk Score | Risk Level |
|---|---|
| 0–20 | very_low |
| 21–40 | low |
| 41–60 | medium |
| 61–80 | high |
| 81–100 | very_high |
A transaction with a risk score above 70 is flagged as dangerous (isDanger: true).
The result is attached to the transaction object in API responses and webhooks:
"aml": {
"riskScore": 50,
"isDanger": true,
"riskLevel": "medium",
"riskCheckedAt": "2025-12-04T11:44:44.202175Z",
"amlPriceUsd": "0.18"
}
What Happens on a Dangerous Result
If the check flags the deposit as dangerous:
- the payment is reported with
displayStatus: "AML_CHECK_DANGER"— aCOMPLETEDwebhook is not sent; - the deposit address that received the funds is blocked and excluded from further use;
- the funds are held pending investigation — contact support to resolve the case.
Blocked wallets remain visible in Customer Wallet Balances (includeBlocked=true), so the full history stays available. The complete webhook flow for both outcomes is described in Webhook sequence for AML‑enabled payments.
Pricing
- Each AML check is billable at your configured per-check price. The price applied to a check is snapshotted in its
amlPriceUsdfield. - Downloading the PDF risk report of a check is billed separately: the first download of a given check is charged, repeated downloads of the same check are free. See the report section in Webhook sequence for AML‑enabled payments.
Best Practices
- React to
AML_CHECK_DANGERin your webhook handler — pause order fulfilment and notify your compliance contact. - Do not retry the payment to the same address — a blocked address will not accept further deposits.
- Store the
amlobject with your transaction records for your own audit trail. - Use manual checks before large withdrawals to counterparties you have not screened before.