# Cartes Bancaires

## Overview

Cartes Bancaires is the local card scheme in France, accounting for over 90% of card and wallet traffic in the country1. With card payments accounting for 79% of transaction value in France2, accepting Cartes Bancaires payments helps you increase sales by offering your customers the most widely-used and trusted payment method in France.

As well as increased market penetration, merchants can realize significant processing cost savings with Cartes Bancaires and lower fraud rates when compared with other card schemes operating in France.

The vast majority of Cartes Bancaires cards are co-branded with an international card scheme (Visa or Mastercard). Payments can be processed using either card scheme.

## Support

| [**Payments API**](/products/payments/) | [**Modular APIs**](/products/modular/) |
|  --- | --- |
| ![tick](/access/assets/check-green.5380696a3edf2560a9dfe5b5950684df132f75ed1806f53e162cd51b03cf0073.92a19ef5.svg) | ![tick](/access/assets/check-green.5380696a3edf2560a9dfe5b5950684df132f75ed1806f53e162cd51b03cf0073.92a19ef5.svg) |


## Routing

If you accept both local and international card brands then under European Union consumer choice regulations (*Regulation (EU) 2015/751*) you must allow your customer to select the brand that they wish to process the transaction with.

### Card brand lookup

Use our [Card BIN API](/products/card-bin/) to determine the brands supported by any card. If the card is co-branded then the API response will contain multiple values under the `brand` array:


```
{
    "type": "pan",
    "brand": [
        "cartesBancaires",
        "visa"
    ],
    "bin": "400000",
    "binLength": 6,
    "fundingType": "debit",
    "issuerName": "BPCE",
    "countryCode": "FR",
    "currency": "EUR",
    "dccAllowed": true,
    "anonymousPrepaid": "notPrepaidOrNonAnonymous",
    "category": "consumer",
    "multipleAccountAccess": "notSupported"
}
```

### Transaction routing

When performing a 3DS authentication or a payment authorization, you can include `instruction.routing.preferredCardBrand` with a value of either `cartesBancaires` or the relevant international card brand (eg `visa` or `mastercard`) to route the transaction via the card brand supplied. This overrides the default routing configuration for your Access Worldpay `entity`.


```
"routing": {
  "preferredCardBrand": "cartesBancaires"
}
```

Note: If your `entity` is set up to only process Cartes Bancaires, or if Cartes Bancaires is configured as the default brand, then you do not need to supply the `instruction.routing.preferredCardBrand` object.

`instruction.routing.preferredCardBrand` is currently supported on our modular [3DS](/products/3ds/) and [Card Payments](/products/card-payments/authorize-a-payment/) APIs.

## Customer authentication

Standard PSD2 rules apply when processing Cartes Bancaires. Read our guide on when [Strong Customer Authentication (SCA) applies](/products/3ds-sca-exemptions#when-sca-applies).

### 3DS authentication

If using our modular [3DS API](/products/3ds/), the `authentication` object in the response of a Cartes Bancaires [authentication request](/products/3ds/web/authentication) may contain some additional data:


```json
{
  "$ref": "#/components/schemas/authenticationResponseCartesBancaires",
  "components": {
    "schemas": {
      "version": {
        "maxLength": 10,
        "minLength": 1,
        "type": "string",
        "description": "The version of 3DS used to process the transaction."
      },
      "eci": {
        "maxLength": 2,
        "minLength": 1,
        "type": "string",
        "description": "Electronic Commerce Indicator (ECI). Indicates the outcome of the 3DS authentication.  \n\n| ECI | Meaning | \n|---|---| \n| 02 or 05 | Fully Authenticated Transaction | \n| 01 or 06 | Attempted Authentication Transaction | \n| 00 or 07 | Non 3-D Secure Transaction | \n\n| Scheme | Value | \n|---|---| \n|  Mastercard | 02, 01, 00 |\n|  Visa | 05, 06, 07 |\n| Amex | 05, 06, 07 | \n| JCB | 05, 06, 07 |\n|  Diners | 05, 06, 07 |"
      },
      "authenticationValue": {
        "maxLength": 64,
        "minLength": 1,
        "type": "string",
        "description": "A cryptographic value that provides evidence of the outcome of a 3DS verification. \n- Visa - Cardholder Authentication Verification Value (CAVV)\n- Mastercard - Universal Cardholder Authentication Field (UCAF)\n"
      },
      "transactionId": {
        "maxLength": 64,
        "minLength": 1,
        "type": "string",
        "description": "Directory server transaction Id, if provided should be used in the payment authorization authentication object"
      },
      "authenticationResponseCartesBancaires": {
        "type": "object",
        "description": "Object that contains authentication related information.",
        "properties": {
          "version": {
            "$ref": "#/components/schemas/version"
          },
          "eci": {
            "$ref": "#/components/schemas/eci"
          },
          "authenticationValue": {
            "$ref": "#/components/schemas/authenticationValue"
          },
          "transactionId": {
            "$ref": "#/components/schemas/transactionId"
          },
          "cryptogramAlgorithm": {
            "maxLength": 99999,
            "minLength": 1,
            "type": "string",
            "description": "Indicates the algorithm used to generate the cryptogram. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization request."
          },
          "challengePreference": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string",
            "description": "Indicates the preferred challenge behavior. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization request.\n- `noPreference`\n- `noChallengeRequested`\n- `challengeRequested`\n- `challengeMandated`\n- `noChallengeRequestedTRAPerformed`\n"
          },
          "authenticationFlow": {
            "maxLength": 64,
            "minLength": 1,
            "enum": [
              "challenge",
              "frictionless"
            ],
            "type": "string",
            "description": "Indicates which flow the customer has been directed to. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization request."
          },
          "statusReason": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Provides further information relating to the outcome of the authentication. Returned for failed authentications only. __Returned for Cartes Bancaires authentications only.__"
          },
          "cancellationIndicator": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "description": "An indicator as to why the authentication was cancelled. __Returned for Cartes Bancaires authentications only.__\n- `01` - Cardholder selected cancel\n- `02` - Reserved for future use\n- `03` - Authentication timed out\n- `04` and `05` - Authentication timed out at ACS provider\n- `06` - Transaction error\n- `07` - Unknown\n- `08` - Transaction timed out at SDK\n"
          },
          "networkScore": {
            "maxLength": 2,
            "minLength": 0,
            "type": "string",
            "description": "The global score calculated by the Cartes Bancaires scoring platform. __Returned for Cartes Bancaires authentications only__."
          },
          "brand": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "The card brand used in the authentication. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization."
          }
        }
      }
    }
  }
}
```

Example authentication outcomes are below:

Authenticated
authenticated - Cartes Bancaires

```json authenticated - Cartes Bancaires
description: Successful frictionless authentication (Cartes Bancaires)
value:
  {
      "outcome": "authenticated",
      "transactionReference": "Memory265-13/08/1876",
      "acsTransactionId": "fe007a6e-315f-4cdf-98ca-28a9e40e3581",
      "status": "Y",
      "enrolled": "Y",
      "authentication": {
          "version": "2.1.0",
          "authenticationValue": "AJkBBkhgQQAAAE4gSEJydQAAAAA=",
          "eci": "05",
          "transactionId": "be122acf-0ba7-4eff-aa5b-fb53e9ad2f87",
          "cryptogramAlgorithm": "1",
          "challengePreference": "challengeMandated",
          "authenticationFlow": "frictionless",
          "brand": "cartesBancaires"
      }
  }
```

Authentication Failed
authenticationFailed - Cartes Bancaires

```json authenticationFailed - Cartes Bancaires
{
    "outcome": "authenticationFailed",
    "transactionReference": "Memory265-13/08/1876",
    "acsTransactionId": "fe007a6e-315f-4cdf-98ca-28a9e40e3581",
    "status": "N",
    "enrolled": "Y",
    "authentication": {
        "version": "2.1.0",
        "eci": "07",
        "transactionId": "424c464d-3b04-4101-950a-8a71cd1f9dc6",
        "challengePreference": "challengeMandated",
        "authenticationFlow": "frictionless",
        "statusReason": "01",
        "brand": "cartesBancaires"
    },
    "_links": {
        "3ds:authenticate": {
            "href": "https://try.access.worldpay-bsh.securedataplatform.com/verifications/customers/3ds/authentication"
        },
        "curies": [
            {
                "href": "https://try.access.worldpay-bsh.securedataplatform.com/rels/verifications/customers/3ds/{rel}",
                "name": "3ds",
                "templated": true
            }
        ]
    }
}
```

You can see the full response schema and descriptions in our [API Reference](/products/3ds/openapi/other/authenticate#other/authenticate/response&c=200).

For test card values for Cartes Bancaires, please reference our [3DS testing documentation](/products/3ds/testing).

### SCA exemptions

You can request SCA exemptions using our [SCA Exemptions API](/products/sca-exemptions).

In France the following rules apply:

* you cannot request exemptions for transactions with a value above 100 EUR
* the placement of the exemption must be in authentication rather than in authorization


## Taking payment

### Customer-Initiated Transactions (CIT)

Submit CITs in the normal way, using either:

* [Payments API](/products/payments) (full Cartes Bancaires support coming soon)
* modular [Card Payments API](/products/card-payments/authorize-a-payment)


If using our modular API, you must include all fields returned in the `authentication` object returned following your 3DS authentication request.

### Merchant-Initiated Transactions (MITs)

Cartes Bancaires supports the following types of MITs:

* subscriptions (`"customerAgreement.type": "subscription"`)
* unscheduled (`"customerAgreement.type": "unscheduled"`)


You can take the first CIT payment with either an international scheme *or* Cartes Bancaires:

* if the first payment is taken with the international scheme then subsequent payments can be routed to *either* the international scheme or Cartes Bancaires
* if the first payment is taken using Cartes Bancaires then subsequent payments may **only** be processed using Cartes Bancaires


You must include the `schemeReference` returned in the first payment in all subsequent payments. If the first payment was processed using the international scheme, and you wish to process an MIT with Cartes Bancaires, then the scheme reference supplied in the MIT request must be prefixed with a "1".

For example, if you receive a `scheme.reference` value of `"MCCOLXT1C0104"` following the first CIT processed with Mastercard then supply a `schemeReference` value of `"1MCCOLXT1C0104"` in the MIT request:


```
"customerAgreement": {
  "type": "subscription",
  "storedCardUsage": "subsequent",
  "schemeReference" "1MCCOLXT1C0104"
}
```

## Footnotes

1: Worldpay's Global Payment Report, 2024
2: Split across credit, debit, pre-paid and wallet payments