Skip to main content

Quickstart

This guide shows the fastest path to connect an application to PredictaID using the public client-credential APIs.

What You Need

Before coding, ask your PredictaID administrator for:

  • clientId
  • clientSecret
  • API base URL for your environment
  • Webhook signing secret
  • The list of events your application should receive

Keep clientSecret and the webhook secret on your server. Do not ship them in browsers, mobile apps, logs, analytics, or client-side configuration.

1. Fetch Public App Configuration

Use the Client ID to load branding and public metadata for hosted flows or embedded experiences.

GET /client-apps/public/{clientId}

This endpoint does not require a secret.

{
"name": "My App",
"publicName": "My App Verification",
"branding": {
"logoUrl": "https://example.com/logo.png",
"primaryColor": "#1f4ed8"
},
"clientId": "client_abc123"
}

2. Authenticate Server Requests

Public integration APIs use client credentials in HTTP headers.

x-client-id: client_abc123
x-client-secret: your_client_secret
Content-Type: application/json

Use these headers from your backend only.

3. Send a KYT Transaction

For new transaction-monitoring integrations, use the KYT ingest endpoint.

POST /kyt/transactions/ingest
{
"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"
}
}

A new transaction returns 202 Accepted. Re-sending the same transaction may return 200 OK with duplicate information so your integration can retry safely.

4. Listen for Webhooks

PredictaID sends asynchronous lifecycle and KYT events to your configured webhook URL.

At minimum, subscribe to:

  • kyt.transaction.queued
  • kyt.transaction.pipeline.completed
  • kyt.transaction.dead_lettered
  • session.created
  • session.completed
  • customer.identified

Verify X-PredictAid-Signature before processing the event. See Webhooks and Webhook Events Reference.

5. Route Review Outcomes

Some outcomes are automatic, but compliance-sensitive cases can require human review. Your integration should treat these states carefully:

  • REVIEW: a compliance analyst must review the customer, transaction, or evidence.
  • PEP or restrictive-list match: review is mandatory until confirmed, dismissed as false positive, or escalated.
  • Partial or missing score composition: the score is informational only and is not defensible for approval.
  • Missing audit trail: regulatory decisions and audit-ready exports are blocked until the trail is repaired.

See Compliance Workbench for the operational meaning of these states.

Production Checklist

  • Store credentials in a secret manager.
  • Use HTTPS for all API and webhook traffic.
  • Send stable transactionId values for idempotent retries.
  • Send x-request-id and x-correlation-id when available.
  • Verify webhook signatures using the raw JSON body.
  • Process webhooks idempotently by event ID.
  • Mask CPF/CNPJ and personal identifiers in logs.
  • Confirm with your PredictaID administrator which dashboard actions are enabled for your tenant.