Application Program Interfaces (APIs)

CopiaFacts has a rich set of application program interfaces, which allow you easily to integrate your own applications with CopiaFacts' operations.

File-based API

If your application can drop a simple text file into a folder, you can send a fax, e-mail or voice message with CopiaFacts.  This API is described in the CopiaFacts Fax Send (FS) API topic.

For e-mail and SMS transactions we also provide an MSMQ interface which allows FS file images to be sent to CopiaFacts as MSMQ messages. This is not currently offered for fax transactions because the queue mechanism is not compatible with timed initiation of smart retries, which fax delivery more often involves.

Print-based API

If your application can print, then by printing to the Fax Save or FFMERGE print drivers, you can create a tif file and have it faxed.  For the fax save driver (FFSAVE) you have to provide an application which will for example use the File-based API to create an FS file for sending the fax. On the other hand with FFMERGE the process of faxing (or e-mailing) your document is fully automatic, controlled by a header line you write into the document in a special font.

E-Mail to Fax API

Applications which can send e-mails can also send faxes using your CopiaFacts E-Mail to Fax Gateway. For example you can create a domain such as and send e-mails to a virtual mailbox consisting of any fax number at this domain (for example  On receipt, the Gateway will automatically send a fax to the specified number, converting Office and PDF attachments to fax format before transmission.  A DLL interface is also available to customize the validation and acceptance of incoming e-mails.

Goldmine Interface API

The CopiaFacts Goldmine Interface allows a request for a fax or e-mail to be written to a SQL table and updates the table automatically with the transmission results.

Queue-based APIs

If your applications can read MSMQ messages, there are two ways you can collect information from CopiaFacts directly into your applications:

You can specify a 'Notify Queue' using $notify_qname.  This can receive a message from COPIAFACTS after every completed transmission operation, outbound or inbound.  You have complete control over the data placed in the label and message body using the NQ... variables to specify the content.

You can specify a 'Monitor Queue' using $monitor_qname. This queue can receive real-time messages from COPIAFACTS at every stage of a fax transmission or any other operation.  You have control over the call states or fax stages to be monitored.  For more information, see the Real-Time Status Monitoring topic.

CopiaFacts Scripting API

You can write complete and complex applications, as well as simple tasks, using the CopiaFacts Scripting API.  Running in the main COPIAFACTS engine, this API offers multiple hooks and full access to all active CopiaFacts variables as faxes, e-mails and voice messages are transmitted, and as faxes as received and IVR interaction occurs.  From scripting you can also:

run programs, pass parameters, collect results

call user-written DLLs using built-in DLL interfaces

call utility functions in the CopiaFacts application support DLL

directly access Database files using the Extended Database Interface

Job Administration API

Control of all aspects of the CopiaFacts Broadcast Job Administration system is exposed through a published DLL interface, which is also used by all CopiaFacts job applications. The interface allows job setup, job launch and all aspects of the control of jobs to be performed by user-provided server, desktop or web applications. The DLL can be called from unmanaged or .NET managed applications.  For details, see the Job Adminstration topics, and Appendix J.