Each provider has its own shape
Different request formats, different field names, different confidence semantics. Every consuming system learns all of them, and relearns when one changes.
DocSense puts a single, stable contract in front of Azure, Gemini and Textract — routing each document to the right provider, falling back when one fails, and returning the same normalised response whichever one answered.
Overview
The recognition itself is a commodity, and it is improving faster than any single vendor can be relied on. What is not commodity is the layer around it: choosing a provider per document, handling failure, and turning whatever comes back into one predictable shape your systems can consume.
That layer is DocSense. Your applications integrate once, and never again when the provider landscape changes.
The problem
Different request formats, different field names, different confidence semantics. Every consuming system learns all of them, and relearns when one changes.
A timeout or an outage stops document processing entirely, because there is no second path and nothing that knows how to take it.
Accuracy varies by document. Cost and latency vary too. Without routing, you pick one compromise and live with it across everything.
How it works
The caller sends documents and a token. Everything after that is the platform's problem, not theirs.
Token validated for the calling system, and the user where the upload is manual.
The request is logged and given a correlation id carried through every component.
Document type detected, or taken from the caller where it is already known.
Rules pick the provider by document type, priority and any system override.
A provider adapter calls out and returns raw output. Adapters hold no data and no credentials of yours.
Output mapped to standard groups and fields, with values normalised and confidence attached.
Required-field and parsability checks run, then the response goes back with its metrics recorded.
Capabilities
Scenarios
The same platform serves an automated back-end pipeline and a person uploading a scan at a branch counter.
Architecture principles
Everything below is in service of one goal: your systems should not know or care which engine read the document.
Providers change, get better, get cheaper or get replaced. The API your systems integrated against does not.
Because routing is configuration, swapping or adding a provider is a commercial decision rather than an engineering project.
A provider adapter only makes the outbound call. It validates no tokens and reaches no database, so the blast radius of a provider integration stays small.
One correlation id links the request, the routing decision, the provider call and the response — so any extraction can be explained afterwards.
In the SolTech ecosystem
DocSense is used directly, and by the platforms that need a document turned into data before they can act on it.
One contract for every document type and every provider, now and later.
A provider outage becomes a fallback rather than a stoppage.
Route for accuracy where it matters and for cost where it does not.
Latency and token usage tracked per provider and per calling system.
Tell us the document types and the volumes, and we will show you what routing them through one contract looks like.