Skip to main content

Transactions

Transactions represent financial or interaction events that you want PredictaID to monitor for risk, alerts, and compliance review.

Overview

For new integrations, submit transactions through the KYT ingest endpoint. PredictaID queues the event, evaluates it against configured rules/rulesets, enriches evidence when available, and emits webhook events as processing advances.

The HTTP response confirms receipt. Final processing and review status are asynchronous.

Preferred Endpoint

Ingest KYT Transaction

POST /kyt/transactions/ingest
Content-Type: application/json
x-client-id: client_abc123
x-client-secret: your_client_secret

Request Body

{
"transactionId": "order_100045",
"externalCustomerId": "customer_789",
"cpfCnpj": "***.014.426-**",
"type": "PIX_TRANSFER",
"channel": "MOBILE_APP",
"amount": 1250.75,
"currency": "BRL",
"occurredAt": "2026-05-06T13:30:00.000Z",
"origin": {
"name": "Origin Customer",
"cpfCnpj": "***.014.426-**",
"accountReference": "acct_origin_001",
"country": "BR"
},
"destination": {
"name": "Destination Customer",
"cpfCnpj": "***.000.000-**",
"accountReference": "acct_dest_001",
"country": "BR"
},
"metadata": {
"deviceId": "device_123",
"ipAddress": "203.0.113.10"
}
}

Required Fields

FieldDescription
transactionIdStable transaction ID from your system.
typeBusiness type, such as PIX_TRANSFER, CARD_PURCHASE, or ACCOUNT_CREDIT.
channelOrigin channel, such as WEB, MOBILE_APP, or BACKOFFICE.
amountPositive amount.
currencyCurrency code.
occurredAtISO datetime when the transaction occurred.
originOrigin participant object.
destinationDestination participant object.

Participant objects can include name, cpfCnpj, accountReference, bankReference, walletReference, country, and metadata.

Response

{
"data": {
"transactionId": "order_100045",
"status": "QUEUED",
"accepted": true,
"duplicate": false,
"requestId": "req_01HX...",
"correlationId": "corr_01HX..."
},
"error": null
}

New submissions return 202 Accepted. Duplicate replays can return 200 OK with duplicate: true.

Webhooks

Subscribe to KYT events to receive processing results:

  • kyt.transaction.queued
  • kyt.transaction.pipeline.completed
  • kyt.transaction.dead_lettered

See Webhooks and Webhook Events Reference.

Legacy Endpoint

Older integrations can still use:

POST /transactions

The legacy endpoint accepts a simpler customer/amount/metadata payload and is kept for backward compatibility. New transaction-monitoring implementations should prefer POST /kyt/transactions/ingest.

Risk Result Semantics

A numeric score is not always a final approval signal. If the score composition is partial, missing, inconsistent, or lacks evidence/audit context, the dashboard marks it as non-defensible and can require manual review.

See Compliance Workbench for how analysts interpret review states, PEP hits, evidence, and audit blockers.