flow_uuid. That identifier follows the request from initial setup through OCR extraction, cross-checks, and final result delivery — whether via callback or polling.
The flow lifecycle
Atlas processes documents asynchronously. After you upload files, Atlas queues them for OCR extraction, runs pairwise cross-checks across documents, and then delivers the completed results to yourcallback_url or makes them available via the /verification/extracts endpoint.
1
Initialize the flow
Call
POST /verification/flow/init with your application_id, product_type, auth_url, and callback_url. Atlas returns a flow_uuid that you use for all subsequent calls in this session.2
Upload documents
Call
POST /verification/multiupload with the flow_uuid and an array of file_urls. Each entry pairs a pre-signed S3 URL with a document_id you supply for tracking. Atlas returns a file_uuid and batch_id for each uploaded file.3
Atlas processes documents
Atlas downloads each file, classifies the document type, runs OCR extraction to produce structured field output, and then executes cross-checks — pairwise comparisons of matching fields across documents (for example,
dealer_address on DELIVERY_ORDER vs. INVOICE).You do not need to specify document types at upload time. Atlas auto-classifies each file. If a document cannot be classified, the OCR entry returns an
error_code of UNRECOGNISED.4
Receive results
Atlas posts the completed
CallbackData payload to your callback_url. If you prefer polling, call GET /v3/verification/status to check progress, then retrieve the full payload from GET /v3/verification/extracts once master_status is SUCCESS.Flow status fields
The status endpoint returns four independent status fields, each tracking a different stage of the pipeline.Poll
master_status to determine when results are ready. When it reaches SUCCESS, the full payload is available via /verification/extracts.The flow_uuid
Theflow_uuid is the primary key for the entire session. You must include it in every subsequent request:
POST /verification/multiupload—flow_uuidin the request bodyGET /verification/status—flow_uuidas a query parameterGET /verification/extracts—flow_uuidas a query parameter
flow_uuid immediately after calling /flow/init. There is no way to retrieve it later if it is lost.
Async processing and callbacks
Atlas delivers results asynchronously. When processing completes, Atlas sends aPOST request to your callback_url containing the full CallbackData object. Your endpoint must return a 2xx response to acknowledge receipt.
If you cannot use callbacks (for example, in a server-side polling workflow), use the status endpoint to poll until master_status is SUCCESS, then fetch results from /verification/extracts.
Cross-checks
After OCR extraction completes, Atlas automatically runs cross-checks — pairwise field comparisons across documents in the same flow. Each cross-check compares a field from a source document against the corresponding field on a target document and returns asimilarity_score from 0 to 100.
Cross-checks are returned in both the callback payload and the /extracts response under the cross_checks array.
name field is a stable identifier for the check (for example, DEALER_ADDRESS, CUSTOMER_NAME) that you can use to consistently locate a specific comparison in your processing logic regardless of which documents are present.
See Confidence Scores and Extraction Quality for guidance on interpreting similarity_score values.
