Generate a token
Exchange your credentials for a short-lived JWT. Pass ResponseStore the
Client-Id and Client-Secret as request headers.access_token — you will pass it as the Token header in all subsequent requests. Tokens expire after expires_in seconds (3600).Initialize a flow
Create a flow that binds a set of documents to a single loan application. The
Response
flow_uuid returned here is the key you use for all downstream calls.| Field | Required | Description |
|---|---|---|
product_type | Yes | Always "PROD_CDL" for the consumer durable lending flow |
application_id | Yes | Your internal loan application ID |
auth_url | Yes | URL Atlas calls to re-authenticate on your behalf |
callback_url | Yes | Webhook URL where Atlas sends the final results |
flow_params | No | Additional key-value parameters passed through to your callback |
Save the
flow_uuid. Every subsequent API call for this application must include this identifier.Upload documents
Submit the document files associated with the flow. Each entry in Response — one entry per uploaded fileEach upload gets a
file_urls pairs an S3-hosted file with a document_id that you define for tracking.batch_id for granular tracking.Poll for status
Check whether processing is complete before attempting to fetch results.Response
Poll every 5–10 seconds until
| Field | Values | Meaning |
|---|---|---|
upload_status | NOT_STARTED · IN_PROGRESS · SUCCESS · FAILED | Whether files have been ingested |
processing_status | NOT_STARTED · IN_PROGRESS · SUCCESS · FAILED · PENDING | OCR extraction progress |
crossheck_status | NOT_STARTED · PENDING · COMPLETED | Cross-check comparison progress |
master_status | NOT_STARTED · IN_PROGRESS · SUCCESS · FAILED | Rolled-up overall status |
master_status is SUCCESS or FAILED before calling the extracts endpoint.Retrieve results
Once Response — the full Understanding the responseThe
master_status is SUCCESS, fetch the full OCR data and cross-checks.CallbackData payloadocr_data array contains one item per uploaded document. The data object structure varies by document_type. When error_code is non-empty (e.g. UNRECOGNISED, INVALID_DOC), the data object will be empty or partial. The cross_checks array contains pairwise comparisons between fields extracted from two different documents. Each entry includes the raw values from both sides and a similarity_score (0–100). A score of 90 or above generally indicates a strong match; scores below 70 warrant manual review.Using the callback instead of polling
When you setcallback_url in the flow init request, Atlas sends a POST request to that URL with the same CallbackData payload shown above once all processing is complete. Your endpoint must return a 2xx response to acknowledge receipt.
The callback approach is recommended for production integrations because it eliminates polling overhead and delivers results as soon as they are ready.
Atlas calls your
auth_url to obtain a fresh token before posting the callback. Ensure this URL is reachable from Atlas’s servers.Tracking files with batch_id and file_uuid
Every file returned frommultiupload carries two identifiers:
batch_id— shared across all files in the same upload request. Use this to group and audit a batch of documents.file_uuid— unique per file. Use this to reference a specific document when contacting Atlas support or building audit trails.
ocr_data items returned from the extracts endpoint.