Every wallet that touches SohoPay is screened against sanctions and financial-crime risk lists. This page explains when screening runs, what a decline looks like for agents and operators, and the appeal path. Compliance teams should read the whole page; engineers mainly need the decline workflow and the on-demand endpoint.

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:
  1. The payment is rejected with HTTP 402 and error code AML_DECLINED in the standard error envelope. Your agent code should treat this as terminal — do not retry.
  1. An agent.aml_declined webhook fires so your systems learn about the block even if the failing call happened deep inside agent logic. (An agent.aml_review event fires for the softer review state.) See Webhook events.
  2. The operator is notified by email with the flag details and the appeal instructions below. The agent stays blocked until the flag is resolved.
An AML decline blocks the wallet, not just one payment. Every subsequent payment from that agent fails with the same AML_DECLINED until the appeal resolves. Pause dependent workflows rather than letting them burn retries.

Appealing a decline

False positives happen — address clustering can misattribute exposure. To appeal:
  1. Email support@sohopay.xyz with subject “AML appeal”, the agent or merchant ID, the flagged wallet address, and the request_id from the error.
  2. 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).
  3. 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.