By Michael Chen · Published July 15, 2026 · 12 min read
Quick Answer: Fax integration connects a cloud fax service to software you already run, so faxes send and arrive inside that system instead of on a separate machine. There are five ways to do it — an email-to-fax gateway, a REST fax API, a no-code automation platform, a vendor connector, or a print-to-fax driver — and the right one depends on who is building it and whether you also need to receive.
Every other channel your business uses got absorbed into software years ago. Email lives in the CRM, signatures live in the contract tool, invoices post themselves to the ledger. Fax integration is the work of finally doing the same thing to the one channel that never made the trip — the one that still involves a machine in the corner, a shared web portal, or someone re-keying a confirmation number into a ticket.
The goal is not "we have an online fax account." The goal is that the fax step disappears into a workflow somebody is already in: a referral leaves the EHR, a signed order leaves the CRM, an inbound authorization lands attached to the right record. This guide covers the five integration methods, how to pick one for the system you actually own, a seven-step rollout, and the failure modes that show up two weeks after launch.
The short version
If you control the source code, use a REST fax API — it is the only method that gives you structured delivery status. If you don't, use a no-code automation platform or a vendor connector. Email-to-fax and print-to-fax are for systems that will never be changed.
What Is Fax Integration?
Fax integration is the practice of connecting fax transmission to a business system so that sending or receiving a fax happens as a step inside that system's workflow. The fax service handles the telephone network; your software handles the document, the recipient, and the record-keeping.
Every integration has the same three parts, whatever method you choose:
- A transport — the mechanism your software uses to hand over a document: an HTTP request, an SMTP message, a watched folder, or a printer driver.
- A credential — an API key, SMTP login, or connector authorization that ties the transmission to your account and its fax numbers.
- A return path — how the outcome gets back to you: a webhook, a confirmation email, a status field, or a receipt printed at a device.
Most integration projects go wrong on the third part. Sending is easy. Knowing — reliably, in a form your software can act on — that page four never arrived is what separates a real integration from a shortcut.
The 5 Ways to Integrate Fax Into Your Software
There are five practical fax integration methods. They differ mainly in who does the work and how much structured feedback you get back.
| Method | Who builds it | Typical effort | Status feedback | Best for |
|---|---|---|---|---|
| Email-to-fax gateway | Anyone with mail access | Hours | Reply email only | Legacy apps that can already send email |
| REST fax API | A developer | 1–3 days to send; ~1–2 weeks with webhooks and inbound | Real-time, structured | Custom apps, volume, compliance |
| No-code automation | An ops or admin user | Hours | Depends on the platform | Gluing SaaS tools together |
| Native connector | The vendor; you configure | Hours to weeks | Whatever the vendor exposes | Salesforce, SAP, major EHRs |
| Print-to-fax / MFP | IT | Half a day | Device receipt | Paper-first offices |
1. Email-to-Fax Gateway (SMTP)
An email-to-fax gateway turns an outgoing email into a fax. Your software addresses a message to 15551234567@gateway.provider.com, attaches a PDF, and the provider dials the number. Any system that can send mail can now send a fax — no HTTP client, no new library, no deployment.
That reach is the whole appeal. Practice-management systems, ERPs and twenty-year-old line-of-business apps almost always have an SMTP configuration screen, and almost never have a plugin framework.
The cost is feedback. You get a confirmation email, not a status field, so your software cannot easily branch on failure, and page counts arrive as prose rather than data. Our email-to-fax API guide covers the address formats and code for this route in detail.
2. REST Fax API
A REST fax API is the durable answer whenever you control the code. You POST a document and a recipient number over HTTPS, get an identifier back, and receive webhook callbacks as the transmission moves through its lifecycle.
The mFax API is deliberately small, which makes it a fair illustration of the shape. Sending is one multipart/form-data request with two fields — to in E.164 format and a PDF file:
curl -X POST https://developers.mfax.to/v1/faxes \
-H "Authorization: Bearer zk_live_..." \
-F "to=+15551234567" \
-F "[email protected]"
The response is a fax object with a uuid and a status. That status moves through queued → sending → delivered or failed, and a failure carries a failure_reason such as user_busy so your software can decide between retrying and escalating to a human.
Delivery updates arrive as signed webhooks — fax.delivered, fax.failed and fax.received — with an X-Zelda-Signature header your endpoint verifies before trusting the payload. If you want the request-by-request walkthrough, see our guide to sending a fax via API; for provider selection, see the fax API comparison.
Why the API path wins on maintenance
Structured status is what lets a fax become an ordinary state machine in your app. Once delivered and failed are real values in your database, retries, dashboards, audit trails and SLA reporting are all just queries — no inbox parsing required.
3. No-Code Automation (Zapier, Make, Power Automate)
No-code platforms let an operations person build a fax integration without a developer. A trigger fires — a file lands in a folder, a form is submitted, a deal reaches a stage — and an action sends the fax.
A handful of fax providers publish native apps on Zapier, including Phaxio, Fax.Plus, iFax, Documo and HumbleFax. If your provider is on that list, the build is genuinely a ten-minute job.
If it isn't, you are not stuck. Every one of these platforms has a generic HTTP step — "Webhooks by Zapier," Make's HTTP module, or the Power Automate HTTP action — that can call a fax API directly. Set the payload type to form data, pass the recipient and the file, and you have the same integration without the branded logo. Our fax automation guide walks through both patterns.
The trade-off is operational rather than technical: automation platforms retry on their own schedule, keep run histories that may contain your documents, and change their pricing by task volume. Treat a no-code fax as production infrastructure, not as a spreadsheet macro.
4. Native Connectors and Plugins
Larger fax vendors ship prebuilt connectors for the platforms their enterprise customers live in — Salesforce and Zoho on the CRM side, SAP on the ERP side, Epic and athenahealth in healthcare, PaperCut for print management. You authorize the connector, map a few fields, and faxing appears as a button inside software you did not write.
Before committing to one, ask four questions:
- Is it first-party or a partner build? Partner connectors can lag behind both platforms' release cycles.
- Does it handle inbound, or only outbound? Many connectors only send.
- Which objects does it write to? A connector that logs to a generic activity feed is far less useful than one that attaches the PDF to the record.
- Who patches it when the host platform ships a breaking change? Get that answer in writing.
5. Print-to-Fax and MFP Scan-to-Fax
The last method meets paper where it already is. A print-to-fax driver installs a virtual printer, so any application with a Print command can fax; a multifunction printer with scan-to-fax sends from the device panel using your cloud account rather than a phone line.
This is the right choice for offices whose documents genuinely start as paper — intake forms, wet-ink signatures, records pulled from a filing cabinet. It is the wrong choice for anything you want to report on, because the transmission carries no metadata your systems can query later.
Which Integration Method Fits Your System?
Match the method to the system you already own rather than to the one you wish you had.
| Your system | Recommended path | Why |
|---|---|---|
| Salesforce, HubSpot, Zoho | Vendor connector, else no-code + API | CRMs have rich plugin ecosystems; a connector attaches the PDF to the record |
| Epic, athenahealth, other EHR | Vendor connector or API with a routing layer | Needs a signed BAA and patient-record matching, not just transmission |
| SAP, NetSuite, other ERP | Connector at the document-output layer | Fax belongs beside the existing print/email output channel |
| SharePoint, Google Drive, DMS | No-code folder watcher | A watched folder is the cheapest reliable trigger |
| Zendesk, Jira, helpdesk | No-code automation | Ticket events map cleanly onto triggers |
| Custom in-house application | REST fax API | You control the code, so take the structured status |
| Legacy app with no API | Email-to-fax gateway | SMTP is the one extension point old software always has |
| Paper-first office, MFP-centric | Scan-to-fax plus a cloud number | Keeps the device workflow staff already know |
Don't integrate what you should retire
Before wiring fax into a workflow, check whether the recipient still requires it. Some of the volume in a typical office is habit rather than requirement, and every fax you eliminate is one you never have to integrate, monitor or pay per page for.
How to Integrate Fax in 7 Steps
Inventory your fax touchpoints
List every place a fax is sent or received today: who does it, from which screen, how often, and what document. Most teams find two or three high-volume paths and a long tail of one-offs. Integrate the high-volume paths and leave the tail on the web app.
Decide send-only or send and receive
Send-only integrations are roughly a third of the work. If inbound faxes currently pile up in a shared inbox and get filed by hand, that is usually where the real time is going — plan for it explicitly instead of discovering it later.
Pick the integration method
Use the matrix above. The deciding question is almost always whether you can deploy code into the source system. If you can, choose the API; if you can't, choose no-code or a connector.
Sort out numbers and credentials
Get a virtual fax number for inbound, and decide whether one number serves the whole company or each department gets its own — that decision shapes all your routing logic. Keep API keys server-side; a fax key in a browser or a mobile binary is a key someone else can spend.
Build sending first
Ship outbound before inbound. It is simpler, it proves the credentials and number formatting work, and it delivers visible value while the routing design is still being argued about.
Wire up status callbacks
Register a webhook endpoint, verify the signature on every request, and persist each status change against your own record. Handle duplicate deliveries — networks retry, and a webhook that fires twice should not send two faxes or create two tasks.
Test against a real fax, then cut over gradually
Send to an actual fax endpoint, not just a test number: real machines expose page-scaling and cover-sheet problems that a simulator never will. Then run the old and new paths side by side for a week before switching anyone off the manual process.
Inbound Is the Half Everyone Forgets
Most fax integration content stops at sending. In practice, received faxes are where the manual labor hides — someone opens a PDF, works out which patient, client or order it belongs to, renames it, and drops it in the right place.
There are four levels of inbound integration, and you should know which one you are buying:
- Shared destination. Every fax lands in one inbox or portal and a human triages it. This is not integration; it is a starting point.
- Number-based routing. Each department, clinic or workflow gets its own number, so the destination number determines where the document goes. Cheap, robust, and enough for most teams.
- Event-driven filing. Your software subscribes to an inbound event, downloads the document, and files it programmatically. With the mFax API this is the
fax.receivedwebhook plus aGET /v1/faxes?direction=inboundreconciliation sweep. - Content-based matching. OCR extracts an identifier from the page and matches it to a record automatically. Powerful, and the only level that needs a real accuracy budget and a human fallback queue.
Download links expire
Fax providers hand out presigned, time-limited URLs for received documents — mFax returns one as media_url. Store the file, not the link. Integrations that save the URL and read it a month later fail silently, and usually at audit time.
Fax Integration in Healthcare
Healthcare is where fax integration pays for itself fastest, because the volume is real and the fallback is a person with a stack of paper. The reason the volume persists is structural: according to ONC Data Brief No. 71, only 43% of U.S. non-federal acute care hospitals routinely engaged in all four domains of interoperable exchange in 2023. Where systems can't exchange data directly, fax remains the default.
Three requirements are non-negotiable when protected health information is involved:
- ✓A signed BAA with the fax provider, covering the API and any storage of transmitted documents — not just the web app.
- ✓PHI kept out of logs, error trackers and no-code run histories. A stack trace that includes a patient name is a disclosure.
- ✓Verified webhooks, so a forged callback cannot mark a failed transmission as delivered in the chart.
Encryption is table stakes, not compliance. Our HIPAA-compliant fax API guide covers the full control set, including audit logging and access scoping.
What Breaks in Fax Integrations
These are the failures that surface after launch, not during the build.
| Problem | What it looks like | How to prevent it |
|---|---|---|
| Duplicate sends | A retry storm faxes the same order three times | Deduplicate on your side with your own request key; most fax APIs have no idempotency header |
| Page-count surprises | The invoice is 40% higher than modeled | Bill from the provider's reported page_count, not your PDF's page count — cover sheets and scaling change it |
| Number format rejects | invalid_number on numbers that work by hand | Normalize to E.164 at the boundary, once, before anything touches the API |
| Unverified webhooks | Status flips with no matching transmission | Verify the HMAC signature and reject stale timestamps |
| Expired media links | Archived faxes 404 months later | Persist the file to your own storage on receipt |
| Provider shutdown | An API you depend on is discontinued | Keep provider calls behind one module you can swap |
That last row is not hypothetical. Twilio announced the end of life of Programmable Fax on 17 December 2020 and switched it off exactly one year later, stranding every integration that had called the API directly from business logic. One thin adapter would have made that a one-day migration.
What Fax Integration Costs
Integration itself is usually free — providers include API access to win the account. What you pay for is seats and pages.
| Cost component | Typical shape | Notes |
|---|---|---|
| Platform / seats | Per user, per month | Some vendors charge per API key or per connector too |
| Pages sent | Per page or bundled allowance | The dominant variable cost at any real volume |
| Inbound numbers | Per number, per month | Number-based routing multiplies this line |
| Connector licence | One-off or annual | Only with enterprise platform connectors |
| Build and maintenance | Your engineering time | The real cost of the API route — budget for it honestly |
mFax Business is usage-based rather than tiered: $3 per seat per month plus $4 per 100 pages, 20% off annually, starting from about $9/mo. API access is included on every plan, so a one-seat integration project doesn't require an enterprise contract. For how the models compare across vendors, see our fax API pricing breakdown.
Frequently Asked Questions
What is the difference between fax integration and online fax?
Online fax gives your team a web app and a number. Fax integration removes the web app from the workflow — the fax is sent and received by software your team is already using, and the outcome is recorded automatically. Every fax integration sits on top of an online fax account; not every online fax account is integrated.
Do I need a developer for fax integration?
Not always. A no-code automation or a vendor connector can be configured by an operations or IT admin in an afternoon. You need a developer once you want structured delivery status, inbound routing into specific records, or volumes where retries and error handling have to be automatic.
Can I integrate fax into an application that has no API?
Yes, through the two universal extension points: email and print. If the application can send mail, an email-to-fax gateway works. If it can print, a print-to-fax driver works. Neither gives you structured status, but both avoid touching the application's code.
What happens to my integration if I change fax providers?
If every provider call lives behind one module in your codebase, a migration is a matter of swapping endpoints and re-mapping status values. If fax calls are scattered through business logic, expect weeks. This is the single best argument for writing a thin adapter on day one — see our fax API overview for what that layer should abstract.
Should I run a fax server instead of integrating a cloud service?
Only if a regulatory or network requirement forces documents to stay on your infrastructure. An on-premise fax server means telephony hardware, line contracts and patching that a cloud API removes entirely. Compare both before committing to hardware.
Start Your Fax Integration
Pick your path and build the smallest useful version first. If you write code, create an API key in the mFax dashboard and read the reference at developers.mfax.to — one POST /v1/faxes request is a working integration, and webhooks turn it into a reliable one.
If you don't, mFax Business gives your team fax numbers, seats and a signed BAA across web, mobile and desktop, with API access included on every plan so you can automate later without changing vendors. And when someone just needs one document out the door today, send it from the mFax app — no integration required.