Understanding the GoFax REST API and how to use it.
The GoFax REST API (https://restful-api.gofax.com.au) provides endpoints to programmatically send and receive both fax and SMS messages. This guide explains how to authenticate and use the GoFax REST API.
Authentication
Each API request requires authentication by including an API token as a URL query parameter named 'token'.
Follow our article on API access tokens to generate a token associated with your GoFax account.
💡 To check if you have a valid API token, send a HTTP PUT request to the v1.0/Account/CheckHaveAccess endpoint and include the 'token' as a parameter:
e.g.,
PUT https://restful-api.gofax.com.au/v1.0/Account/CheckHaveAccess?token=xxxxx-xxxxx-xxxxx-xxxxx HTTP/1.1
If you do not include a valid API token or if you attempt to access details of fax or SMS associated with another GoFax account, the API will respond with HTTP status 401 and no response body.
Security
API access tokens grant access to settings and fax and/or SMS content on a single GoFax client grade account. Multiple tokens can be generated on a single account.
We highly recommend generating and using new tokens at least once a year, or more often if possible.
Tokens can be created using the GoFax Secure Web Portal or programmatically using the PUT /v1.0/Account/Token endpoint.
💡 We recommend encrypting the token before storing in your application, however the token must be unencrypted when included in requests to our API.
Conventions and request formats
Our API follows RESTful API conventions and standards.
- To request the status of fax or SMS, send a GET request with the ID contained in the URL path without a request body.
- To submit a fax or SMS job for sending, send a PUT request with the required JSON data in the request body.
- To perform an action like resending a fax or SMS, send a POST request with the ID contained in the URL path without a request body.
For endpoints that require a JSON payload, ensure that you include the HTTP header.
e.g., Content-Type: application/json
Faxing Endpoints
Request | Use endpoint |
Send a fax (base64 encoded documents) | PUT /v1.0/SendFax |
Check for received faxes | |
Download a received fax document (base64 encoded document) | GET /v1.0/ReceiveFax/{faxId}/Document |
View our article on Faxing using the API for more information.
SMS Endpoints
Request | Use endpoint |
Send an SMS message to one or more recipients | PUT /v1.0/SMS |
Check for SMS replies | GET /v1.0/SMS/Replies/{number} |
View our article on SMS using the API for more information.
Webhooks
You can configure webhooks to be triggered upon successful or failed delivery of a sent SMS or fax job.
A webhook can also be configured for fax receive, which is triggered when a new fax is received to your GoFax account.
Fax webhooks support HTTP Basic Authentication.
View our article on Using Webhooks for more information.
💡 Please also view our article on GoFax REST API common practices