| Modo | Cuándo usarlo |
|---|---|
| Por rango de fechas | Recupera todos los registros de alertas de fraude de un periodo (from / to), opcionalmente filtrados por brand, country, fraud_type o merchant_id |
| Por identificador de transacción | Recupera el registro de una transacción específica (transaction_arn o transaction_reference) |
ℹ️ Esta API reemplaza el flujo legado de reporte de fraude por SFTP/CSV. Si estás migrando desde ese flujo, confirma con tu representante de Kushki si aún es necesario para tu cuenta.
POST /data/v1/fraud
{
"brand": "VISA",
"country": "PER",
"from": "2026-03-02T15:04:05",
"to": "2026-05-02T15:04:05",
"limit": 100,
"page": 1
}⚠️ Límite de antigüedad: las consultas están limitadas a un máximo de 6 meses de antigüedad respecto a la fecha actual. Un fromcon más de 6 meses de antigüedad devuelve un error de validación.
⚠️ Formato de fecha:fromytodeben usar el formato exactoYYYY-MM-DDThh:mm:ss(sin milisegundos ni zona horaria). Cualquier otro formato devuelve un error de validación.
Respuesta:
{
"data": [
{
"source_name": "TC40",
"transaction_reference": "32160b0d-4591-4691-acc8-44b4c8821627",
"transaction_arn": "12710244268000000000007",
"customer_id": "20000000104030134000",
"merchant_id": "6000000000172710548457113030",
"merchant_name": "PEAKY BLINDERS COLOMBIA",
"acquirer_bin": "021193",
"masked_pan": "549151XXXXXX7016",
"reference_number": "426822110550",
"total_amount": 2900,
"fraud_type": "00",
"incoming_date": 1784127600,
"pos_entry_mode": "81"
},
{
"source_name": "SAFE",
"transaction_reference": "6ef09b5a-6ce6-443e-a7dd-c42024e097b2",
"transaction_arn": "12231965093000000136802",
"customer_id": "20000000104030134000",
"merchant_id": "20000328494375849",
"merchant_name": "20004375749838594",
"acquirer_bin": "026532",
"masked_pan": "533187XXXXXX2822",
"reference_number": "509300174610",
"total_amount": 34761,
"fraud_type": "06",
"authorization_code": "556549",
"card_present_indicator": "0",
"ecommerce_indicator": "21",
"transaction_date": "20250402",
"transaction_time": "211008"
}
],
"page": 1,
"page_size": 100,
"total": 9,
"total_pages": 1
}POST /data/v1/fraud
{
"transaction_reference": "ba353f86-1ef4-test-test-test"
}data correspondiente a la transacción.ℹ️ Si se envían transaction_arnytransaction_referenceal mismo tiempo,transaction_arntiene prioridad ytransaction_referencese ignora. En este modo,from/tono son obligatorios.
POST /data/v1/fraud
{
"from": "2026-01-01T00:00:00",
"to": "2026-06-30T23:59:59",
"merchant_id": "20000328494375843,20000328494375845,20000328494375849"
}merchant_id filtra los registros a branches específicos del customer autenticado. No identifica una transacción única, por lo que debe combinarse con from y to.⚠️ Se admiten hasta 20 IDs separados por coma. Los valores no deben contener espacios — ni al inicio del valor ni después de una coma (ej. " 20000349344"o"id1, id2"son inválidos). Enviarmerchant_idsolo, sinfrom/to, devuelve un error de validación.
| Campo | Obligatorio | Descripción |
|---|---|---|
from | Modo por rango | Inicio del periodo — YYYY-MM-DDThh:mm:ss. Máx. 6 meses de antigüedad |
to | Modo por rango | Fin del periodo — YYYY-MM-DDThh:mm:ss |
page | Opcional | Número de página. Por defecto: 1 |
limit | Opcional | Registros por página. Por defecto: 100. Máximo: 100 |
transaction_arn | Modo por transacción | ARN de la transacción. Tiene prioridad sobre transaction_reference |
transaction_reference | Modo por transacción | Referencia de transacción de Kushki (UUID). Se ignora si también se envía transaction_arn |
brand | Opcional | Marca de la tarjeta — VISA o MASTERCARD |
country | Opcional | País de adquirencia — MEX, CHL, PER o COL |
fraud_type | Opcional | Código de tipo de fraude — ver valores de fraud_type más abajo. El catálogo depende de brand |
merchant_id | Opcional | Uno o varios IDs de branch, separados por coma, sin espacios. Máx. 20 valores |
ℹ️ Enviar cualquier campo no listado arriba también devuelve un error de validación.
fraud_type depende de la marca (brand) de la tarjeta. Si brand no se especifica, se aceptan valores de ambos catálogos.| Valor | Definición |
|---|---|
0 | Lost — el titular ya no tiene la tarjeta y no sabe qué pasó con ella |
1 | Stolen — el titular no tiene la tarjeta y puede explicar cómo se perdió |
2 | NRI (Not Received as Issued) — la tarjeta se envió pero el titular nunca la recibió |
3 | Fraud Application — cuenta abierta con información parcialmente falsa del titular |
4 | Counterfeit — transacciones presenciales que el titular no autorizó |
5 | Miscellaneous — fraude que no encaja en otra categoría |
6 | Fraudulent Use of Account Number — uso fraudulento sin posesión física de la tarjeta |
9 | Falsificación reportada por el adquirente (BIN inválido o no emitido) — ⚠️ pendiente confirmar vigencia en esta API |
A | Incorrect Processing — p. ej. falta de validación de criptograma EMV o CVV |
B | Account or Credential Takeover |
C | Merchant Misrepresentation |
D | Manipulation of Account Holder |
| Valor | Definición |
|---|---|
00 | Fraude de tarjeta perdida |
01 | Fraude de tarjeta robada |
02 | Tarjeta emitida y nunca recibida |
03 | Solicitud fraudulenta |
04 | Fraude con tarjeta falsificada |
05 | Fraude por apropiación de cuenta |
06 | Fraude de tarjeta no presente |
51 | Comerciante ilícito (Programa de Auditoría de Mastercard) |
55 | Modificación de orden de pago |
56 | Manipulación del titular |
57 | ⚠️ Valor observado durante la validación de la API, pero sin documentar — definición pendiente de confirmar |
⚠️ Los valores 9(VISA) y57(Mastercard) se observaron en el conjunto de validación de la API, pero no están completamente documentados aún. No asumas que son válidos hasta confirmarlo.
source_name (TC40 o SAFE).| Campo | Presente en | Descripción |
|---|---|---|
source_name | TC40, SAFE | Reporte de origen / marca del registro |
transaction_reference | TC40, SAFE | Referencia de transacción de Kushki (UUID) |
transaction_arn | TC40, SAFE | Acquirer Reference Number |
customer_id | TC40, SAFE | Identificador del customer autenticado |
merchant_id | TC40, SAFE | Identificador del comercio / branch |
merchant_name | TC40, SAFE | Nombre del comercio / branch |
acquirer_bin | TC40, SAFE | BIN del adquirente (6 dígitos) |
masked_pan | TC40, SAFE | PAN enmascarado (BIN + XXXXXX + últimos 4 dígitos) |
reference_number | TC40, SAFE | Número de referencia de la transacción |
total_amount | TC40, SAFE | Monto total de la transacción — ⚠️ unidad (centavos vs. unidad completa) pendiente de confirmar |
fraud_type | TC40, SAFE | Código de tipo de fraude — ver valores de fraud_type |
incoming_date | TC40 | Timestamp Unix de recepción del reporte en Kushki |
pos_entry_mode | TC40 | Modo de entrada en el punto de venta |
fraud_amount | TC40 | Monto de fraude reportado por la marca |
fraud_currency_code | TC40 | Código de moneda del monto de fraude (ISO 4217 numérico) |
fraud_investigate_status | TC40 | Estado de investigación del fraude — ⚠️ catálogo pendiente de confirmar |
mcc_code | TC40 | Código de categoría de comercio (MCC) |
purchase_date | TC40 | Fecha de compra — ⚠️ formato pendiente de confirmar |
authorization_code | SAFE | Código de autorización bancaria |
card_present_indicator | SAFE | "0" o "1" — indica si la tarjeta estuvo presente |
chargeback_indicator | SAFE | Indicador de contracargo asociado — ⚠️ catálogo de valores pendiente de confirmar |
ecommerce_indicator | SAFE | Indicador de comercio electrónico |
merchant_identifier | SAFE | Identificador adicional del comercio asignado por la marca |
reception_date | SAFE | Fecha de recepción del reporte SAFE — YYYYMMDD |
transaction_date | SAFE | Fecha en que ocurrió la transacción — YYYYMMDD |
transaction_time | SAFE | Hora en que ocurrió la transacción — HHMMSS |
transaction_amount_usd | SAFE | Monto de la transacción convertido a USD |
transaction_currency_code | SAFE | Código de moneda de la transacción (ISO 4217 numérico) |
transaction_currency_exponent | SAFE | Exponente decimal aplicable a la moneda |
| Campo | Descripción |
|---|---|
page | Página actual devuelta |
page_size | Tamaño de página aplicado (igual a limit, o 100 por defecto) |
total | Total de registros que cumplen el filtro |
total_pages | Total de páginas disponibles con el page_size actual |
| Código | Mensaje | Causa |
|---|---|---|
EDT002 | Invalid request parameters. | from y/o to faltantes en modo por rango de fechas |
⚠️ Las siguientes causas de validación fueron confirmadas durante el diseño, pero aún no tienen un código de error confirmado — se agregarán apenas estén disponibles: fromcon más de 6 meses de antigüedad; formato defrom/toinválido;brandinválido;countryinválido;fraud_typeque no corresponde albrand;merchant_idcon espacios; más de 20 valores enmerchant_id;limitmayor a 100; parámetros del body no soportados; headerPrivate-merchant-idausente o inválido (401).
ℹ️ A pesar del nombre del header, este endpoint espera la credencial privada a nivel customer, no una credencial de branch/merchant. Los branches se filtran después usando el campo merchant_iddel body.
Pendiente de confirmar — el dominio final de producción todavía no está disponible.¿Tienes alguna sugerencia sobre esta documentación? Contáctanos.