InterFAX offers its clients the outbound service for sending faxes. With this service, a client can submit a fax to the InterFAX system and that fax will be processed and sent to the fax recipient provided by the client. At the end of the process, the client can choose to receive a feedback with a confirmation of delivery or the reason for failure - the feedback could be sent in the form of an email or in a web callback, or the client can retrieve the status of the fax via the API.
Your application will need to allow the client to prepare their document - this could be a document that has been prepared beforehand and stored on the file system (for example, a Microsoft Word document), or it could be a document created through an online editor (in which case the resulting document would most likely be HTML).
The document can be submitted to InterFAX through one of our interfaces - SMTP, SOAP or REST. Once the fax is submitted, InterFAX gets busy preparing it and sending it out. This may take a few minutes.During that time, the client may be interested to know the status of the fax and you can use the one of the APIs “Get Status” methods to retrieve the status of the fax. This returns a structure detailing the most recent faxes. Of course, you could request more or fewer faxes by using the limit parameter. Simply format and display the returned values or a subset to the user.
Once the fax has been completed processing - either because the fax was delivered successfully to the recipient or because InterFAX has gone through all of the necessary call attempts and determined that the call could not go through (this could be due to the fax machine on the recipient number being busy (engaged), out of paper, or not answering, or due to telephone line problems) - the feedback will be sent to the client by either SMTP or callback or both (based on client settings).
At that point, if the fax failed, it is up to the client and your application to “decide” what to do next - resend the fax to the same number, call the recipient and confirm the number, etc.
The diagram below shows the recommended sequence of events (there are many ways to achieve this behavior).