1. Online Payments
  • API Docs Chile 🇨🇱
  • Online Payments
    • Release Notes
    • Kushki API errors
    • ISO errors
    • Card Payments
      • Request a card token
      • Make a charge or deferred charge
      • Create payment (tokenless)
      • Void a transaction
      • Refund a transaction
      • Request deferred options
      • Authorize payments
      • Preauthorization (tokenless)
      • Reauthorize payments
      • Capture an authorized payment
      • Verify Account
      • Validate OTP
      • Bin Info V2
      • Bin Info
      • Voucher
    • One-Click & Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Update recurring charge card data
      • Make an One-click payment
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Card Async
      • Request a card async token
      • Init Transaction
      • Authorize payments
      • Capture an authorized payment
      • Get Status
    • Async Card Recurring Charges
      • Request an async card recurring charge token
      • Init an async card recurring charge
      • Authorize payments
      • Capture an authorized payment
    • Chargebacks
      • Query Chargebacks
      • Request Chargeback Export
    • Transfer In
      • Get Bank List
      • Request a Transfer In token
      • Init Transaction
      • Get Status
    • Transfer Out
      • Get Bank List
      • Get Bank List V2
      • Request a Transfer Out token
      • Init Transaction
      • Get Status
      • Balance for Payouts
    • Cash In
      • Request a cash in token
      • Init Transaction
      • Transaction Status
    • Smartlinks V2
      • Create a Smartlink
      • Get a Smartlink
      • Delete a smartlink
      • Update a Smartlink
    • Payment Button
      • Create a payment button
    • Analytics
      • Get transactions list v2
    • Status
      • Get platform status
      • Get gateway status
    • Subscription Transactions
      • Get subscription transactions
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Update credential
      • Regenerate a credential
      • Delete credential
      • Activate or deactivate
      • Advanced search
    • Settlement
      • Query settlement
    • Fraud Report
      • Query fraud alerts
  • API Raw Card Present Payments 🇨🇱
    • Release Notes
    • Error Catalog
    • Test Data
    • Key Exchange Process
    • The Amount Object
    • One-time payments
      • Single payment
    • Two-step-payments
      • Authorization and capture
    • Voids & Refunds
      • Refund a transaction
      • Void & Reverse
    • Card information
      • Get BIN Info
      • Bin Info V2
      • Request deferred options
    • Query Transactions
      • Transaction Search
    • Chargebacks
      • Query Chargebacks
      • Request Chargeback Export
    • Webhooks
      • Introduction
      • Good practices
      • Refunds
      • Card Payments
      • Check your webhooks
  • Kushki One
    • Error Catalog
    • Release notes
    • Transaction Examples
    • Webhooks
    • Cloud Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Search
          • Transaction Search
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Search
          • Transaction Search — Online
          • Transaction Search — Local
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
          • Abort (Async)
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • Appian - Submerchant Register
    • Release notes
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Submerchant Document Upload
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • documentType
    • Amount-cash-in
    • amount
    • Card
    • ChargebackListResponse
    • Channel
    • StatusComponent
    • SubscriptionTransactionsResponse
    • SettlementDateRangeRequest
    • TransactionResponse
    • PrintJobRequest
    • FraudAlertRequest
    • one-and-two-step-payment-1
    • one-and-two-step-payment-1
    • Card Present (CP)
    • networkToken
    • extra_taxes
    • ChargebackItem
    • SubscriptionTransaction
    • RawResponse
    • CommandText
    • FraudAlertResponse
    • Card Not Present (CNP)
    • one-and-two-step-payment-11
    • webhooks
    • card
    • Amount-CL
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • CardData
    • CommandColumns
    • FraudAlertRecord
    • headers
    • currency
    • Amount
    • card_details
    • ErrorResponse401
    • SettlementRecord
    • LinkFailure
    • ColumnItem
    • ValidationError
    • transactionType
    • enc_tlv
    • ErrorResponse403
    • ErrorResponse
    • CommandDivider
    • TransactionEvent
    • extraTaxes
    • Country
    • binInfo
    • Deferred
    • deferred
    • ErrorResponse500
    • payment_method
    • CommandFeed
    • TransactionStatus
    • SubscriptionUpdate
    • pos_details
    • CommandSpace
    • ReadingType
    • ContactDetails
    • Language
    • contact_details
    • sub_merchant
    • CommandCut
    • FailureReason
    • Subscription
    • metadata
    • CommandImage
    • EventTerminal
    • orderDetails
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • EventExtraTaxes
    • PrintJobAccepted
    • PrinterError
    • EventMetadata
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • webhooksChargeback
    • AmountCore
    • ExtraTaxes
    • PrintWebhookPayload
    • Metadata
    • citMit
    • AmountWithTip
    • network
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • messageFields
    • TransactionEvent_2
    • UnexpectedErrorResponse
    • FailureReason_2
    • EventTerminal_2
    • ExternalReferenceId
    • EventOperation_2
    • ExternalSubscriptionId
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • product
    • SettlementTicketRequest
    • TransactionEvent_21
    • TransactionStatus2
    • ReadingType3
    • FailureReason_24
    • EventTerminal_25
    • EventOperation_26
    • EventAmount_27
    • EventMetadata_28
    • EventExtraTaxes_29
    • PrintWebhookPayload10
    • TransactionEvent11
    • FailureReason12
    • EventTerminal13
    • EventOperation14
    • EventAmount15
    • EventMetadata16
    • EventExtraTaxes17
    • TransactionEvent_22
    • TransactionStatus3
    • ReadingType4
    • FailureReason_25
    • EventTerminal_26
    • EventOperation_27
    • EventAmount_28
    • EventMetadata_29
    • EventExtraTaxes_210
    • PrintWebhookPayload11
    • TransactionEvent12
    • FailureReason13
    • EventTerminal14
    • EventOperation15
    • EventAmount16
    • EventMetadata17
    • EventExtraTaxes18
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

Fraud Report

The Fraud Alerts API lets you query the fraud alert records that VISA and Mastercard make available to Kushki, without waiting for a file to be delivered manually over SFTP. Use it for automated fraud reporting, reconciliation, and transaction-level lookups. Records come from two card network reports:
TC40 — VISA
SAFE — Mastercard
It covers both card-present and card-not-present transactions, whether they are processed online or offline.
⚠️ Availability: this report is only available for transactions made with VISA and MASTERCARD cards, and only for acquiring merchants.
⛔ Mexico: this report is not available for domestic transactions in Mexico (PROSA). 🇲🇽
⚠️ Customer-level usage: the API is authenticated and consumed at customer level, not at individual merchant or branch level. A single credential gives visibility over all the fraud alerts of the branches associated with that customer. To narrow a query down to one or several specific merchants, use the merchant_id filter (see Filter by merchant (branch) below) — there is no branch-only credential for this endpoint.
The endpoint supports two query modes:
ModeWhen to use it
By date rangeRetrieves every fraud alert record within a period (from / to), optionally filtered by brand, country, fraud_type or merchant_id
By transaction identifierRetrieves the record of a specific transaction (transaction_arn or transaction_reference)
ℹ️ This API replaces the legacy SFTP/CSV fraud report flow. If you are migrating from that flow, contact your Kushki representative to coordinate the transition.

Query by date range#

POST /data/v1/fraud
{
  "brand": "VISA",
  "country": "CHL",
  "from": "2026-03-02T15:04:05",
  "to": "2026-05-02T15:04:05",
  "limit": 100,
  "page": 1
}
Returns a paginated list of fraud alert records for the specified period and filters.
⚠️ Age limit: queries are limited to a maximum of 12 months from the current date. A from value older than 12 months returns a validation error.
⚠️ Date format: from and to must use the exact format YYYY-MM-DDThh:mm:ss, with no milliseconds and no time zone. Any other format returns a validation error.
Response:
{
  "data": [
    {
      "source_name": "TC40",
      "transaction_reference": "32160b0d-4591-4691-acc8-44b4c8821627",
      "transaction_arn": "12710244268000000000007",
      "customer_id": "20000000104030134000",
      "merchant_id": "6000000000172710548457113030",
      "merchant_name": "DEMO STORE",
      "acquirer_bin": "021193",
      "masked_pan": "549151XXXXXX7016",
      "reference_number": "426822110550",
      "total_amount": 2900,
      "fraud_type": "00",
      "incoming_date": 1784127600,
      "pos_entry_mode": "81",
      "mcc_code": "5812",
      "purchase_date": "0402"
    },
    {
      "source_name": "SAFE",
      "transaction_reference": "6ef09b5a-6ce6-443e-a7dd-c42024e097b2",
      "transaction_arn": "12231965093000000136802",
      "customer_id": "20000000104030134000",
      "merchant_id": "20000328494375849",
      "merchant_name": "DEMO STORE",
      "acquirer_bin": "026532",
      "masked_pan": "533187XXXXXX2822",
      "reference_number": "509300174610",
      "total_amount": 34761,
      "fraud_type": "06",
      "authorization_code": "556549",
      "card_present_indicator": "0",
      "chargeback_indicator": "3",
      "ecommerce_indicator": "21",
      "reception_date": "20260409",
      "transaction_date": "20260402",
      "transaction_time": "211008"
    }
  ],
  "page": 1,
  "page_size": 100,
  "total": 9,
  "total_pages": 1
}

Query by transaction identifier#

POST /data/v1/fraud
{
  "transaction_reference": "32160b0d-4591-4691-acc8-44b4c8821627"
}
Returns a single record in the data array, corresponding to that transaction.
ℹ️ If you send transaction_arn and transaction_reference at the same time, transaction_arn takes precedence and transaction_reference is ignored. In this mode, from and to are not required.

Filter by merchant (branch)#

POST /data/v1/fraud
{
  "from": "2026-01-01T00:00:00",
  "to": "2026-06-30T23:59:59",
  "merchant_id": "20000328494375843,20000328494375845,20000328494375849"
}
merchant_id filters the records down to specific branches of the authenticated customer. It does not change the level of the credential; it only narrows the result within what that customer can already see. It does not identify a single transaction, so it must be combined with from and to.
⚠️ Up to 20 comma-separated IDs are supported. Values must not contain spaces, either at the beginning of the value or after a comma — for example, " 20000349344" and "id1, id2" are invalid. Sending merchant_id alone, without from and to, returns a validation error.

Request fields#

FieldRequiredDescription
fromDate range modeStart of the period — YYYY-MM-DDThh:mm:ss. Max. 12 months old
toDate range modeEnd of the period — YYYY-MM-DDThh:mm:ss
pageOptionalPage number. Default: 1
limitOptionalRecords per page. Default: 100. Maximum: 100
transaction_arnTransaction modeAcquirer Reference Number of the transaction. Takes precedence over transaction_reference
transaction_referenceTransaction modeKushki transaction reference (UUID). Ignored if transaction_arn is also sent
brandOptionalCard brand — VISA or MASTERCARD
countryOptionalAcquiring country — MEX, CHL, PER or COL
fraud_typeOptionalFraud type code — see Fraud type values below. The catalog depends on brand
merchant_idOptionalOne or several branch IDs, comma-separated, with no spaces. Max. 20 values
ℹ️ Sending any field that is not listed above also returns a validation error.

Fraud type values#

The fraud_type catalog depends on the card brand (brand). If brand is not specified, values from both catalogs are accepted.

VISA#

ValueDefinition
0Lost — the cardholder no longer has the card and does not know what happened to it
1Stolen — the cardholder does not have the card and can explain how it was lost
2NRI (Not Received as Issued) — the card was shipped but the cardholder never received it
3Fraud Application — account opened with partially false cardholder information
4Counterfeit — card-present transactions that the cardholder did not authorize
5Miscellaneous — fraud that does not fit any other category
6Fraudulent Use of Account Number — fraudulent use without physical possession of the card
9Counterfeit reported by the acquirer — invalid or unissued BIN
AIncorrect Processing — for example, missing EMV cryptogram or CVV validation
BAccount or Credential Takeover
CMerchant Misrepresentation
DManipulation of Account Holder

Mastercard#

ValueDefinition
00Lost card fraud
01Stolen card fraud
02Card issued and never received
03Fraudulent application
04Counterfeit card fraud
05Account takeover fraud
06Card-not-present fraud
51Illicit merchant — Mastercard Audit Program
55Payment order modification
56Cardholder manipulation
57Additional fraud type reported by Mastercard through SAFE

Response fields#

Records are not normalized between brands — the fields present in each record depend on source_name (TC40 or SAFE).
FieldPresent inDescription
source_nameTC40, SAFESource report and brand of the record
transaction_referenceTC40, SAFEKushki transaction reference (UUID)
transaction_arnTC40, SAFEAcquirer Reference Number
customer_idTC40, SAFEIdentifier of the authenticated customer
merchant_idTC40, SAFEMerchant or branch identifier
merchant_nameTC40, SAFEMerchant or branch name
acquirer_binTC40, SAFEAcquirer BIN, six digits
masked_panTC40, SAFEMasked PAN — BIN + XXXXXX + last four digits
reference_numberTC40, SAFEReference number of the transaction
total_amountTC40, SAFETotal amount of the transaction
fraud_typeTC40, SAFEFraud type code — see Fraud type values above
incoming_dateTC40Unix timestamp of when Kushki received the report
pos_entry_modeTC40Point of sale entry mode
fraud_amountTC40Fraud amount reported by the card network
fraud_currency_codeTC40Currency code of the fraud amount — ISO 4217 numeric
fraud_investigate_statusTC40Investigation status of the fraud report, as informed by the card network
mcc_codeTC40Merchant Category Code (MCC)
purchase_dateTC40Purchase date — MMDD, for example 0402
authorization_codeSAFEBank authorization code
card_present_indicatorSAFE"0" or "1" — indicates whether the card was present
chargeback_indicatorSAFEChargeback indicator associated with the record, as reported by Mastercard — for example "3"
ecommerce_indicatorSAFEE-commerce indicator of the transaction
merchant_identifierSAFEAdditional merchant identifier assigned by the card network
reception_dateSAFEDate the SAFE report was received — YYYYMMDD
transaction_dateSAFEDate the transaction took place — YYYYMMDD
transaction_timeSAFETime the transaction took place — HHMMSS
transaction_amount_usdSAFETransaction amount converted to USD
transaction_currency_codeSAFECurrency code of the transaction — ISO 4217 numeric
transaction_currency_exponentSAFEDecimal exponent that applies to the currency

Pagination fields#

FieldDescription
pageCurrent page returned
page_sizePage size applied — equal to limit, or 100 by default
totalTotal number of records that match the filter
total_pagesTotal number of pages available with the current page_size

Errors#

CodeMessageCause
EDT002Invalid request parameters.from and/or to are missing in date range mode
These are the conditions that return an error:
CauseHTTP status
from and/or to missing in date range mode, or an empty body400
from older than 12 months from the current date400
from or to not using the YYYY-MM-DDThh:mm:ss format400
brand with a value other than VISA or MASTERCARD400
country with a value other than MEX, CHL, PER or COL400
fraud_type outside the catalog of the specified brand400
merchant_id containing spaces, at the beginning of the value or after a comma400
merchant_id with more than 20 comma-separated values400
limit greater than 100400
Body containing fields that are not part of the request schema400
Private-merchant-id header missing or invalid401

Authentication#

ℹ️ Where to get the credential? You can retrieve it directly from the Kushki Console, under Developers → Credentials. It is not sent to the customer by email and it does not require any request to a Presales Engineer.
⚠️ Despite the name of the header, the credential this endpoint expects is the customer credential, not the credential of an individual branch or merchant. Always authenticate with the customer-level private credential; a branch credential is not valid for this endpoint. To narrow a query down to specific merchants, use the merchant_id field in the body instead of switching credentials.

Using the API#

🟢 Production
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Available endpoints#

Query fraud alerts
Retrieve fraud alert records (TC40/SAFE) by date range or by transaction identifier. Supports pagination.

Got a suggestion on this documentation? Contact us.
Modified at 2026-09-02 17:12:40
Previous
Query settlement
Next
Query fraud alerts
Built with