> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # FaxAction > Action handle for an active fax send or receive operation. [call-send-fax]: /docs/server-sdks/reference/typescript/relay/call/send-fax [call-receive-fax]: /docs/server-sdks/reference/typescript/relay/call/receive-fax [base-action-interface]: /docs/server-sdks/reference/typescript/relay/actions [stop]: /docs/server-sdks/reference/typescript/relay/actions/fax-action/stop Returned from [`call.sendFax()`][call-send-fax] or [`call.receiveFax()`][call-receive-fax]. Tracks an active fax send or receive operation. Terminal states: `finished`, `error`. Inherits all properties and methods from the [base Action interface][base-action-interface] (`controlId`, `isDone`, `completed`, `result`, `wait()`). ## **Properties** No additional properties beyond the [base Action interface][base-action-interface]. ## **Methods** #### [stop](/docs/server-sdks/reference/typescript/relay/actions/fax-action/stop) Stop the fax operation. ## **Example** ```typescript {11} import { RelayClient } from '@signalwire/sdk'; const client = new RelayClient({ project: process.env.SIGNALWIRE_PROJECT_ID!, token: process.env.SIGNALWIRE_API_TOKEN!, contexts: ['default'] }); client.onCall(async (call) => { await call.answer(); const action = await call.sendFax('https://example.com/invoice.pdf', { identity: '+15559876543', }); const event = await action.wait(); const faxInfo = (event.params.fax ?? {}) as Record; console.log(`Fax pages: ${faxInfo.pages}`); }); await client.run(); ``` > Action handle for an active fax send or receive operation. ## Docs - [stop](https://signalwire.com/docs/server-sdks/reference/typescript/relay/actions/fax-action/stop.md): Stop the fax operation.