Skip to content

Vextren / Documentation

Documents in.
Structured data out.

Use the browser workspace for PDFs and scans, or call the text extraction endpoint from your own application.

Direct upload

Open the workspace and choose PDF, PNG, JPG, TXT or CSV. Text extraction and English OCR run on your device.

REST / webhook adapter

POST invoice text as JSON to /api/v1/extract. Map an upstream webhook into this request format in your application.

Email inbox forwarding

Use your email provider’s inbound-email webhook and your own adapter to send invoice text to the API. A hosted Vextren inbox is not included.

POST /api/v1/extract

A public, stateless HTTPS endpoint. No API key is required. Send a JSON body with a non-empty text string, up to 50,000 characters and 64 KB per request. The endpoint parses text; PDF and image OCR run in the workspace. Invoice content is not saved by this endpoint.

curl https://vextren.com/api/v1/extract \
  -H 'Content-Type: application/json' \
  -d '{"text":"Vendor: Acme Supplies\nInvoice Number: INV-42\nCurrency: USD\nPaper | 2 | 25.00 | 50.00\nSubtotal: 50.00\nTax: 5.00\nTotal: 55.00"}'

Try a real request

This console sends the text above to Vextren’s server. The document workspace processes uploads locally.

Response and validation

Responses contain schemaVersion, invoice and checks. Invoice fields include vendor, taxId, invoiceNumber, issueDate, dueDate, currency, items, tax, sourceSubtotal, sourceTotal and calculated totals. Unidentified text fields are empty, source totals are null, and missing line items return an empty array. Validation findings use pass or review. The API has no cross-request duplicate store.

StatusMeaning
200Parsed successfully; review checks before using values.
400Invalid JSON or missing request body.
413Request body exceeds 64 KB.
415Content-Type must be application/json.
422Missing, empty or oversized text field.

Exports and accounting handoff

CSV contains one row per line item with repeated invoice metadata and totals. JSON contains the current edited invoice and validation checks. The audit JSON includes initial extraction, current values and a timestamped session edit log. Map CSV columns to your accounting software’s import template. These exports do not post transactions or send payments.

Processing and storage

The website and REST route run on Vercel. PDF.js reads PDF text; Tesseract performs English OCR using locally served worker and language assets. No external AI provider receives workspace files. Documents stay in memory; saving history stores invoice fields locally, with up to 100 records. Email sign-in uses Resend and an HTTP-only session cookie. Invoice records do not sync between devices.

Use clear invoices with labeled fields and quantity/unit-price columns. Numeric dates use day/month/year. Tax-ID checks verify supported formats only. OCR and parsing can misread layouts; review the original before export. Upload limits: 12 MB, 12 PDF pages, 40-megapixel images and 250,000 extracted characters.

Open Workspace →