API Endpoints
Simple, predictable endpoints for the complete statement lifecycle.
POST
/api/v1/statementsGET
/api/v1/statementsGET
/api/v1/statements/:idQuick Start Example
Create a customer, upload a statement, and retrieve the underwriting report in just a few API calls.
API Key Auth
Scoped API keys with read/write/delete permissions.
Webhooks
Optional callback URL when processing completes.
JSON Responses
Clean, structured JSON for all endpoints.
Secure
SHA-256 hashed keys, tenant isolation, HTTPS only.
JavaScript / TypeScript
// Submit a bank statement for processing
const response = await fetch('https://jxotizeshtohvmeuavdc.supabase.co/functions/v1/api-v1-statements', {
method: 'POST',
headers: {
'X-API-Key': 'tdiq_your_api_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({
business_name: 'Acme Corp',
customer_external_id: 'cust-123', // Optional: your internal ID
file_base64: pdfFileAsBase64,
webhook_url: 'https://your-server.com/webhook', // Optional
}),
});
const { id, status } = await response.json();
// id: "uuid-of-statement"
// status: "uploaded"
// Poll for results or wait for webhook
const resultRes = await fetch(
`https://jxotizeshtohvmeuavdc.supabase.co/functions/v1/api-v1-statements/${id}`,
{ headers: { 'X-API-Key': 'tdiq_your_api_key_here' } }
);
const data = await resultRes.json();
// {
// id, status, bank_name, statement_period,
// customer, accounts, transactions,
// underwriting_report: { scores_json, metrics_json, fraud_json, ... }
// }Webhook Callbacks
Optionally provide a webhook URL when submitting statements to receive real-time notifications.
Webhook Payload
// Webhook payload sent to your URL when processing completes:
{
"event": "statement.processed",
"statement_id": "uuid-of-statement",
"status": "complete",
"bank_name": "Chase",
"transaction_count": 142,
"processed_at": "2026-02-09T12:34:56Z",
"timing_ms": 45320
}Integration Flow
Embed TraceDataIQ into your existing lending workflow.
1
Generate API key from Settings → API Keys (requires write permission)2
POST to /api/v1/statements with base64 PDF and customer info3
Receive job ID and poll for status, or wait for webhook4
GET /api/v1/statements/:id to retrieve full results5
Access transactions, scores, and underwriting report JSON