***
id: 594d3f6e-f2a7-4b09-9060-026d7287f01d
title: receive\_fax
slug: /reference/receive-fax
description: Receive a fax being delivered to this call.
max-toc-depth: 3
----------------
[statuscallbacks]: #statuscallbacks
Receive a fax being delivered to this call.
## **Properties**
An object that accepts the following properties.
HTTP or HTTPS URL to deliver receive fax status events. Learn more about [status callbacks][statuscallbacks].
## **Variables**
Set by the method:
* **receive\_fax\_document:** (out) URL of received document.
* **receive\_fax\_identity:** (out) identity of this fax station.
* **receive\_fax\_remote\_identity:** (out) identity of the sending fax station.
* **receive\_fax\_pages:** (out) number of pages received.
* **receive\_fax\_result\_code:** (out) fax status code.
* **receive\_fax\_result\_text:** (out) description of fax status code.
* **receive\_fax\_result:** (out) `success` | `failed`.
## **StatusCallbacks**
A POST request will be sent to `status_url` with a JSON payload like the following:
The type of event. Always `calling.call.fax` for this method.
The channel for the event, includes the SWML session ID.
Unix timestamp (float) when the event was generated.
The project ID associated with the call.
The Space ID associated with the call.
An object containing fax-specific parameters.
The call ID.
The node handling the call.
The control ID for this fax operation.
Fax result details.
The type of fax operation. Always `finished`.
The direction of the fax (`receive`).
The identity of this fax station.
The identity of the sending fax station.
URL of the received fax document.
Number of pages received.
Whether the fax was received successfully.
The numeric result code of the fax operation (e.g., `0` for success).
A description of the fax result (e.g., `OK`).
The format of the fax document. Always `"pdf"`.
#### Page progress events
A separate callback is sent for each page as the fax progresses:
Always `"page"` for page progress events.
The direction of the fax.
The page number that was just processed.
### Raw JSON example
```json
{
"event_type": "calling.call.fax",
"event_channel": "swml:xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"timestamp": 1640000000.123,
"project_id": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"space_id": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"params": {
"call_id": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"node_id": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"control_id": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"fax": {
"type": "finished",
"params": {
"direction": "receive",
"identity": "+15551231234",
"remote_identity": "+15553214321",
"document": "https://your-space.signalwire.com/api/v1/faxes/fax-uuid/download",
"pages": 3,
"success": true,
"result": 0,
"result_text": "OK",
"format": "pdf"
}
}
}
}
```
***
## **Examples**
### Receive a fax and post a result to a webhook
```yaml
version: 1.0.0
sections:
main:
- receive_fax: {}
- execute:
dest: 'https://.ngrok-free.app'
```
```json
{
"version": "1.0.0",
"sections": {
"main": [
{
"receive_fax": {}
},
{
"execute": {
"dest": "https://.ngrok-free.app"
}
}
]
}
}
```
In this example, when a fax is received, a POST request will be sent to the URL with all
the fax related variables (like `receive_fax_document`) already set.
Refer to the [`execute`](/docs/swml/reference/execute) statement's documentation for more details on this behavior.