When screening happens
Screening is powered by Didit Wallet Screening, integrated directly into SohoPay — you don’t need your own Didit account, contract, or API key.
Screening a wallet on demand
You can screen any address yourself before onboarding a counterparty or configuring a settlement wallet:Response
When the result is not
clear, flags lists the reasons, e.g. ["sanctions_match"], ["mixer_exposure"], ["darknet_market_exposure"].
The AML decline workflow
When a flagged agent wallet attempts a payment, three things happen:- The payment is rejected with HTTP
402and error codeAML_DECLINEDin the standard error envelope. Your agent code should treat this as terminal — do not retry.
-
An
agent.aml_declinedwebhook fires so your systems learn about the block even if the failing call happened deep inside agent logic. (Anagent.aml_reviewevent fires for the softerreviewstate.) See Webhook events. - The operator is notified by email with the flag details and the appeal instructions below. The agent stays blocked until the flag is resolved.
Appealing a decline
False positives happen — address clustering can misattribute exposure. To appeal:- Email support@sohopay.xyz with subject “AML appeal”, the agent or merchant ID, the flagged wallet address, and the
request_idfrom the error. - Attach documentation: proof of wallet ownership and control, source-of-funds explanation, and any context on the flagged exposure (e.g. an inbound transfer you didn’t solicit).
- Appeals are reviewed within 24–48 hours. Cleared wallets are unblocked immediately and you’re notified by email; upheld declines include the reason and any remaining options.
Processor compliance and additional screening
- OFAC / sanctions screening is part of every check: wallets and (during KYB) entities, signers, and beneficial owners are screened against OFAC SDN and equivalent international sanctions lists. Sanctions matches are hard declines and are also subject to regulatory reporting obligations — these cannot be waived by appeal unless the match is a false positive.
Flagright is used for transaction-monitoring and processor-facing compliance requirements (e.g. Visa-style program rules), on SohoPay’s compliance roadmap alongside the Didit integration. Chainalysis screening is available on request for enterprise integrators whose own compliance programs require it — contact support@sohopay.xyz.
Next steps
KYB Verification
Where merchant-side screening fits in the onboarding flow.
Error Handling
Handle AML_DECLINED and other 4xx errors correctly in agent code.
Webhook Events
Full payloads for agent.aml_review and agent.aml_declined.

