curl -X POST https://restapi.fax.plus/v3/webhooks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-d '{
"url": "https://example.com/fax-webhooks",
"filter_types": ["fax_sent", "fax_received"],
"channels": ["+12135550123"]
}'
import requests
resp = requests.post(
"https://restapi.fax.plus/v3/webhooks",
headers={"Authorization": "Bearer {access-token}", "Content-Type": "application/json"},
json={
"url": "https://example.com/fax-webhooks",
"filter_types": ["fax_sent", "fax_received"],
"channels": ["+12135550123"],
},
)
print(resp.status_code)
{}
{
"error": "bad_request",
"description": "Invalid number: not-a-number"
}
{
"error": "plan_not_eligible"
}
{
"error": "bad_request",
"description": "application not found, enable webhooks in Fax.Plus integrations settings"
}
{
"error": "server_error",
"description": "server_error"
}
Webhooks
Create a webhook endpoint
Create a webhook endpoint. url and filter_types (min 1) are required. Returns 201 with an empty body. Requires webhooks to be enabled in Integrations. (Permitted scopes: fax:all:edit, fax:webhook:edit)
POST
/
webhooks
curl -X POST https://restapi.fax.plus/v3/webhooks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-d '{
"url": "https://example.com/fax-webhooks",
"filter_types": ["fax_sent", "fax_received"],
"channels": ["+12135550123"]
}'
import requests
resp = requests.post(
"https://restapi.fax.plus/v3/webhooks",
headers={"Authorization": "Bearer {access-token}", "Content-Type": "application/json"},
json={
"url": "https://example.com/fax-webhooks",
"filter_types": ["fax_sent", "fax_received"],
"channels": ["+12135550123"],
},
)
print(resp.status_code)
{}
{
"error": "bad_request",
"description": "Invalid number: not-a-number"
}
{
"error": "plan_not_eligible"
}
{
"error": "bad_request",
"description": "application not found, enable webhooks in Fax.Plus integrations settings"
}
{
"error": "server_error",
"description": "server_error"
}
url and filter_types are required (filter_types must have at least one event). Create returns 201 with an empty body — list endpoints to read the ep_… id.curl -X POST https://restapi.fax.plus/v3/webhooks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-d '{
"url": "https://example.com/fax-webhooks",
"filter_types": ["fax_sent", "fax_received"],
"channels": ["+12135550123"]
}'
import requests
resp = requests.post(
"https://restapi.fax.plus/v3/webhooks",
headers={"Authorization": "Bearer {access-token}", "Content-Type": "application/json"},
json={
"url": "https://example.com/fax-webhooks",
"filter_types": ["fax_sent", "fax_received"],
"channels": ["+12135550123"],
},
)
print(resp.status_code)
{}
{
"error": "bad_request",
"description": "Invalid number: not-a-number"
}
{
"error": "plan_not_eligible"
}
{
"error": "bad_request",
"description": "application not found, enable webhooks in Fax.Plus integrations settings"
}
{
"error": "server_error",
"description": "server_error"
}
Authorizations
oauth2personal_access_token
OAuth2 Authorization Grant
Body
application/json
Create a webhook endpoint. url and filter_types are required.
Minimum array length:
1Webhook event type for /webhooks endpoints
Available options:
fax_received, fax_sent, fax_page_received Fax number in E.164 format
Show child attributes
Show child attributes
Response
Endpoint was successfully created. Body is an empty object; list endpoints to read the ep_… id.
The response is of type object.