Skip to main content

Integration Reference

This page summarizes the public integration surface for client applications.

Environments and Base URL

Your PredictaID administrator provides the base URL for each environment.

https://{api-host}

Use separate Client IDs, Client Secrets, webhook endpoints, and secrets for sandbox, staging, and production.

Authentication Model

Public integration endpoints use client credentials:

x-client-id: client_abc123
x-client-secret: your_client_secret

Operator and dashboard APIs use user authentication and permissions. Do not call operator APIs from external client integrations unless PredictaID explicitly enables that contract for your tenant.

Public Endpoint Matrix

CapabilityEndpointAuthNotes
Public app metadataGET /client-apps/public/{clientId}No secretReturns public branding and client metadata.
KYT transaction ingestPOST /kyt/transactions/ingestClient credentialsPreferred endpoint for new KYT integrations.
Legacy transaction createPOST /transactionsClient credentialsKept for simpler transaction submissions and older integrations.
Public Flow session dataGET /kyc-sessions/{sessionId}/publicPublic session IDUse only with session IDs generated by PredictaID. Treat session links as sensitive.
Complete Flow sessionPOST /kyc-sessions/{sessionId}/completePublic session IDUsed by hosted or embedded verification experiences.
Upload session artifactPOST /kyc-sessions/{sessionId}/uploadPublic session IDMultipart upload for artifacts collected during a Flow session.
Webhook deliveryYour HTTPS endpointHMAC signaturePredictaID calls your endpoint asynchronously.

Request Correlation

For server-to-server requests, send these headers when possible:

x-request-id: req_01HX...
x-correlation-id: corr_01HX...

PredictaID uses them to connect ingestion, processing, review, and webhook events. If omitted, the platform can generate internal identifiers, but client-provided values make support investigations faster.

Idempotency

For KYT ingestion, transactionId should be stable and unique in your system.

  • First accepted submission returns 202 Accepted.
  • A duplicate replay can return 200 OK with duplicate metadata.
  • Your application should process both responses as successful receipt.
  • Webhook handlers should also be idempotent by id and X-PredictAid-Event-ID.

KYT Transaction Payload

Required fields for POST /kyt/transactions/ingest:

FieldTypeDescription
transactionIdstringStable ID from your system.
typestringBusiness transaction type, such as PIX_TRANSFER or CARD_PURCHASE.
channelstringSource channel, such as WEB, MOBILE_APP, or BACKOFFICE.
amountnumberPositive transaction amount.
currencystringCurrency code, usually BRL.
occurredAtISO datetimeWhen the transaction occurred.
originobjectOrigin participant.
destinationobjectDestination participant.

Optional but recommended:

FieldDescription
externalCustomerIdYour customer ID.
cpfCnpjMasked in logs and UI; use only when needed for matching.
descriptionOrPurposeBusiness description.
countryCountry code.
supportingDocumentReference to supporting evidence.
metadataExtra attributes used by rules and investigations.

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

Response Pattern

Successful ingestion returns a wrapped response.

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

Processing continues asynchronously. Use webhooks for the final pipeline state and any review workflow.

Error Pattern

Common HTTP responses:

StatusMeaningIntegration action
400Invalid payloadFix the request shape or field values.
401Invalid client credentialsRotate or correct credentials.
403App disabled or insufficient scopeContact your PredictaID administrator.
404Resource not foundCheck IDs and environment.
409ConflictUse returned details to reconcile state.
429Rate limitedRetry with backoff.
5xxPlatform or downstream errorRetry safely when the operation is idempotent.

Webhook Requirements

Your webhook endpoint should:

  • Accept POST over HTTPS.
  • Read and preserve the raw request body for signature validation.
  • Verify X-PredictAid-Signature.
  • Process duplicate events idempotently.
  • Return a 2xx status only after durable receipt.
  • Avoid long processing inside the HTTP request. Queue work internally when possible.

Compliance and Risk Semantics

Do not treat every numeric score as an approval signal.

  • A defensible risk result requires score composition, ruleset context, evidence, and audit trail.
  • Partial, missing, inconsistent, or unknown composition means the score is informational.
  • PEP or restrictive-list matches require review before approval.
  • Missing identity, missing required documents, missing audit trail, or open manual cases can block decisions.

The dashboard exposes these states in the Compliance Workbench. See Compliance Workbench.

Sensitive Data Handling

  • Mask CPF/CNPJ and tax identifiers in logs and screenshots.
  • Restrict raw bureau data to authorized operators.
  • Avoid storing full session links in analytics tools.
  • Treat public Flow session URLs as sensitive bearer-style links.
  • Align retention and deletion processes with your LGPD obligations and contract terms.

Go-Live Checklist

  • Credentials separated per environment.
  • Webhook signature validation deployed.
  • Webhook retries and duplicate handling tested.
  • KYT duplicate submission tested.
  • Compliance review statuses mapped in your back office.
  • Sensitive fields masked in logs and observability tools.
  • Support runbook includes request ID, correlation ID, transaction ID, and event ID.