Fax-for-Applications API - Reworked
Retarus Fax-for-Applications automates the fax transmission process. It also allows you to monitor fax status and delete archived reports. The service uses a REST 1.0 (JSON) interface. You can implement the Fax-for-Applications client in any programming language.
Fax transmission generally follows these steps:
Create and send a fax job to Fax-for-Applications.
Retrieve the job status via polling or via a push service (HTTP or mail).
Delete fax reports when no longer needed.
Version & media
Current version:
Content-Type:
Accepts:
v1
application/json
application/json
Authentication
The API uses HTTP Basic Authentication for all requests. Each request must include:
Authorization: Basic Base64Encoded(username:password)
Example
Username:
John
Password:
secret
Base64-encoding of
John:secret
isSm9objpzZWNyZXQ=
Header:
Authorization: Basic Sm9objpzZWNyZXQ=
Login ID is managed via the Retarus EAS Portal. Jobs created under one Login ID are isolated and cannot be accessed using another.
As an additional layer of protection, you can configure IP allowlisting per Login ID to restrict access to specific IP addresses or subnets.
๐ Note
For more information about authorization, refer to the API Center.
Service endpoints
The Fax-for-Applications service is available via highly available (HA) endpoints or specific data center URLs:
Region | HA URL | Data Center URLs |
---|---|---|
Germany |
|
|
USA |
|
|
Switzerland | n/a |
|
Singapore | n/a |
|
For additional connection options, contact Retarus Support.
Key concepts
Status report & job data retention
Status reports: Available for retrieval for up to 30 days or until manually deleted.
Job data: Automatically deleted after the configured retention period.
High availability (HA) handling
If you submit fax jobs via a HA URL:
Always query or delete reports through the data center URLs (e.g., US1 and US2 for USA jobs).
Never send status queries or delete requests to an HA URL.
Always check both data centers since processing might not have completed across both.
Job validity periods
By default, jobs become valid immediately upon creation and expire one month later.
You can specify custom validity periods using ISO 8601 format:
Timestamps for specific points in time (example:
"2023-12-31T23:59:59Z"
)Duration strings for time periods (example:
"P30D"
for 30 days)
Jobs automatically expire once the specified end time is reached or when the duration period elapses.
Job deletion rules
Deletion operations can handle up to 1000 jobs per request.
If more jobs are available, multiple requests are needed.
Limitations & constraints
Document constraints
Filename length | Maximum 32 characters |
Allowed characters | Only a-zA-Z0-9-_. (no whitespaces, slashes, or other special characters) |
Document formats | PDF, TIF, TXT, and HTML are supported |
Cover pages | Templates must be UTF-8 encoded |
Status report limitations
Status reports are limited to the oldest 1000 entries per request.
To retrieve more reports, you must delete processed reports first.
Reports are stored for up to 30 days by default.
Main operations
The following operations are available.
๐ Customer number
In all API endpoints,
{custNr}
refers to your Retarus customer number (e.g., 999901). This is a unique identifier for your account and must be included in all API requests.
๐ Note
For full operation details, parameters, and request/response examples, see the API Center documentation.
Data structure overview
Fax jobs and their related operations use structured JSON data. Below is an overview of the key components and supporting objects used throughout the API.
Main data models
Name | Description |
---|---|
FaxJobRequest | Defines a fax job with documents, recipients, and optional settings such as rendering, metadata, and delivery options. |
FaxJobResponse | Returns the Job ID after successful job submission. |
FaxReport | Contains the result of a fax job, including the number of pages and recipient status. |
FaxReports | A collection of multiple |
BulkJobReportsRequestBody | Retrieves or deletes multiple job reports via |
BulkJobReportResponseBody | Response for bulk operations. Contains a |
JobDeleteReport | Indicates the result of a delete operation for a single job. |
MetaData | Contains customer reference and job validity period. |
JobValid | Defines the valid time window for a job. Can use exact timestamps or durations.
|
Supporting data structures
Name | Description |
---|---|
DocumentWithData | Represents a document as inline base64 or by reference URL. |
FaxRecipient | Specifies a recipient with a fax number and optional personalization fields. |
FaxRecipientWithStatus | Extended recipient data including transmission status, timestamps, and delivery result. |
TransportOptions | Optional settings such as CSID (sender ID), express delivery, or blacklist control. |
RenderingOptions | Controls how the fax is displayedโpage size, resolution, overlays, and cover pages. |
Overlay | Allows applying a black-and-white template (e.g., stationery) to specific pages. |
RecipientProperty | Defines key-value pairs for personalized cover pages. |
Reference | Contains optional metadata such as billing codes and customer-defined IDs. |
StatusReportOptions | Defines how transmission status is reported (via email or HTTP push). |
HttpStatusPush | Configuration for HTTP-based status notifications. |
ReportMail | Configuration for email-based status reports, including attached fax image options. |
Error response structure
All error responses follow a standard format containing a code and message:
{
"code": 400,
"message": "Validation of job request failed: 'No number available for rcpt
FNLAJR3BK80D8LLWADCPYL'"
}
Authentication failures are responded to with:
{
"code": 401,
"message": "Authentication failed"
}
๐ Note
Schema field details and example payloads are available in the API Center documentation. Field visibility may depend on the request type (e.g.,GET
vsDELETE
).
Pagination of status reports
To work with more than 1000 status reports:
Retrieve the first batch of up to 1000 reports using
GET /{custNr}/fax/reports
.Process the retrieved reports.
Delete the reports you've processed using
DELETE /{custNr}/fax/reports
.Repeat the process to get the next batch of reports.
There is no explicit pagination parameter - you must delete processed reports to access the next set.
Troubleshooting
Common issue | Solution |
---|---|
Status reports not appearing | Ensure you're querying both data center URLs, not just the HA URL. |
Authentication failures | Verify your Base64 encoding is correct and that your IP is allowlisted if that feature is enabled. |
"Job Expiration" errors | Make sure you're including the time zone in ISO 8601 format timestamps. |
Failed fax transmissions | Check the recipient status codes and reasons in the fax report. |
Document filename errors | Ensure filenames are 32 characters or less and use only allowed characters ( |
400 Bad Request errors | Check that your JSON is valid and that all required fields are included. |
Missing documents | Verify that either document data or reference URL is provided (not both simultaneously). |
Invalid country code in fax number | Format numbers in international format with country code (e.g., +1201xxxxxxx). |
Overlapping job IDs | Ensure job IDs are unique when tracking multiple fax jobs. |