Platform API
Embed invoice collection into your product. We handle vendor login, credential isolation, and recurring sync — you receive clean, structured data via webhook.
Portals
Inbound
How it works
Spin up an isolated sandbox for your user. We provision a headless browser with its own credential store — nothing is shared between tenants.
capture.sessions.create({ user_id })Your user authenticates through our embedded UI. We handle CAPTCHAs, MFA, cookie consent, and session persistence — even when portals change their flows.
capture.connections.create({ session_id, vendor })We extract every invoice, parse it to structured JSON, and deliver it to your webhook. Recurring syncs run daily — new invoices arrive automatically.
// POST your-app.com/webhooks/capture
// { event: "invoice.extracted", data: { ... } }Built for production
Every user session runs in its own isolated browser. Credentials never mix, never leave the sandbox, and are encrypted at rest.
Vendor portals throw everything at headless browsers. We solve CAPTCHAs, handle TOTP and SMS challenges, and dismiss cookie banners automatically.
When a vendor changes their portal UI, our agent adapts. No tickets, no downtime, no maintenance on your end.
Every invoice is parsed into line-item JSON — vendor, amount, date, tax, line items. Not a PDF dump. Ready for your database.
Connections stay alive. We re-authenticate, re-fetch, and deliver new invoices to your webhook on a daily cadence. Set it and forget it.
Drop our pre-built auth component into your product. Your users connect their vendor accounts without leaving your app.
Each active connection is a vendor portal or email account linked by your end user. You only pay for what's active.
Up to 500 active connections. No commitment.
Annual commitment. For scaling platforms.
Volume pricing for large-scale deployments.
All plans include OCR, extraction, and isolated compute per tenant. $0.03/invoice for extraction over 10k/mo.