Security
Your documents carry your customers' information. We treat them that way.
FlowDocs handles shipment and order paperwork — shippers, consignees, routes, prices and parties. Here is how that data is separated, reached and traced.
How access works.
One workspace cannot read another
Every document, extraction, export and rule belongs to a workspace, and the separation is enforced in the database rather than in the screens above it.
A refused read is a 404, not a 403
Asking for a record that belongs to somebody else returns "not found". A "forbidden" would confirm the record exists, which turns any endpoint into a way to enumerate other tenants.
Documents are stored, not shared
Uploads go straight to storage over a signed URL scoped to your workspace, and download links are issued the same way.
Every record keeps its provenance
A validated transaction stays connected to the documents it was read from and the records it was compared against, so an exception can always be traced back to the page it came from.
Access is scoped and revocable
API keys and webhook endpoints belong to a workspace, are listed in your settings, and stop working the moment you remove them.
Transport is encrypted end to end
The app, the API and the ingest endpoint are TLS-only, and webhook deliveries are signed so your side can verify what it received.
If you are sending us a document to try.
You can delete or paste over the names, values and routes first — FlowDocs still reads whatever is left. Use a tool that removes the text rather than a black box drawn on top: a drawn box hides it from you, not from a parser.
Questions about a specific control, or a security review to complete? Ask us directly.
See it on the workflow your team still does by hand.
Tell us which document workflow costs your team the most time and roughly what passes through it. We will build the run against your document set rather than ours — no documents needed to have that conversation.
You can delete or paste over the names, values and routes first — FlowDocs still reads whatever is left. Use a tool that removes the text rather than a black box drawn on top: a drawn box hides it from you, not from a parser.