What is 3D Secure (3DS)?
3D Secure (also called “3DS”) is an extra security layer for online card payments. When required, customers authenticate directly with their bank. Why it matters:- Reduces fraud
- Helps with liability shift on supported processors and flows (processor/network dependent)
- Required in some regions (e.g., PSD2)
- May improve approval rates
3DS Version Support
Revolv3 supports EMV 3DS 2.x pass-through only. 3DS 1.x pass-through is not supported.Processor Support
If the request routes to an unsupported processor,
threeDS is not forwarded.
TSYS: Data-Only 3DS Only
For TSYS authorizations, Revolv3 supports data-only 3DS pass-through. This is not full 3DS:- No cardholder challenge step through Revolv3.
- No full authentication or liability shift (Visa ECI
07, not05). - Revolv3 does not accept
ecion the Payment API for TSYS — the platform maps the data-only path internally.
- Use challenge indicator
06(no challenge / data share) where your provider supports it. - Expect ECI
07on Visa from the MPI — do not send full-auth results (ECI05, authentication statusY) unless you have confirmed full TSYS 3DS support with Revolv3. - Your MPI returns
cavv,dsTransactionId, andthreeDsVersionfrom the data-only exchange. - If your MPI returns Base64
cavv, convert it to 40-character hex before calling Revolv3. Revolv3 does not convert for you.
Full 3DS on TSYS (ECI
05/06, liability shift) is not available in production today.The threeDS Object
Include the threeDS object in your payment request:
eci on Revolv3 Payment API requests. It is not supported on the threeDS object and is ignored if sent.
Field Reference
Note:
dsTransactionId is the Directory Server Transaction ID (transaction-level identifier), not a Directory Server ID.
Example Requests
Worldpay (Base64 cavv)
Nuvei (Base64 cavv)
Nuvei expects the same Base64 cavv shape as Worldpay. Send values in the encoding your MPI returns for that authentication.
TSYS (Data-Only, Hex cavv)
cavv, convert to 40-character hex before calling Revolv3. Do not include eci or xid unless you have a true legacy XID.
Troubleshooting
Worldpay Sandbox Note (Base64 Padding)
Some Worldpay sandbox scenarios may rejectcavv values that include trailing base64 padding (=).
Example:
= padding if required. Do not modify any other characters. This applies to Worldpay only, not TSYS or Nuvei.
Best Practices
- Match MPI configuration to processor: Worldpay can use full 3DS; TSYS requires data-only MPI setup.
- Encoding: Base64
cavvfor Worldpay and Nuvei; hexcavvfor TSYS Visa/Amex/Discover. - EMV 3DS 2.x: put the directory-server UUID in
dsTransactionIdonly — leavexidempty unless you have a true legacy XID. - Do not send
ecion Revolv3 Payment API requests for TSYS. - Only include fields your MPI returned (plus any required encoding conversion for TSYS).
- Ensure
threeDsVersionmatches the authentication that producedcavv. - Test on the same processor family you use in production.
- If TSYS sales fail without
threeDSbut fail with full-auth MPI data, switch MPI to data-only (ECI07).
Common Questions
Can I use the same threeDS object for Worldpay and TSYS?
No. Worldpay uses Base64 cavv and supports full MPI pass-through. TSYS requires hex cavv and data-only MPI results only.
Should I send eci: "05" for TSYS?
No. Revolv3 does not accept eci for TSYS data-only pass-through. Sending full-auth ECI from your MPI while Revolv3 uses the data-only TSYS path can cause declines (for example 82 / INCORRECT CVV).
Will I get liability shift on TSYS?
Not with data-only pass-through. Liability shift requires full 3DS support, which is not available in production on TSYS today.Can I reuse a Worldpay threeDS payload on Nuvei?
Usually yes for cavv encoding (both expect Base64), but confirm threeDsVersion and dsTransactionId match what your MPI returned for that authentication.
Where does the Directory Server UUID go?
IndsTransactionId. Do not put it in xid.
Next Steps
- Make a Payment — See how to structure payment requests
- Sale with Payment Method Details — API reference for sale requests with
threeDS - Authorize with Payment Method Details — API reference for authorization requests with
threeDS - Error Responses — Learn how to handle API and processor errors

