How 3DS works across connections
A Flow routing rule can list more than one connection. Gr4vy tries each connection in order, and moves on to the next one after a failure or retriable decline. 3DS runs at most once per transaction:- Gr4vy authenticates the card on the first connection in the list that has 3DS turned on. It uses the acquirer details of the scheme profile or merchant account configuration that matches the transaction.
- The connection authorizes the transaction with the 3DS result.
- If the transaction is retried on the next connection, Gr4vy sends the same 3DS result to that connection. The buyer isn’t authenticated again.
- Connections that can’t accept 3DS data from Gr4vy are skipped once a transaction has a 3DS result.
- If a retry uses a different card scheme, for example with co-badged routing, the 3DS result isn’t sent. The result is only valid for the scheme it was created for.
- If 3DS fails, the transaction isn’t retried on another connection.
Connections that run their own 3DS
Some payment services run 3DS themselves and redirect the buyer to their own page. Once a payment service redirects the buyer, Gr4vy can’t retry the transaction on another connection. Connector pages list this as 3-D Secure (provider-hosted).Connections with 3DS turned off
3DS isn’t always run on the first connection. If the first connection in the list has 3DS turned off, Gr4vy sends the transaction there without 3DS. If that connection declines and Gr4vy retries on a connection with 3DS turned on, the buyer is asked to authenticate at that point. To keep the experience consistent, use the same 3DS setting on every connection in a routing rule, or list the connections with 3DS turned on first.Liability shift after a retry
The 3DS result contains the acquirer details of the configuration that Gr4vy used to authenticate. When a transaction is retried on a connection with a different acquirer, the authorizing acquirer doesn’t match those details. Most acquirers accept a 3DS result obtained with the details of another acquirer, and pass it on to the issuer. However, liability shift isn’t guaranteed in this case. It depends on the acquirer and the card scheme rules. This is a trade-off between two risks:- Without failover, a transaction fails when its connection is unavailable.
- With failover, a transaction can still succeed, but may lose liability shift when it’s authorized by a different acquirer.
Setting up 3DS configurations for multiple acquirers
A merchant account configuration isn’t linked to a connection. Gr4vy picks it based on the card scheme, currency, and metadata of the transaction only. See matching a merchant account configuration for the full rules. Use the pattern that fits how you split transactions between acquirers.One acquirer for all transactions
Add one configuration per card scheme, for all currencies, with empty metadata. This is the simplest setup, and it also covers failover connections.Different acquirers per currency
Add one configuration per card scheme and currency, with the details of the acquirer for that currency. Route each currency to the matching connection with a Flow rule. Gr4vy picks the configuration for the transaction’s currency automatically. Optionally, add a configuration for all currencies as a fallback. Configurations for a specific currency are always picked before it.Different acquirers per card scheme
Each configuration already belongs to one card scheme. Add each scheme’s configuration with the details of the acquirer that processes that scheme, and route each scheme to the matching connection with a Flow rule.Choosing the acquirer per transaction
If your own system decides which acquirer processes each transaction, send that choice as transactionmetadata. Use the same key and value in both places:
- A Flow routing rule with a metadata condition that routes the transaction to the connection for that acquirer.
- A 3DS configuration with the same metadata and the details of that acquirer.
"acquirer": "acquirer-b".