Prerequisites
- A mintfax account with live access. Live access activates with the account’s first credit purchase. Sandbox environments are not covered by a BAA because they do not process real PHI.
- A sandbox API key (
mfx_test_...) for testing. See the quickstart if you need one. - A webhook endpoint that can receive HTTPS POST requests (for Step 4).
Step 1: Sign a BAA
Sign in to the mintfax dashboard and accept the BAA. The agreement is a self-serve click-through, and you can download the signed PDF as soon as you accept. Key facts about the BAA:- Free for every customer, not an add-on. No plan, tier, or sales call gates it.
- mintfax keeps a record of the acceptance on your account: template version, signer name and title, IP address, user agent, and
accepted_at. The record belongs to your account, not to a single environment. - Sandbox environments are not eligible. The sandbox is for testing document formats, API integration, and delivery flow - never for real PHI.
Step 2: Choose a retention mode
mintfax offers two retention modes, configured per environment in the dashboard. Pick the one that fits your compliance program.Zero-footprint mode
PHI is scrubbed as soon as a fax is delivered or fails (thefax.delivered or fax.failed events). Operational metadata (status, timestamps, error codes, attempt history, destination number) is kept, so the fax record stays queryable. This is the strictest option and supports HIPAA’s minimum-necessary principle. Zero-footprint is off by default; turn it on per environment in the dashboard.
Once a fax has been scrubbed:
GET /v1/faxes/{id}/imagereturns422with errorfax_data_purged.POST /v1/faxes/{id}/resendreturns422with errorfax_data_purged, because the original document is gone.GET /v1/faxes/{id}still returns the fax, with PHI fields nulled.
Standard mode with custom retention
If your workflows require retrieving fax images after delivery (for audit, reprint, or patient portal display), use standard mode with a retention window. The default is 90 days, and you can set any window from 7 to 365 days per environment in the dashboard. Set a shorter window to limit exposure. In standard mode you can also delete a specific fax immediately, without waiting for the retention window:Step 3: Keep PHI off the cover page
A cover page prints first and often sits in a shared fax tray before the intended recipient picks it up. mintfax treats the cover page body as PHI: it is deleted with the fax content under your retention mode. That protects the stored copy, not the printed one. A cover page is not a compliance artifact, so leave patient names, conditions, and identifiers off it entirely. Cover pages can be set per fax or as an environment default. See the cover pages guide for the built-in templates.Step 4: Verify webhook signatures
If your application receives webhook events from mintfax (delivery confirmations, failure events), you need to verify that each payload actually came from mintfax and has not been tampered with. This is especially important when the payload references PHI-related fax records. Every webhook request includes three headers (Standard Webhooks specification):
The signature is HMAC-SHA256 over
{webhook-id}.{webhook-timestamp}.{body}, base64-encoded. Use a Standard Webhooks reference library to verify - it will handle constant-time comparison and the 5-minute timestamp tolerance for you.
The Verify webhook signatures page has complete verification code in five languages, plus secret rotation handling.
Step 5: Test in the sandbox
Before sending real PHI through production, run through the full flow in the sandbox:- Send a fax with a synthetic document to
+15005550001(the sandbox success number). Confirm the response returnsstatus: "queued".
-
Do not expect a fax image. The sandbox does not render fax images, so
GET /v1/faxes/{id}/imagereturns404for sandbox faxes. To check how the pages print, send synthetic content from a live environment with zero-footprint off and call the same endpoint before the retention window ends. With zero-footprint on, the image is scrubbed as soon as the fax is delivered or fails, and the call returns422with errorfax_data_purged. -
Verify retention behavior. If you turned on zero-footprint mode, wait for the
fax.deliveredorfax.failedevent, then callGET /v1/faxes/{id}. The fax record should come back with its PHI fields set tonull. -
Confirm audit entries. Call
GET /v1/account/auditwith the environment filter set to your sandbox, or download the audit CSV from the dashboard. - Test webhook verification. Send a fax and confirm your webhook endpoint receives the event, verifies the signature, and rejects a replayed copy.
What you handle vs. what mintfax handles
Outside the compliance boundary: upstream carriers, the analog PSTN leg, recipient fax machines, your webhook endpoints, and Stripe. See HIPAA compliance - compliance boundary for the full disclosure.
What to do next
- HIPAA compliance - full compliance reference covering encryption, audit logging, the conduit exception, and compliance boundary.
- Cover pages - built-in templates and token substitution.
- Webhook signing - verification code in five languages with replay protection and key rotation.
- Data retention - standard vs. zero-footprint mode, what gets deleted vs. retained.