Receive an inbound fax at a webhook URL and get a status callback when delivery completes.
fax
The claim
Receiving a fax is a three-verb SWML document on a fax-capable number: answer, receive_fax, hangup. The platform handles the tones and the page transfer; when the fax completes it POSTs the result to status_url: success, page count and the document URL. Nothing about T.30 reaches your code.
The Flask route at /fax-received stores the document URL and page count when success is true and ignores a failed receive. From there the document is a normal file: OCR it, extract fields with a model, file it. The Telnyx “fax-to-structured-data” stems are this recipe plus a parser.
Fax media URLs can be protected so they require API auth to fetch (Dashboard → Media URL protection). The Compatibility API offers the same receive as <Receive action=...>, and inbound fax history is in GET /api/fax/logs.
What to change first
Feed the document URL to extract-structured-data-after-a-call’s sibling pattern, a model with a typed schema, and post the JSON to your system.