Document import API
fetchdocs collects your users' documents,
from wherever they keep them.
fetchdocs is a document import API for software companies. It connects to the cloud storage and accounting services your users already work in, such as Google Drive, Dropbox and sevdesk, collects the invoices and receipts your users choose to share, and delivers each one to your application in one consistent shape. You integrate once, instead of 20 times.
20 sources
- Google Drive
- Dropbox
- OneDrive
- OneDrive Business
- box
- AWS S3
- SFTP
- WebDAV
- Lexware Office
- sevdesk
- easybill
- Billomat
- FastBill
- Zoho Books
- MOCO
- Deals&Projects
- Stripe
- billbee
- PlentyONE
- Tesla
One payload, posted to your endpoint
{
"client_identifier": "acct_8412",
"identity_uuid": "3598b23c-31db-4be9-9e6b-6aa1d5b60335",
"connection_uuid": "b1f4c7a0-2d8e-4c15-9a63-7e0b2f5d41c8",
"transaction_uuid": "5c9a1e7b-4f36-42d8-8b07-1ad93e6c0f52",
"document_type": "invoice",
"document": {
"filename": "invoice-2026-0417.pdf",
"mime_type": "application/pdf",
"base64": "JVBERi0xLjcKJcTl8uXr…"
},
"metadata": {
"date": "2026-08-04",
"amount": 1190.00,
"currency": "EUR"
}
}
The envelope is the same for every source. Metadata is best-effort and depends on what the source system exposes, so treat every field in it as optional.
How you integrate
Four steps, then documents arrive on their own.
-
Step 1
Create an identity
Register the user, company or account from your system with fetchdocs. You keep your own identifier; fetchdocs returns a UUID.
-
Step 2
Issue a UI token
Ask fetchdocs for a short-lived token for that identity. It authenticates the user in the connection screen.
-
Step 3
Send the user to connect
The user picks a service and signs in with that provider directly. Their credentials go to the provider, never through your application.
-
Step 4
Receive documents
fetchdocs imports what it finds and posts each document to your endpoint. New documents keep arriving as they appear.
What fetchdocs connects to
The tools your users already have.
File storage
- Google Drive
- Dropbox
- OneDrive
- OneDrive Business
- box
- AWS S3
- SFTP
- WebDAV
Accounting
- Lexware Office
- sevdesk
- easybill
- Billomat
- FastBill
- Zoho Books
- MOCO
- Deals&Projects
Commerce
- Stripe
- billbee
- PlentyONE
Vehicles
- Tesla
Each source has its own set of available metadata. See the integration reference in the API docs for the details.
Why fetchdocs asks for access
One purpose: to fetch the documents a user asked us to fetch.
fetchdocs only requests access to an account after a user has chosen to connect it, and it uses that access for a single purpose: to find the documents in that account and deliver copies of them to the application the user connected it to. The data is not used for any other purpose, and it is not sold.
fetchdocs reads the folder a user selects, and nothing else. It never deletes anything. Where a connection is configured to file documents away after import, it also creates that target folder if it does not exist yet and moves each imported document into it, so the same document is not imported twice. That filing step is optional and off unless the connection enables it.
Users authenticate with each provider directly, so their credentials reach neither you nor us. fetchdocs holds the resulting access tokens in dedicated secure storage rather than in its database, decrypts them only to run a fetch, and never exposes them through the API or the frontend. A user can disconnect at any time, which deletes the stored tokens.
Limited use of Google user data
fetchdocs' use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Data obtained from Google Drive is used solely to deliver the documents a user has connected to the application that requested them. It is never sold, never used for advertising, and never used to train generalised machine-learning models.
Documents are scanned
Every fetched file passes an antivirus scan before it is delivered. Anything flagged
is blocked rather than forwarded, and reported to you with a status of
virus_detected.
Where to read more
Our Privacy Policy sets out what we process, on what legal basis and for how long. Security contact details are published at /.well-known/security.txt.
Ready to stop writing import adapters?
fetchdocs is available to registered clients. Tell us which sources your users need and we will set up a development environment.