1. API Raw Card Present Payments
English
  • English
  • Español
  • API Docs Colombia 🇨🇴
  • 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
      • BIN info V2
    • One-Click & Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Make an One-click payment
      • Update recurring charge card data
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Chargebacks
      • Query Chargebacks
      • Request Chargeback Export
    • Transfer in
      • Get Transfer In configuration
      • Get Bank List
      • Request a Transfer In token
      • Init Transaction
      • Get Status
      • Cancel Transaction
    • 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
      • Delete a cash in transaction
      • Update a cash in transaction
    • Cash-out
      • Request a cash out token
      • Init Transaction
      • Transaction Status
      • Update a cash out transaction
      • Delete a cash out transaction
    • Smartlinks-v2
      • Create a Smartlink
      • Get a Smartlink
      • Update a Smartlink
      • Delete a smartlink
    • Analytics
      • Get transactions list v2
    • Gateway-status
      • Get gateway status
      • Get platform status
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Advanced search
      • Delete credential
      • Regenerate a credential
      • Activate or deactivate
      • Update credential
    • Payment Button
      • Create a payment button
    • Settlement
      • Query settlement
    • Subscription Transactions
      • Get subscription transactions
    • Fraud Report
      • Query fraud alerts
  • Kushki One
    • Release notes
    • Transaction Examples
    • Webhooks
    • Error Catalog
    • Cloud Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Abort
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
        • Search
          • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
      • Diagnostics
        • Terminal info
        • Connection test
    • Local Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Abort
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
          • Abort (Async)
        • Search
          • Transaction Search — Online
          • Transaction Search — Local
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
      • Diagnostics
        • Terminal info
        • Connection test
  • API Raw Card Present Payments
    • Release Notes
    • Error Catalog
    • The Amount Object
    • Key Exchange Process
    • Test data
    • One-time Payments
      • Single payment
    • Two-step Payments
      • Authorization and capture
    • Card Information
      • Get BIN Info
      • BIN info V2
      • Request deferred options
    • Voids & Refunds
      • Void & Reverse
      • Refund a transaction
    • Query Transactions
      • Transaction Search
    • Webhooks
      • Introduction
      • Good Practices
      • Webhooks-Card Payments
      • Webhooks-Refunds
      • Check your webhooks
    • Chargebacks
      • Query Chargebacks
      • Request Chargeback Export
    • Fraud Report
      • Query fraud alerts
  • Appian - Submerchant Register
    • Release Notes
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • SubscriptionTransactionsResponse
    • Card
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • SettlementDateRangeRequest
    • PrintJobRequest
    • card
    • amount
    • one-and-two-step-payment-3
    • Card Present (CP)
    • one-and-two-step-payment-3
    • FraudAlertRequest
    • TransactionResponse
    • SubscriptionTransaction
    • networkToken
    • ChargebackItem
    • SettlementRecord
    • CommandText
    • Card Not Present (CNP)
    • FraudAlertResponse
    • RawResponse
    • ErrorResponse
    • currency
    • Deferred
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • CommandColumns
    • extra_taxes
    • FraudAlertRecord
    • CardData
    • Amount
    • ErrorResponse401
    • ColumnItem
    • pos_details
    • ValidationError
    • LinkFailure
    • extraTaxes
    • ErrorResponse403
    • CommandDivider
    • card_details
    • enc_tlv
    • TransactionEvent
    • Country
    • payment_method
    • ErrorResponse500
    • CommandFeed
    • deferred
    • TransactionStatus
    • CommandSpace
    • contact_details
    • ReadingType
    • ContactDetails
    • CommandCut
    • sub_merchant
    • FailureReason
    • documentType
    • Subscription
    • CommandImage
    • metadata
    • EventTerminal
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • PrintJobAccepted
    • EventExtraTaxes
    • SubscriptionUpdate
    • PrinterError
    • EventMetadata
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • product
    • webhooks
    • AmountCore
    • headers
    • ExtraTaxes
    • PrintWebhookPayload
    • Metadata
    • webhooksChargeback
    • citMit
    • AmountWithTip
    • TransactionSearchOnlineBody
    • TransactionSearchBody
    • binInfo
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • messageFields
    • TransactionEvent_2
    • UnexpectedErrorResponse
    • FailureReason_2
    • transactionType
    • ExternalReferenceId
    • EventTerminal_2
    • ExternalSubscriptionId
    • EventOperation_2
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • SettlementTicketRequest
    • network
    • ErrorResponse
    • TransactionEvent_23
    • TransactionStatus4
    • ReadingType5
    • FailureReason_26
    • EventTerminal_27
    • EventOperation_28
    • EventAmount_29
    • EventMetadata_210
    • EventExtraTaxes_211
    • PrintWebhookPayload12
    • TransactionEvent13
    • FailureReason14
    • EventTerminal15
    • EventOperation16
    • EventAmount17
    • EventMetadata18
    • EventExtraTaxes19
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴
Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴
Chile 🇨🇱
Status
Soporte / Support
English
  • English
  • Español
  1. API Raw Card Present 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 Kushki's acquiring..
⚠️ 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 21:29:29
Previous
Request Chargeback Export
Next
Query fraud alerts
Built with