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
| Field | Description |
|---|---|
transactionId | Stable transaction ID from your system. |
type | Business type, such as PIX_TRANSFER, CARD_PURCHASE, or ACCOUNT_CREDIT. |
channel | Origin channel, such as WEB, MOBILE_APP, or BACKOFFICE. |
amount | Positive amount. |
currency | Currency code. |
occurredAt | ISO datetime when the transaction occurred. |
origin | Origin participant object. |
destination | Destination 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.queuedkyt.transaction.pipeline.completedkyt.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.