Skip to main content
3D Secure Automated Decision Service Reporting allows you to programmatically generate and fetch daily, monthly, and quarterly 3DS Automated Decisioning Service reports over HTTPS.

Overview

Each report contains the total number and the total value (in the transaction currency) of the requests processed by Marqeta’s 3DS Automated Decisioning Service. In addition, averages and percentages are calculated and presented for your convenience. Each report is further broken down by whether the decision was made to challenge or to exempt the ACS request. If an exemption was granted, the report is broken down further into the exemption types (articles). When using Marqeta’s 3DS Automated Decisioning Service with Marqeta’s ACS, this API also enables you to get statistics on the SCA challenge or exemption decisions made under 3DS 2.2.
Note
All ACS decisions precede transaction requests, but not all decisions are guaranteed to be followed by a payment transaction.

Retrieving simple reports

You can retrieve simple reports using an API client or command-line tool. This section provides examples of how to quickly retrieve reports using either Postman or cURL.

Prerequisites

An API client—either software with a user interface such as Postman or a command-line tool such as cURL—that can send HTTP request DiVA API access tokens. To get your tokens:
1
Follow the steps described in the The basics section of the Reports page to create an account if you don’t already have one.
These are the API access tokens you need to use the 3DS Automated Decisioning Service Reporting API. Postman is a free tool you can use to make requests to RESTful web services and view the results of various output formats. Marqeta is not affiliated with nor does it endorse Postman, Inc. or any of its products or services. The following instructions were created using Postman version 10.15.1.
1
Enter the URL in the URL box and select the GET HTTP method.
2
In the Authorization tab, select Basic Auth. Use the API access tokens that you obtained in step 2 of Prerequisites above. The username is your App Token and the password is your Access Token.
Authorize
3
Select Send. You should see a response similar to the following. The response body is a list of JSON objects. Each object is a data row. Inside the object, each key is a column name and the value is the actual data.
Response
4
(Optional) Save the response to a file by selecting Save Response in the upper-right corner of the response window.

Using cURL

Using cURL, you can request reports from a command line (cli). For example, you can retrieve the daily reports for your customers starting from January 1, 2023 until January 31, 2023. Any reports that have not yet been generated do not appear in the results. Replace Authorization: Basic *** with your API Access ID and API Access Secret as the user-id and user-pass, respectively, as described in RFC 7617 The ‘Basic’ HTTP Authentication Scheme.
cURL
curl --location --request GET "https://diva-api.marqeta.com/data/v2/3dsdaily?program=your_program_code" \
--header "Authorization: Basic ***" \
--header "Content-Type: application/json" \

Exploring the 3DS Automated Decisioning Service DiVA Reporting API

This section provides information on how to use the 3DS Automated Decisioning Service DiVA Reporting API, which is part of the DiVA API. For details on using the DiVA API, including how to get your authentication tokens, see Introduction to DiVA API. The following are the 3DS Automated Decisioning Service Reporting API URLs:
  • Daily report: https://diva-api.marqeta.com/data/v2/3dsdaily
  • Monthly report: https://diva-api.marqeta.com/data/v2/3dsmonthly
  • Quarterly report: https://diva-api.marqeta.com/data/v2/3dsquarterly

Using the API

Use a GET request to retrieve your 3DS Automated Decisioning Service reports using the DiVA API. Use lowercase to define your query and include at least one program parameter in the request. The DiVA API allows you to filter your requests using parameters. Use the DiVA authentication tokens in each request, with the application token as the username and the access token as the password in every HTTP request header. The DiVA API response includes metadata as shown in the following example:
JSON
{
    "total": 37,
    "is_more": false,
    "count": 37,
    "info": {},
    "start_date": null,
    "end_date": null,
    "last_load_time": null,
    "estimated_next_load_time": null,
    "schema": [
        {
          "field": "SHARD_ID",
          "type": "integer",
          "display": "shard_id",
          "description": null,
          "units": null,
          "has_total": false,
          "is_filter_only": false
        },
        {
          "field": "PROGRAM_SHORT_CODE",
          "type": "character varying(8)",
          "display": "PROGRAM_SHORT_CODE",
          "description": null,
          "units": null,
          "has_total": false,
          "is_filter_only": false
        },
        {
          "field": "THREE_DS_DECISION_COUNT",
          "type": "integer",
          "display": "THREE_DS_DECISION_COUNT",
          "description": null,
          "units": null,
          "has_total": false,
          "is_filter_only": false
        }
    ],
    "records": [
        {
          "SHARD_ID": "shard_id",
          "PROGRAM_SHORT_CODE": "your_program_code",
          "THREE_DS_DECISION_COUNT": 27
        },
        {
          "SHARD_ID": "shard_id",
          "PROGRAM_SHORT_CODE": "your_program_code",
          "THREE_DS_DECISION_COUNT": 16
        },

         ...

        {
          "SHARD_ID": "shard_id",
          "PROGRAM_SHORT_CODE": "your_program_code",
          "THREE_DS_DECISION_COUNT": 31
        },
    ]
}

Reporting schema

The following are the 3DS Automated Decisioning Service DiVA Reporting API schema URLs:
  • Daily report: https://diva-api.marqeta.com/data/v2/3dsdaily/schema
  • Monthly report: https://diva-api.marqeta.com/data/v2/3dsmonthly/schema
  • Quarterly report: https://diva-api.marqeta.com/data/v2/3dsquarterly/schema
The following table describes the schema fields. All dates and times are stored in UTC. A day begins at 00:00:00.0000 UTC and ends at 23:59:59.9999 UTC.
Column nameReportsDescription
shard_idAllShort code of the program on the Marqeta platform.
program_short_codeAllShort code of the program on the Marqeta platform.
date_utcDaily onlyThe date the aggregated results encompass.
yearMonthly and Quarterly onlyThe year the aggregated results encompass.
quarterQuarterly onlyThe quarter the aggregated results encompass.
monthMonthly onlyThe month the aggregated results encompass.
three_ds_decision_countAllThe total number of all requests processed.
three_ds_decision_sumAllThe total value of all requests processed.
three_ds_decision_meanAllThe average value of all requests processed.
challenged_decision_countAllThe number of requests challenged.
challenged_decision_sumAllThe total value of the requests challenged.
challenged_decision_meanAllThe average value of requests challenged.
challenged_decision_count_percentageAllThe percentage of the decisions that were challenged over all decisions made.
challenged_decision_sum_percentageAllThe percentage of the value of decisions that were challenged over all decisions made.
exempted_decision_countAllThe number of requests exempted for any reason.
exempted_decision_sumAllThe total value of the requests exempted for any reason.
exempted_decision_meanAllThe average value of the requests exempted for any reason.
exempted_decision_count_percentageAllThe percentage of decisions that were exempted over all decisions made.
exempted_decision_sum_percentageAllThe percentage of the value of decisions that were exempted over all decisions made.
exempted_decision_by_article_13_countAllThe number of requests exempted by Article 13.
exempted_decision_by_article_13_sumAllThe total value of the requests exempted by Article 13.
exempted_decision_by_article_13_meanAllThe average value of the requests exempted by Article 13.
exempted_decision_by_article_13_count_percentageAllThe percentage of requests exempted by Article 13 over all exempted decisions.
exempted_decision_by_article_13_sum_percentageAllThe percentage of the total value of requests exempted by Article 13 over all exempted decisions.
exempted_decision_by_article_14_countAllThe number of requests exempted by Article 14.
exempted_decision_by_article_14_sumAllThe total value of the requests exempted by Article 14.
exempted_decision_by_article_14_meanAllThe average value of the requests exempted by Article 14.
exempted_decision_by_article_14_count_percentageAllThe percentage of requests exempted by Article 14 over all exempted decisions.
exempted_decision_by_article_14_sum_percentageAllThe percentage of the total value of requests exempted by Article 14 over all exempted decisions.
exempted_decision_by_article_16_countAllThe number of requests exempted by Article 16.
exempted_decision_by_article_16_sumAllThe total value of requests exempted by Article 16.
exempted_decision_by_article_16_meanAllThe average value of requests exempted by Article 16.
exempted_decision_by_article_16_count_percentageAllThe percentage of requests exempted by Article 16 over all exempted decisions.
exempted_decision_by_article_16_sum_percentageAllThe percentage of the total value of requests exempted by Article 16 over all exempted decisions.
exempted_decision_by_article_18_countAllThe number of requests exempted by Article 18.
exempted_decision_by_article_18_sumAllThe total value of requests exempted by Article 18.
exempted_decision_by_article_18_meanAllThe average value of requests exempted by Article 18.
exempted_decision_by_article_18_count_percentageAllThe percentage of requests exempted by Article 18 over all exempted decisions.
exempted_decision_by_article_18_sum_percentageAllThe percentage of the total value of requests exempted by Article 16 over all exempted decisions.
created_timestamp_utcAllThe date and time, in UTC, the request was created.
min_date_time_utcAllThe minimum date and time, in UTC.
max_date_time_utcAllThe maximum date and time, in UTC.
exempted_decision_by_requestor_data_share_only_countAllThe number of requests exempted by the requestor (merchant requested no challenge).
exempted_decision_by_requestor_data_share_only_sumAllThe total value of requests exempted by the requestor (merchant requested no challenge).
exempted_decision_by_requestor_data_share_only_meanAllThe average value of requests exempted by the requestor (merchant requested no challenge).
exempted_decision_by_requestor_data_share_only_count_percentageAllThe percentage of requests exempted by the requestor (merchant requested no challenge) over all exempted decisions.
exempted_decision_by_requestor_data_share_only_sum_percentageAllThe percentage of the total value of requests exempted by the requestor (merchant requested no challenge) over all exempted decisions.
exempted_decision_by_requestor_sca_already_performed_countAllThe number of requests exempted by the requestor SCA already performed.
exempted_decision_by_requestor_sca_already_performed_sumAllThe total value of requests exempted by the requestor SCA already performed.
exempted_decision_by_requestor_sca_already_performed_meanAllThe average value of requests exempted by the requestor SCA already performed.
exempted_decision_by_requestor_sca_already_performed_count_percentageAllThe percentage of requests exempted by the requestor SCA already performed over all exempted decisions.
exempted_decision_by_requestor_sca_already_performed_sum_percentageAllThe percentage of the total value of requests exempted by the requestor SCA already performed over all exempted decisions.