Rule templates
List templates
Endpoint:GET /v1/rule-templates
List available pre-built templates with pagination and filtering.
Get a template
Endpoint:GET /v1/rule-templates/{id}
Copy a template
Endpoint:POST /v1/rule-templates/{id}/copy
Copy a template into your workspace as a draft rule that you can customize.
ruleId of the newly created draft.
Rules
Create a rule
Endpoint:POST /v1/rules
Create a rule from scratch with custom conditions and actions. The rule is created in draft status.
Rule structure
List rules
Endpoint:GET /v1/rules
List rules with pagination, sorting, and filtering.
Get a rule
Endpoint:GET /v1/rules/{id}
Retrieve a rule by ID. Optionally pass a version query parameter to get a specific version.
Update a rule
Endpoint:PUT /v1/rules/{id}
Modify a rule’s name, description, conditions, or actions. When updating an active rule, pass an optional reason for the audit log.
Updating an active rule creates a new version. The previous version is preserved in the audit history.
Activate a rule
Endpoint:POST /v1/rules/{id}/activate
Activate a draft or disabled rule so it evaluates live transactions.
reason in the request body for audit purposes.
Disable a rule
Endpoint:POST /v1/rules/{id}/disable
Pause an active rule. Disabled rules do not evaluate transactions but can be re-activated.
Only active rules can be disabled. Only draft or disabled rules can be activated.
Delete a rule
Endpoint:DELETE /v1/rules/{id}
Soft-delete a non-active (draft or disabled) rule. Active rules must be disabled first.
Evaluation
Evaluate a transaction
Endpoint:POST /v1/evaluation/evaluate
Evaluate a transaction against all active rules on-demand. This is useful for testing or evaluating transactions outside the normal ingestion flow. On-demand evaluation does not save the transaction and does not create alerts. Use the response body to inspect the decision and matching rules.
from.client.id and to.client.id. You can send referenceId instead of id when it is the stable identifier from your system. A flat clientId field does not identify a transfer’s sender and recipient.
For bank-account rules, ingest the bank accounts first and send from.bankAccount.id and to.bankAccount.id. Corsa loads bank-account facts from those IDs. Account or routing numbers in the evaluation payload do not replace the account IDs.
For aggregation rules, aggregationIncludeCurrentTransaction controls whether the transaction in this request is part of the result. When it is true, Corsa evaluates history plus the current transaction. When it is omitted or false, Corsa evaluates history only.
Evaluation response
Results by rule
Endpoint:GET /v1/evaluation/rule/{ruleId}/results
See all transactions evaluated against a specific rule.
Results by transaction
Endpoint:GET /v1/evaluation/transaction/{transactionId}/results
See all rules evaluated against a specific transaction.
Use the Corsa transaction UUID for {transactionId}, not your integration referenceId.
What’s next?
Ingest operations
Ingest deposits, withdrawals, and trades to be evaluated by your rules.
Manage alerts & cases
Manage alerts created by rule evaluations.
Building rules
Use the no-code Rule Builder to create and test rules visually.
Conditions reference
Full reference for operators, entities, and aggregations.