Field: three_ds.eci_indicator
Type: String (2-digit numeric, leading zero must be preserved)
Description: The Electronic Commerce Indicator (ECI) is returned by the 3-D Secure authentication flow. It identifies the authentication outcome and is the primary signal used to determine whether fraud chargeback liability shifts from the merchant to the issuer (Liability Shift).
| ECI | Meaning | Liability Shift |
|---|---|---|
05 | Fully Authenticated (cardholder authenticated by issuer) | ✅ Highest probability |
06 | Attempted (issuer/cardholder not enrolled, but merchant attempted) | ⚠️ Conditional |
07 | Not Authenticated / authentication failed | ❌ No |
| ECI | Meaning | Liability Shift |
|---|---|---|
02 | Fully Authenticated | ✅ Highest probability |
01 | Attempted | ⚠️ Conditional |
00 | Not Authenticated / authentication failed | ❌ No |
| Card Network | ECI |
|---|---|
| Visa / Amex / JCB / Discover / Diners | 05 |
| Mastercard | 02 |
| Card Network | ECI |
|---|---|
| Visa / Amex / JCB / Discover / Diners | 06 |
| Mastercard | 01 |
| Factor | Notes |
|---|---|
| Card type | Commercial / corporate / business cards typically do not qualify for attempted shift |
| Regional rules | Under EU PSD2 SCA, "attempted" may not count as compliant authentication |
| Transaction type | MOTO, recurring / MIT, agent-initiated transactions are often excluded |
| MCC / merchant category | High-risk MCCs (gambling, crypto, wire transfer, FX, stored-value, etc.) may be excluded by networks |
| Network rule version | Visa / Mastercard rules are updated periodically; the version in effect at the time of the transaction applies |
| Amex SafeKey version | SafeKey 1.0: 06 does not shift; SafeKey 2.0 / EMV 3DS 2.x: 06 generally shifts |
| Issuer / acquirer agreement | Bilateral agreements may override defaults |
| Card Network | ECI |
|---|---|
| Visa / Amex / JCB / Discover / Diners | 07 |
| Mastercard | 00 |
eci_indicator is required:{
"payment_method": {
"type": "card",
"card": { "...": "..." },
"authentication_method": {
"type": "three_ds",
"three_ds": {
"eci_indicator": "05"
}
}
}
}Wallet tokenized flows (Apple Pay / Google Pay) additionally carry online_payment_cryptogram, automatically returned by the wallet. Standard card payments do not need this field.
{
"payment_method_details": {
"type": "card",
"three_ds": {
"eci_indicator": "05",
"id": "3ds_server_xxx"
}
}
}eci_indicator: ECI value of this 3DS authenticationid: 3DS Server Transaction ID"05", "02", "00"). Do not pass it as an integer or strip the zero.eci_indicator; the transaction will be processed as non-3DS.05 / 02, liability shift is not 100% guaranteed. Final adjudication depends on network rules and the actual authorization / dispute outcome.05 → 06); acquirers generally do not surface this downgrade.