Documentation Index
Fetch the complete documentation index at: https://docs.gr4vy.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Silent mode lets you run one or more anti-fraud services alongside your Primary service without enforcing their decisions. Whenever a Flow rule triggers an anti-fraud check, Silent services are evaluated alongside the Primary, return decisions, and write transaction history events — but those decisions never reject, step up, or otherwise affect the customer’s flow. This is the recommended way to:- Warm up a new service. Let it gather data and tune its models on real traffic before you switch over.
- Validate a new service before switching over. Compare its decisions against your Primary in the dashboard.
- Decommission an old service gradually. Keep the outgoing service in Silent mode for monitoring after switching to a new Primary.
Connection modes
Each configured service is in one of three modes (see Anti-fraud overview):| Mode | Receives traffic? | Decision enforced? |
|---|---|---|
| Primary | Yes (when an anti-fraud check runs) | Yes |
| Silent | Yes (when an anti-fraud check runs) | No (logged only) |
| Inactive | No | — |
How it works
Anti-fraud services are only called when a Flow rule that depends on an anti-fraud score or decision triggers for a transaction (see Anti-fraud overview). When that happens:- The Primary service is called synchronously so its decision can be evaluated against your Flow rules.
- Each Silent service is called asynchronously via the message queue, so it never adds latency to the transaction.
- All checks (Primary and Silent) are stored against the transaction. The dashboard surfaces every Silent decision as a transaction history event so you can compare side-by-side without affecting the customer.
- If a webhook arrives for a Silent service (for example, a Cybersource Decision Manager review status change), the corresponding check is updated, but no further action is taken on the transaction.
Fingerprinting with multiple services
No matter how many anti-fraud services you have configured (Primary + any number of Silent), your integration only ever passes one device fingerprint value per transaction. There is no per-provider fingerprint field.
anti_fraud_fingerprint, and the platform forwards it to the Primary and each Silent service using whatever per-provider mapping that connector defines. See each connector’s documentation for the specific field it expects.
End-to-end flow with Embed (Primary + Silent)
When you use Embed (web or mobile), this happens automatically — adding a Silent service requires no code changes in your integration. If you don’t use Embed, see Automatic anti-fraud device fingerprinting for how to loadf.js yourself or how to seed the same identifier into native mobile SDKs.
Migration pattern
The intended migration playbook for switching from one anti-fraud provider to another:Add the new provider as Silent
Configure the new provider in the dashboard with connection mode set to Silent. Your existing Primary keeps enforcing decisions; the new provider starts collecting data and emitting decisions side-by-side.
Compare in the dashboard
Review the side-by-side decisions on transactions over a representative period (typically a few weeks). Tune the new provider’s rules and models as needed.
Promote the new provider
Flip the flags: set the new provider to Primary and the old provider to Silent (or Inactive). No client-side change is required — the same
anti_fraud_fingerprint value keeps flowing on every transaction; only enforcement changes.API reference
Connection mode is set via the Update anti-fraud service API:Request body
active and silent at the same time:
active: truemakes the service Primary (the existing Primary, if any, is automatically deactivated).silent: truemakes it Silent.- If both are
false, the service is Inactive.
anti_fraud_service_definition_id is required by the schema, but the underlying provider can’t be changed on update — you must echo the service’s existing definition string (for example, sift-anti-fraud). Read it from the dashboard or from the Get anti-fraud service API response for the service you’re updating.