Transaction Monitoring & Risk Rules
Stables screens customers and monitors payments for money laundering, fraud, sanctions exposure and activity that does not fit a customer's profile. Most payments pass without you noticing. This page explains what happens when one does not, and what your integration needs to handle.
Stables compliance sets the risk rules and changes them as risks change. The rules themselves are not published, so build around the outcomes below rather than around specific thresholds.
What is checked
- Customers, when they are verified and on an ongoing basis: identity, sanctions and politically exposed person (PEP) screening, and whether their profile calls for more information. See Country Restrictions & Sanctions Screening.
- Payments, as they are created and processed: amounts and frequency against the customer's profile and history, the countries and parties involved, and, for stablecoin transfers, screening of the wallets involved. See Travel Rule.
What can happen
| Outcome | When | What you see | What to do |
|---|---|---|---|
| Step-up at verification | A customer's profile needs more than base verification | The verification level stays pending, with a verification RFI | Answer the step-up requirements |
| Payment held | A payment needs more information or a manual review | A transfer moves to compliance_hold, or a virtual account deposit is held, with a transaction RFI | Answer the RFI, for example with source of funds evidence |
| Request from compliance | Stables compliance needs something about a customer or a payment | A manual RFI. Nothing is held | Answer the RFI |
| Payment declined | A held payment does not pass review | The transfer leaves compliance_hold without completing | Contact Stables support if you need more detail |
Every outcome that needs something from you arrives as a Request for Information (RFI).
Handle it in your integration
- Subscribe to the RFI webhooks (
rfi.created,rfi.updated,rfi.resolved) and totransfer.updated.status_transitioned. See Webhooks. - Treat
compliance_holdas a normal transfer state, not an error. A transfer can resume from it once its RFI is satisfied. See Transfer states. - Show the customer what is needed: tell them their payment is under review, and collect any information the RFI asks for in your product.
- Keep customer profiles current: expected volumes, account purpose and occupation set the baseline that activity is compared with. Activity far outside it is more likely to be held.
- Declare the sending wallet on stablecoin transfers with
source_wallet, so the wallet can be attributed correctly. See Travel Rule.