How halting works
When you create a rule, you choose one of two response modes:- Alert only — Create an alert for analyst review. The transaction proceeds normally.
- Alert + Halt transaction — Create an alert and freeze the transaction until it is explicitly released.
HALT_TRANSACTION action matches a transaction, the evaluation returns a FREEZE decision. If multiple rules match, the final decision is FREEZE if any matching rule includes a halt action.
Evaluation modes
Corsa supports two ways to evaluate transactions against your rules. The key difference is who acts on the decision.Asynchronous evaluation (automatic)
This is the default mode for production transaction monitoring. When you ingest a transaction through the API, Corsa automatically evaluates it against all active rules in the background. If a rule withHALT_TRANSACTION matches:
- The transaction status is set to FROZEN.
- A compliance alert is created with the highest priority from all matching rules.
- The alert includes metadata indicating the transaction was halted.
Synchronous evaluation (on-demand)
You can also evaluate a transaction on demand by calling the evaluation endpoint directly: Endpoint:POST /v1/evaluation/evaluate
decision field:
| Decision | Meaning |
|---|---|
ALLOW | No matching rule requires halting. The transaction can proceed. |
FREEZE | At least one matching rule includes a halt action. You should hold the transaction. |
In synchronous mode, Corsa returns the decision but does not automatically freeze the transaction. Your system is responsible for acting on the
FREEZE decision — for example, by holding settlement until the alert is resolved.Choosing the right mode
| Mode | When to use |
|---|---|
| Async (automatic) | Standard production flow. Transactions are ingested and evaluated automatically. Freezing and alert creation happen without additional code. |
| Sync (on-demand) | Pre-settlement checks where your system needs to make a go/no-go decision before processing a transaction. Useful for payment gateways and real-time authorization flows. |
Transaction statuses
Every transaction in Corsa has a status that reflects its current state:| Status | Description |
|---|---|
PENDING | The transaction is in progress or awaiting processing. |
SUCCESS | The transaction completed successfully. |
FROZEN | The transaction is halted pending compliance review. |
CANCELLED | The transaction was cancelled. |
FAILED | The transaction failed. |
Status flow for halted transactions
A typical halted transaction follows this path:- Transaction is ingested with status PENDING.
- Async evaluation triggers a rule with
HALT_TRANSACTION. - Status changes to FROZEN. A compliance alert is created.
- An analyst reviews the alert and the transaction details.
- Based on the review, the analyst updates the transaction status:
- PENDING or SUCCESS if the transaction is cleared.
- CANCELLED if the transaction should not proceed.
Releasing a frozen transaction
After reviewing the associated alert, update the transaction status to release it: Endpoint:PUT /v1/transactions/{id}/updateStatus
Configuring halt rules
To add halting to a rule, select Alert + Halt transaction in the Rule Builder configure step, or includeHALT_TRANSACTION in the actions array when creating a rule via API:
What’s next?
Building rules
Configure halt actions in the Rule Builder wizard.
Conditions reference
See all operators, entities, and aggregations available for conditions.
Rules and Evaluation API
Full API reference for rule management and evaluation.