April 19, 2026 · Communication
How to Send and Receive Faxes with Bitcoin Lightning
Fax isn't dead. Banks, notaries, immigration offices, hotels in Japan, legal systems in Brazil and Germany, medical clinics across Africa — they still use fax because it's the only ubiquitous system that produces a signed paper trail. The problem is access: fax machines are obsolete consumer hardware, and signing up for a monthly fax service for a one-off document makes no sense.
Today we launched Sats4AI Fax — send and receive faxes on demand, paying per document with Bitcoin Lightning. No fax machine. No phone line. No account. Flat 500 sats per fax, up to 10 pages.
Why fax is still a Bitcoin use case
Most of the world assumes fax is a legacy problem that only affects old institutions in wealthy countries. The reality is closer to the opposite: fax is heaviest in places where digital infrastructure lags. A Nigerian entrepreneur needs to fax loan paperwork to a bank. A Ghanaian developer fields fax requests from immigration. An Argentine freelancer deals with AFIP tax notices by fax. And tourists all over the world still need to fax hotel confirmations to properties in Japan and Italy.
For these users, a subscription-based US fax service with a credit card requirement is useless. They need one-off fax capability, no account, and payment in something they can actually use. That's Bitcoin Lightning.
Three ways to send
Sats4AI Fax accepts three input modes so you don't need existing PDF infrastructure:
- Upload a PDF — the usual flow. Drag the file in, pay, done.
- Snap photos of a printed document — take pictures with your phone of a signed contract or loan form. We merge them into a PDF locally and fax it. No scanner required. This is the "I don't own a scanner" path that most fax services ignore.
- Type a message — for short notes or cover letters ("Please find attached my signed W-9"), just type it. We generate the PDF and fax it.
PDF and photo modes optionally take a cover page note (+1 page, same flat price), because fax cover sheets are still convention at banks and legal offices.
Receive faxes by email
The harder half of fax is receiving. Most fax services solve this by renting you a dedicated number by the month — a commitment that makes no sense for a single expected document. Our model is different:
- Pay 500 sats to open a 24-hour receive window on our shared number +1 320 299 1523.
- Tell us the caller ID you expect the fax to come from (e.g. your bank's fax number).
- When a fax arrives at our number from a matching caller ID, we email the PDF to you. No account. No dedicated number. No monthly bill.
Optional +200 sats OCR add-on delivers a searchable text file alongside the PDF. Useful if you want to feed the contents to an AI agent, run a quick find-and-replace, or archive the text in a searchable format.
The conversation agents always have
Fax is also a tool for AI agents. Here's the exchange an agent might have with a bank:
Let me send your signed loan application to the bank's fax. Do you have the fax number and a PDF I can reach?
Fax is +1-212-555-0199. Here's the PDF: https://my.storage/signed-loan.pdf
Sending now — 3 pages, 500 sats. Confirmed queued. I'll also open a 24-hour receive window in case the bank faxes back a confirmation.
The MCP tools are send_fax and receive_fax. The L402 endpoints are /api/l402/send-fax and /api/l402/receive-fax. Both are discoverable via /.well-known/mcp.
Why MCP is the agent-friendly path (not curl)
The L402 endpoint is a plain HTTP endpoint, so you can hit it with curl. But the agent has to handle the Lightning payment itself — which means three round trips and a wallet integration in the agent's code.
With raw curl:
# 1) Request the endpoint (no auth) → 402 + invoice
curl -X POST https://sats4ai.com/api/l402/send-fax \
-H "Content-Type: application/json" \
-d '{"phone_number":"+15551234567","mode":"text",
"text":"Confirming order #12345","pages":1}' -i
# 2) Pay the invoice from the www-authenticate header
# (requires a Lightning wallet integration in your agent)
lncli payinvoice lnbc5u1p... # get preimage
# 3) Replay the same request with Authorization header
curl -X POST https://sats4ai.com/api/l402/send-fax \
-H "Authorization: L402 <macaroon>:<preimage>" \
-H "Content-Type: application/json" \
-d '{"phone_number":"+15551234567","mode":"text",
"text":"Confirming order #12345","pages":1}'With MCP:
// 1) Create the payment (agent's attached wallet pays automatically)
create_payment({ toolName: 'send_fax', quantity: 1 })
// → { paymentId }
// 2) Call the tool
send_fax({ paymentId, phoneNumber: '+15551234567',
mode: 'text', text: 'Confirming order #12345', pages: 1 })
// → { status: 'queued', fax_id, pages, amount_sats: 500 }Same protocol, same Lightning payment under the hood, same 500 sats. But the MCP server negotiates the 402 handshake inline with the agent's wallet — no separate wallet integration, no macaroon management, no preimage handling. The agent stays in tool-call flow, which is where LLMs are comfortable.
This is the inline-payment-negotiation difference: curl is stateless HTTP, so every paid request becomes a 3-step handshake the agent has to orchestrate. MCP collapses it to two tool calls and lets the wallet integration happen once at server setup, not once per request.
Fair pricing, no subscription squatting
Send fax starts at 500 sats for up to 10 pages, then +50 sats per additional page, up to the 350-page Telnyx maximum. That's US $0.10 for a short document and about $3.50 for a hefty 100-page contract — a fraction of what subscription fax services charge.
Receive fax is also 500 sats (or 700 with OCR). Unlike outbound, there's no refund if no fax arrives within the window. That's intentional: refundable receive windows would incentivize squatting on numbers "just in case". Pay-and-expire keeps the system honest.
If a received fax exceeds 10 pages, we email an overage invoice for the extra (+50 sats/page, +20 sats/page OCR), and release the PDF once paid. And if OCR fails for any reason, the delivery email includes an LNURL-withdraw for the 200-sat OCR fee — scan with any Lightning wallet to claim it back.
Try it
Head to sats4ai.com/fax to send or receive your first fax. Or if you're building an AI agent, the MCP server is at sats4ai.com/mcp with send_fax and receive_fax tools ready to call.