Monitoring Payment Orders
Monitor originated payments for signs of fraud or money laundering
Modern Treasury can monitor all of your originated payments for signs of fraud or money laundering.
1. Retrieve API Key
Go to your API Keys page. There you will find your Organization ID and API keys. Your default Sandbox or Production keys have the appropriate permissions. Otherwise, create or modify an API key to have manage permissions for Compliance and Accounts.
2. Create Payment Order
When creating a Payment Order, set the transaction_monitoring_enabled
boolean to true
.
curl --request POST \
-u ORGANIZATION_ID:API_KEY \
--url https://app.moderntreasury.com/api/payment_orders \
-H 'Content-Type: application/json' \
-d '{
"type": "ach",
"amount": 1000,
"direction": "debit",
"currency": "USD",
"originating_account_id": "0f8e3719-3dfd-4613-9bbf-c0333781b59f",
"receiving_account_id": "5acec2ef-987b-4260-aa97-b719eeb0a8d5",
"transaction_monitoring_enabled": true
}'
When the Payment Order is created, transaction monitoring will be kicked off in the background.
3. Monitor Payment Order
When the Payment Order is created, transaction monitoring will be kicked off automatically.
Based on the compliance score, a Payment Order will be automatically approved
, automatically denied
, or have a Case opened for manual review.
Using your sandbox account, you can test these scenarios using select counterparties. If you are unfamiliar with making payments, check out the Payments Quickstart Guide, as well as the Internal Accounts and Counterparties Sandbox details pages. The sandbox will return dummy data and not run live checks on the data submitted, as those require calls to downstream data providers.
Compliance Score | Sandbox Simulation | Result |
---|---|---|
low or medium | Create a debit payment to the default Harry Potter counterparty. | The Payment Order will be automatically approved . |
high | Create a debit payment to the default Snape (ACH/Wire Return) - R03 No Account/Unable to Locate Account counterparty. | A Case will be opened for manual review, and the Payment Order will be in needs_approval state. |
very_high | Create a debit payment to the default Lucius (General Failure) counterparty. | The Payment Order will be automatically denied . |
Additional information about the Payment Order can be found in the related Decision object.
Webhooks are used to provide status updates on Payment Orders. The following are relevant states for transaction monitoring.
Event | Description |
---|---|
payment_order.needs_approval | A Payment Order needs approval when a transaction monitoring Case has been opened or when payment operations approval rules are triggered. |
payment_order.approved | A Payment Order has been approved , either automatically or manually. |
payment_order.denied | A Payment Order has been denied , either automatically or manually. |
If a Payment Order is approved
and will be sent to the bank. If a Payment Order is denied
, it will not be sent (it is a terminal state).
Updated 4 months ago