📡 Partner API — Embedded Fax Infrastructure
Add a fax inbox to your product this week
Provision dedicated US fax numbers per user. Receive webhooks with OCR text and AI-extracted structured data. Your customers never leave your platform.
$2.50–$7.50/number/month · No per-seat fees · HMAC-signed webhooks
{
"event": "fax.extracted",
"externalUserId": "your-user-id",
"pages": 3,
"extractedData": {
"patientName": "Jane Smith",
"dob": "1985-03-14",
"diagnosis": "Type 2 diabetes"
}
}
Built for fax-heavy verticals
Industries where fax is mandated, regulated, or just never went away
EHR & Healthcare Software
Patient referrals, lab results, prior auth requests, and discharge summaries all arrive by fax. Give every provider their own inbox — structured data extracted automatically.
Legal Case Management
Court filings, discovery documents, and opposing counsel correspondence. Each matter gets a dedicated number; every fax lands as searchable, structured data inside your platform.
Property Management
Lease applications, maintenance authorizations, and vendor invoices. Provision a fax number per property; incoming documents route directly into your workflow.
Mortgage & Lending
Income verification, tax transcripts, and title documents still come by fax from banks and government agencies. Capture them programmatically — no manual scanning.
Insurance Platforms
Claims forms, adjuster correspondence, and medical records requests. Auto-extract policy numbers, claim IDs, and dates directly from every incoming fax.
Education & Government
Enrollment forms, transcript requests, and inter-agency correspondence. Fax is mandated by many institutions — meet them where they are.
How integration works
Four API calls to go from zero to live
Get a partner key
Go to /partners/apply, enter your company name and email, and verify your address. Your API key (sk_partner_...) is issued instantly — no waiting.
Provision a fax number per user
POST /api/partner/numbers with your own externalUserId. FaxSeal assigns a dedicated US fax number and links it to that user inside your namespace.
Configure your webhook
PATCH /api/partner/settings with your endpoint URL and an AI extraction schema. FaxSeal calls your webhook within ~30 seconds of every received fax.
Receive structured JSON
Two events: fax.received (~30s, includes OCR text) and fax.extracted (~60s, includes AI-parsed fields from your schema). You define the shape of the data.
What the Partner API includes
Everything you need to embed fax into your product — nothing you have to build yourself
Inbound
Dedicated numbers per user
Each of your customers gets their own US fax number. Numbers are isolated — no shared inboxes across tenants.
fax.received webhook
Fires ~30 seconds after a fax arrives. Includes sender number, page count, full OCR text, and a time-limited PDF download link.
fax.extracted webhook
Fires ~60 seconds after receipt. Returns AI-parsed JSON matching the extraction schema you define — field names, types, and structure are yours to specify.
Inbox REST API
Query received faxes per user with pagination and full-text search. Returns the 50 most recent faxes by default.
Outbound
Send faxes via API
POST /api/partner/fax with a PDF file or URL and an externalUserId. Debits credits from your partner balance. The user's provisioned number is used as caller ID automatically.
Per-fax callback
fax.sending, fax.delivered, and fax.failed events fire to your webhook — or use a per-request callbackUrl to route status to any endpoint.
Credit balance API
Check your balance and purchase credit bundles programmatically. A low-balance warning email fires automatically below 10 credits.
Partner Portal
Self-serve web dashboard
A dedicated portal at /partner gives your team visibility into active numbers, credit balance, usage stats, and billing status — no admin access needed.
Role-based team access
Invite team members with owner, admin, billing, or developer roles. Each role sees only the pages and actions relevant to their function.
Billing status visibility
See your current billing status, last invoice date, and any past-due notices. Billing role required.
Security & Reliability
HMAC-SHA256 webhook signing
Every webhook includes an x-faxseal-signature header you can verify against your webhook secret. Replay protection via timestamp.
Webhook retry with backoff
Failed deliveries retry at 1 min → 5 min → 25 min. You can also poll the inbox API as a fallback.
30-day PDF retention
Fax PDFs are stored for 30 days and served via time-limited signed URLs. After 30 days they are purged.
60 req/min rate limit
Per partner key. Webhook delivery has a 10-second timeout per attempt. Well within typical integration requirements.
What you don't have to build
Fax infrastructure is a solved problem. Don't spend engineering cycles on it.
Pricing
Per active fax number, billed monthly. No per-fax charges on inbound.
Personal
$2.50 per number / month
- ✓200 pages/month inbound
- ✓60-day PDF retention
- ✓fax.received + fax.extracted webhooks
- ✓Full-text OCR search
- ✓AI extraction schema
Business
$7.50 per number / month
- ✓1,000 pages/month inbound
- ✓180-day PDF retention
- ✓fax.received + fax.extracted webhooks
- ✓Full-text OCR search
- ✓AI extraction schema
You choose the tier when provisioning each number. Mix personal and business numbers in the same partner account.
Frequently asked questions
How long does integration take?
Most integrations go live in a day or two. You need to provision a number (one API call), configure a webhook endpoint (one PATCH), and handle two webhook event types. The docs cover everything with code examples.
Do my users need FaxSeal accounts?
No. FaxSeal uses "shadow users" keyed to your own externalUserId. Your users never see FaxSeal — it is invisible infrastructure inside your product.
What does the AI extraction schema look like?
A JSON schema you define: field names, types (string, number, boolean, array, object), and optional descriptions. FaxSeal reads the OCR text and returns a JSON object matching your schema. Missing fields come back as null, not errors.
How is billing handled?
Monthly invoicing via Stripe. Personal-tier numbers are $2.50/month each. Business-tier numbers are $7.50/month each. You are billed for active provisioned numbers at the end of each month — no per-fax charges on inbound.
Can my users also send faxes?
Yes. POST /api/partner/fax with a PDF (file or URL) and an externalUserId. The user's provisioned number is used as caller ID. Credits are deducted from your partner balance per send. Status webhooks (fax.sending, fax.delivered, fax.failed) fire to your configured endpoint or a per-request callbackUrl.
What if a webhook delivery fails?
FaxSeal retries three times with exponential backoff (1 min, 5 min, 25 min). You can also poll GET /api/partner/inbox at any time to catch faxes you may have missed.
Is this HIPAA-compatible?
Fax has a long-standing HIPAA exemption for covered entities. FaxSeal stores PDFs for 30 days then purges them automatically. BAA availability — read the docs and request access; BAA is discussed during partner onboarding.
Is there a self-serve dashboard for my team?
Yes. Every partner account includes a partner portal at /partner. Your account manager assigns team members roles (owner, admin, billing, developer). Each role sees the relevant pages: usage stats, credit log, billing status, API key / webhook settings, and team management. No separate login — members use their existing FaxSeal accounts.
How do I get a partner key?
Go to faxseal.com/partners/apply. Enter your company name and email, verify your address, and your key arrives instantly. No back-and-forth required.
Everything you need is in the docs.
Full API reference, webhook payloads, extraction schema examples, and code samples. Read first, integrate fast.