Retrieve fraud reports via API
Use the SAFE/TC40 API to retrieve reports of transactions flagged as fraudulent by MasterCard or Visa. These reports are accessible through the merchant console under Risk Management, or programmatically via the API.
You can retrieve fraud report data:
- By ARN or original transaction unique ID
- As a full list of reports per transaction
- For a specified date range (paginated)
About SAFE/TC40 fraud reports
SAFE (MasterCard) and TC40 (Visa) reports capture fraud events reported by issuers. These include situations like stolen cards, account takeovers, or counterfeit use. The reports help issuers, acquirers, and merchants identify and mitigate fraudulent activity.
Retrieve a fraud report by ARN or transaction ID
Get fraud report details by either:
- The
ARN
(Acquirer Reference Number), or - The
original_transaction_unique_id
Request example
<fraud_report_request>
<arn>74537604221431003881865</arn>
</fraud_report_request>
List all fraud events for a transaction
To retrieve all SAFE/TC40 events related to a single transaction (e.g. multiple fraud entries), include the
Request example
<fraud_report_request>
<original_transaction_unique_id>53b1f5eacc9e4d3a3afebb4e993fe962</original_transaction_unique_id>
<mode>list</mode>
</fraud_report_request>
Retrieve fraud reports by date range
You can retrieve all fraud reports for a given merchant by:
post_date
(when the transaction was posted)import_date
(when the report was imported into the system)report_date
(the fraud report date)
Each request is paginated and returns a maximum of 100 entries.
Request example
<fraud_report_request>
<start_date>2025-05-01</start_date>
<end_date>2025-05-31</end_date>
<page>1</page>
</fraud_report_request>
Request parameters (date range retrieval)
Parameter | Required | Format | Description |
---|---|---|---|
start_date |
Yes* | yyyy-mm-dd | Start of the requested date range |
end_date |
No | yyyy-mm-dd | End of the requested date range |
import_date |
Yes* | yyyy-mm-dd | Date of import in our system (entire day range) |
report_start_date |
Yes* | yyyy-mm-dd | Start of date range for fraud report date |
report_end_date |
No | yyyy-mm-dd | End of date range for fraud report date |
page |
No | integer | Page number (default: 1) |
per_page |
No | integer | Number of entries per page (default: 100) |
Response parameters
Parameter | Format | Description |
---|---|---|
arn |
string | ARN of the transaction |
post_date |
yyyy-mm-dd | When the transaction was posted |
reason_code |
string(1) | Fraud report reason code |
reason_description | string | Text description of the reason code |
original_transaction_amount |
integer | Original transaction amount in minor units |
original_transaction_currency |
string | Currency of the original transaction |
card_number |
string | Masked card number |
card_brand |
string | Card brand (Visa, Mastercard, etc.) |
customer_email |
string | Email address of the cardholder |
customer_phone |
integer | Phone number of the cardholder |
transaction_type |
string | Type of the original transaction |
original_transaction_unique_id |
string | Unique ID of the original transaction |
chargeback_amount |
integer | Chargeback amount in minor units |
chargeback_currency |
string(3) | Currency of the chargeback transaction |
report_date |
yyyy-mm-dd | Date the fraud report was entered |
Fraud report codes
Code | Type | Description |
---|---|---|
0 |
string(1) | Lost |
1 |
string(1) | Stolen |
2 |
string(1) | Card not received as issued (NRI) |
3 |
string(1) | Fraudulent application |
4 |
string(1) | Issuer-reported counterfeit |
5 |
string(1) | Miscellaneous / Account takeover |
6 |
string(1) | Fraudulent use of account number |
7 |
string(1) | (U.S. only) used by ICS |
8 |
string(1) | (U.S. only) used by ICS |
9 |
string(1) | Acquirer-reported counterfeit |
Error response example
If no SAFE/TC40 report is found for the provided identifiers:
<fraud_report_response>
<status>error</status>
<code>490</code>
<message>Mastercard Fraud Report not found!</message>
<technical_message>Mastercard fraud report by the given criteria cannot be found!</technical_message>
</fraud_report_response>