Prerequisites
- A mintfax account on a paid plan. 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, open the environment where you will be sending PHI, and navigate to Compliance. Click Sign BAA to start the DocuSign e-signature flow. You will receive a countersigned copy by email within minutes. Key facts about the BAA:- Available on every paid plan at no extra cost. No enterprise tier, no sales call.
- The agreement is the same template at every paid tier.
- You can sign separate BAAs for separate environments if you operate multiple covered entities or environments.
- 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. Pick the one that fits your compliance program.Zero-footprint mode
Fax documents and metadata are deleted after the transaction reaches a terminal state (delivered, permanently failed, or canceled). A short retrieval window - measured in minutes - lets you pull the result via the API before cleanup runs. This is the strictest option and supports HIPAA’s minimum-necessary principle. Enable zero-footprint mode:GET /v1/faxes/{id}/imagereturns410 Goneafter the fax completes.POST /v1/faxes/{id}/resendreturns410 Gonebecause the original document has been deleted.GET /v1/faxes/{id}returns only the fax ID, status, and timestamps - no content or PII.
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. Set a shorter window to limit exposure:Changing the retention mode or retention period applies to new submissions only. Faxes already in the system follow the policy that was in effect when they were submitted.
Step 3: Use the HIPAA cover page
Faxes containing PHI should include a cover page with a confidentiality notice. Thehipaa cover-page template prints the receiving number, sender company, page count, and a HIPAA confidentiality disclaimer - but omits patient-identifiable tokens like recipient_name and message from the rendered output.
recipient_name and subject values are stored on the fax record for your own tracking, but they do not appear on the printed cover page. This keeps patient-identifiable information off the physical document that sits in a receiving fax tray.
To make the HIPAA cover page the default for every fax in this environment:
Step 4: Verify webhook signatures
If your application receives webhook events from mintfax (delivery confirmations, failure notifications), 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 the HIPAA cover page to
+15005550001(the sandbox success number). Confirm the response returnsstatus: "queued".
-
Check the fax image with
GET /v1/faxes/{id}/imageand confirm the cover page shows the confidentiality notice but not the recipient name or subject. -
Verify retention behavior. If you enabled zero-footprint mode, wait for the fax to reach a terminal state, then call
GET /v1/faxes/{id}/image. It should return410 Gone. - Confirm audit log entries. Open the dashboard, navigate to Audit Log, and verify that submission, status change, and delivery events appear for your sandbox fax.
- 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. The BAA states this boundary explicitly. 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 - template tokens, custom HTML, and the HIPAA variant in detail.
- 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.