Transaction Optimisation Integration

3DS Data Enrichment

3DS Data Enrichment uses historic data of a customer to generate a partially filled Authentication Request message (AReq). The fields returned in the AReq can be passed on to your 3DS provider to improve the likelihood of a successful 3DS authentication.

Enabling 3DS Data Enrichment

3DS Data Enrichment needs to be enabled on your account before it can be used. Please speak to your account manager to get it enabled.

By default, the enriched AReq is only returned when our transaction optimisation action is AUTHENTICATE. Optionally, 3DS Data Enrichment can also be configured to return the enriched AReq when there is no transaction optimisation action and our payment fraud action is ALLOW or REVIEW.

Using Enriched AReq

The enriched AReq will be returned inside the data.threeDS field. The format of the field is available in the Checkout Endpoint API Reference.

You will need to pass the returned AReq fields to your 3DS provider. Please speak to your account manager if you require assistance with mapping the fields to your 3DS provider’s API.

Example Response

{
  "status": 200,
  "timestamp": 1722951869,
  "data": {
    "customerId": "abc-123-XYZ",
    "action": "ALLOW",
    "score": 16,
    "source": "RULE",
    "scoreId": "9a8e68ab-f5dc-4064-894d-ef0cb7d52544",
    "transactionOptimisation": {
      "transactionId": "ea376fe5-cc16-4a6e-b553-88b1d559a56c",
      "action": "AUTHENTICATE",
      "actionSource": "CLIENT_RULE"
    },
    "threeDS": {
      "areq": {
        "acctInfo": {
          "chAccAgeInd": "05",
          "chAccDate": "20240528",
          "nbPurchaseAccount": "1",
          "paymentAccAge": "20240528",
          "paymentAccInd": "05",
          "txnActivityDay": "1",
          "txnActivityYear": "2",
          "suspiciousAccActivity": "01"
        },
        "merchantName": "merchant",
        "mcc": "5691",
        "addrMatch": "Y",
        "billAddrLine1": "Bentima House",
        "billAddrLine2": "168-172 Old Street",
        "billAddrCity": "London",
        "billAddrState": "London",
        "billAddrCountry": "826",
        "billAddrPostCode": "EC1V 9BP",
        "shipAddrLine1": "Bentima House",
        "shipAddrLine2": "168-172 Old Street",
        "shipAddrCity": "London",
        "shipAddrState": "London",
        "shipAddrCountry": "826",
        "shipAddrPostCode": "EC1V 9BP"
      }
    }
  }
}

Next steps

Test your transaction optimisation integration

Learn how to correctly handle transaction optimisation errors

Feedback