In this use case let's assume that you are building an application that needs to send out faxes as part of a messaging process. This could be an application that sends out invoices, forwards online orders, distributes prescriptions, etc. The document is created programmatically by your application, which generates HTML, PDF, or some other file of a supported file type. Let's also assume that you manage the state of submitted faxes (in process/completed OK/failed) in your application. That is, you have a local database table with a record that tracks each fax as it is created and submitted to InterFAX through to its completion.
Your application would submit the fax to InterFAX by using one of our outbound “send fax” methods (depending on which API you use). InterFAX returns the fax's unique ID. Keep this ID in your records. Once the fax is submitted, InterFAX gets busy preparing it and sending it out. This may take a few minutes.
To track the fax through completion, you can either poll InterFAX using one of our “get status” methods every few minutes, or get a callback from InterFAX (We discuss in more detail the differences between polling and callback).
You may wish to have a process in place that alerts an administrator if a fax takes too long to go out. The definition of "too long" will vary between applications (for example, faxing bank statements will be a more relaxed process than sending online restaurant orders), but always allow at least one minute per faxed page, or more if you're letting InterFAX handle retries in case of busy destination machines.
The diagram below shows the sequence of events.