SRFax Fax API Web Services Documentation



Similar documents
Online signature API. Terms used in this document. The API in brief. Version 0.20,

s sent to the FaxFinder fax server must meet the following criteria to be processed for sending as a fax:

CCS COMPUTING AND COMMUNICATIONS SERVICES. Using XMediusFAX

MAIL1CLICK API - rel 1.35

ClicktoFax Service Usage Manual

PHP Integration Kit. Version User Guide

FAXAGE. Internet Fax API Documentation

Facebook Twitter YouTube Google Plus Website

SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2

Amazon Glacier. Developer Guide API Version

Installing and Sending with DocuSign for NetSuite v2.2

ACCREDITATION COUNCIL FOR PHARMACY EDUCATION. CPE Monitor. Technical Specifications

Serial Deployment Quick Start Guide

API Guide v /11/2013

Grandstream Networks, Inc. UCM6100 Series IP PBX Appliance CDR and REC API Guide

US Secure Web API. Version 1.6.0

Merchant Returns Service International

Virtual Fax API User Guide

OnTime Web Services User Guide

DocuSign for Salesforce Administrator Guide v6.1.1 Rev A Published: July 16, 2015

NETWORK ADMINISTRATION

SIX Trade Repository AG

Advanced HTTP API Documentation

ResellerPlus - Bulk Http API Specification. (This Document gives details on how to send messages via the Bulk HTTP API for the RouteSms SMPP System)

Configuring System Message Logging

API Document Webaroo Technology India Pvt. Ltd.

Release Notes. DocuSign Spring 15 Release Notes. Contents

Follow Up Pro Guide

SQL Injection. The ability to inject SQL commands into the database engine through an existing application

AT&T ONLINE FAX USER GUIDE

Package uptimerobot. October 22, 2015

MyFaxCentral User Administration Guide

THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY

Technical documentation

Fax User Guide 07/31/2014 USER GUIDE

IoT-Ticket.com. Your Ticket to the Internet of Things and beyond. IoT API

Safeguard Ecommerce Integration / API

Ciphermail Gateway PDF Encryption Setup Guide

Port Server RADIUS Support (RFC 2865, 2866)

AT&T Online Fax User Guide Version 1.0

Integrating Fax Sending Services

Desktop Fax. Administration and Fax Management User Guide

FaxCore ev5 Change Log

Bulk Downloader. Call Recording: Bulk Downloader

Electronic Data Transmission Guide For International Mailers

System Administrator Training Guide. Reliance Communications, Inc. 603 Mission Street Santa Cruz, CA

StreamServe Persuasion SP4 Connectors

Forumbee Single Sign- On

FileMaker 13. ODBC and JDBC Guide

E*TRADE Developer Platform. Developer Guide and API Reference. October 24, 2012 API Version: v0

Google Calendar 3 Version 0.8 and 0.9 Installation and User Guide. Preliminary Setup

REST Webservices API Reference Manual

Fairsail REST API: Guide for Developers

University of California Online Payroll / Personnel System. WEB PAN Application

Track and Trace. Administration Guide

Server and Direct Shared Protocols

8.7. NET SatisFAXtion Gateway Installation Guide. For NET SatisFAXtion 8.7. Contents

UFTP AUTHENTICATION SERVICE

ipayment Gateway API (IPG API)

Remote Access API 2.0

Contents. 2 Alfresco API Version 1.0

Databricks Cloud Platform Native REST API 1.0

MXSAVE XMLRPC Web Service Guide. Last Revision: 6/14/2012

ODEX Enterprise. Introduction to ODEX Enterprise 3 for users of ODEX Enterprise 2

Mobile Connect for USA Mobility Pagers for iphone

How do I share a file with a friend or trusted associate?

Volume. PANGEA COMMUNICATIONS CORPORATION Internet Fax Solutions. Virtual Fax Reseller Guide

Kaseya 2. User Guide. for VSA 6.3

Kaseya 2. User Guide. Version 7.0. English

Bank and SecurePay Response Codes

Unix Scripts and Job Scheduling

Realfax Service User Manual Version 4

Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0

Saferpay Implementation Guide

Jobs Guide Identity Manager February 10, 2012

User Guide - Table of Contents

SIP SOFTPHONE SDK Microsoft Windows Desktop OS

Sage 100 ERP. ebusiness Web Services Installation and Reference Guide

Microsoft Networks/OpenNET FILE SHARING PROTOCOL. INTEL Part Number Document Version 2.0. November 7, 1988

ReplixFax Batch Loader

List of FTP commands for the Microsoft command-line FTP client

DEVELOPER API. Last Updated: Simwood Mobile Developer API 1.5

Turnitin User Guide. Includes GradeMark Integration. January 2014 (revised)

JiveX Enterprise PACS Solutions. JiveX HL7 Gateway Conformance Statement - HL7. Version: As of

MyMobileAPI. mymobileapi.com

NASDAQ Global Index Watch (GIW) Secure Web Service 2.0 Access

Credomatic Integration Resources. Browser Redirect API Documentation June 2007

REST Webservices API Tutorial

Frequently Asked Questions

SalesJunction.com. Sales Force Automation & CRM. SJAPI Guide

Getting Started with the icontact API

Transcription:

SRFax Fax API Web Services Documentation Revision Date: July 2015 The materials and sample code are provided only for the purpose of an existing or potential customer evaluating or implementing a programmatic integration with the SRFAX fax service.

CONTENTS CONTENTS 2 Overview 3 The SRFax Fax API an application programmer to integrate Fax capabilities into their application utilizing the SRFax API. The integration itself is done via web services using HTTPS POST operations. 3 Queue_Fax 4 4 5 NOTIFY URL POST Response 5 Get_FaxStatus 6 6 6 Get_MultiFaxStatus 7 7 7 Get_Fax_Inbox 8 8 8 Get_Fax_Outbox 9 9 9 Retrieve_Fax 10 10 10 Update_Viewed_Status 11 11 11 Delete_Fax 12 12 12 Stop_Fax 13 13 13 Get_Fax_Usage 14 14 14 PHP Code Examples 15 Queue_Fax 15 Get_FaxStatus 16 Retrieve_Fax 17

Overview The SRFax Fax API an application programmer to integrate Fax capabilities into their application utilizing the SRFax API. The integration itself is done via web services using HTTPS POST operations. POSTS are sent to the following URL: https://www.srfax.com/srf_secwebsvc.php This same URL is used for all operations and data can be sent as a JSON encoded string or as a regular POST variable. This documentation illustrates both required and optional variables that are sent to the web service in order to accomplish each operation. Responses from the SRFAX web service are also provided. There are nine (10) basic operations detailed below. 1 Queue_Fax - Schedules a fax to be sent with or without cover page. 2 Get_FaxStatus Determines the status of a fax that has been scheduled for delivery. 3 Get_MultiFaxStatus Determines the status of a multiple faxes that hav been scheduled for delivery. 4 Get_Fax_Inbox - Returns a list of faxes received for a specified period of time 5 Get_Fax_Outbox - Returns a list of faxes sent for a specified period of time 6 Retrieve_Fax Returns a specified sent or received fax file in PDF or TIFF format 7 Update_Viewed_Status Mark a inbound or outbound fax as read or unread. 8 Delete_Fax - Deletes specified received or sent faxes 9 Stop_Fax - Deletes a specified queued fax which has not been processed 10 Get_Usage Usage report for a specified user and period. SRFax is also willing to develop additional web services if requested for specific client requirements. Please contact support@srfax.com for making additional requests.

Queue_Fax action String Required Must be Queue_Fax scallerid: Integer Required Senders Fax Number (must be 10 digits) ssenderemail String Required Senders Email Address sfaxtype: String Required SINGLE or BROADCAST stofaxnumber: Integer Required Required 11 digit number or up to 50 x 11 digit fax numbers separated by a (pipe). saccountcode: String Optional Optional internal reference number (Max of 20 Characters) sretries: Integer Optional Number of times the system is to retry a number if busy or an error is encountered number from 0 to 6. scoverpage String Optional If you want to use one of the cover pages on file, specify the cover page you wish to use Basic, Standard, Company or Personal. If a cover page is not provided then all cover page variable will be ignored. NOTE: If the default cover page on the account is set to Attachments ONLY the cover page will NOT be created irrespective of this variable. sfaxfromheader String Optional From: On the Fax Header Line (max 30 Char) scpfromname String Optional Sender s name on the Cover Page scptoname String Optional Recipient s name on the Cover Page scporganization String Optional Organization on the Cover Page scpsubject String Optional Subject line on the Cover Page** scpcomments String Optional Comments placed in the body of the Cover Page sfilename_x* String Optional Valid File Name See Supported File sfilecontent_x* String (Base64 Encoded) Optional Types below Base64 encoding of file contents. snotifyurl String Optional Provide an absolute URL (beginning with http:// or https://) and the SRFax system will POST back the fax status record when the fax completes. See the NOTIFY URL POST section below for details of what is posted. Notes:

*You are able to send an unlimited number of files with their content simply replace the x with the number order you wish the files to be faxed in. Please ensure that the sfilename_1 has content in sfilecontent_1 etc. **The subject line details are saved in the fax record even is a cover page is not requested so the subject can be used for filtering / searching You are able to send a fax with just the cover page details. Result: string Queued Fax ID (FaxDetailsID) or Reason for failure Supported File Types We support in excess of 156 different file types including.zip, but a summarized list of supported file types is available on our website at https://www.srfax.com/faqs If you wish to know about other file types, please contact customer service. NOTIFY URL POST Response If the snotifyurl is provided in the initial Queue_Fax call, the same variables returned from the Get_Fax_Status will be sent the URL you provide as POST variables. At any time you are still able to poll the fax status by calling Get_Fax_Status if the snotifyurl is missed for any reason. The variables sent are as follows: Part Name Var Type Size Description FaxDetailsID Integer - Fax Job ID FileName String 50 Name of the fax file SentStatus String 15 Status of the fax AccountCode String 20 Account Code provided when fax was scheduled DateQueued String - Date the fax was queued for delivery DateSent String - Date the fax was sent ToFaxNumber String 20 Recipient Fax Number Pages Integer - Total number of pages Duration Integer - Call length for transmission (in seconds) RemoteID String 40 Remote Fax ID ErrorCode String 75 Error message in the event of a failed fax Size Integer - Size of the file (in bytes) NOTES: You will have to setup the URL provided in the snotifyurl so that it can hanle a POST of the variables listed above. The DateQueued and DateSent variables will reflect your account's timezone settings. ErrorCode will be a string describing the error encountered. There is a wide range of possible errors, the most frequent of which are No Answer, Busy, and No Remote Fax

Get_FaxStatus action String Required Must be Get_FaxStatus sfaxdetailsid: Integer Required FaxDetailsID returned from Queue_Fax post. Result: string Array of the fax properties as follows: array( FileName => String (75), SentStatus => String(15), DateQueued => String, DateSent => String, EpochTime => String, ToFaxNumber => String(20), Pages => Integer, Duration => Integer, RemoteID => String(40), ErrorCode => String(75), Size => Integer, ) Note: If an error is found then the reason for failure will be in the Result string. NOTES: The DateQueued and DateSent will reflect your account's timezone settings EpochTime is a unix time stamp of the DateSent field https://en.wikipedia.org/wiki/unix_time ErrorCode will be a string describing the error encountered. There is a wide range of possible errors, the most frequent of which are Busy, No Answer, and No Remote Fax.

Get_MultiFaxStatus action String Required Must be Get_FaxStatus sfaxdetailsid: String Required Multiple FaxDetailsIDs can be requested by separating each FaxDetailsID with a pipe character. Result: string Array of the fax properties as follows: Array[#]->array( FileName => String(75), SentStatus => String(15), DateQueued => String, DateSent => String, EpochTime => String, ToFaxNumber => String(20), Pages => Integer, Duration => Integer, RemoteID => String(40), ErrorCode => String(75), Size => Integer ) Note: If an error is found then the reason for failure will be in the Result string. NOTES: The DateQueued and DateSent will reflect your account's timezone settings EpochTime is a unix time stamp of the DateSent field https://en.wikipedia.org/wiki/unix_time ErrorCode will be a string describing the error encountered. There is a wide range of possible errors, the most frequent of which are Busy, No Answer, and No Remote Fax.

Get_Fax_Inbox action String Required Must be Get_Fax_Inbox speriod: String Optional ALL or RANGE if not provided defaults to ALL sstartdate: String Optional Only required if RANGE specified in speriod date format must be YYYYMMDD senddate: String Optional Only required if RANGE specified in speriod date format must be YYYYMMDD sviewedstatus String Optional UNREAD only show faxes that have not been read. READ only show faxes that have been read. ALL show all faxes irrespective of Viewed Status. If one is not supplied the action will return ALL faxes. sincludesubusers String Optional Set to Y if function is to include all faxes received by sub users of the account as well. Notes: If you want to use sincludesubusers, you will need to use the access_id and access_pwd of the Master Account Result: string Array of the fax properties as follows: array( FileName => String(75), ReceiveStatus => String(15), Date => String, EpochTime => String, CallerID => String(40), RemoteID => String(40), Pages => Integer, Size => Integer, ViewedStatus => String(1) )

If sincludesubusers is set to Y then two additional variables are returned in the array: User_ID => Integer User_FaxNumber => String(55) Notes: Both Date and Epoch Time are adjusted to your date/timezone settings Epoch Time is a unix time stamp of the Date field https://en.wikipedia.org/wiki/unix_time Note: If an error is found then the reason for failure will be listed in the Result string. Get_Fax_Outbox action String Required Get_Fax_Outbox speriod: String Optional ALL or RANGE if not provided defaults to ALL sstartdate: String Optional Only required if RANGE specified in speriod date format must be YYYYMMDD senddate: String Optional Only required if RANGE specified in speriod date format must be YYYYMMDD sincludesubusers String Optional Set to Y if function is to include all faxes received by sub users of the account as well. Notes: If you want to use sincludesubusers, you will need to use the access_id and access_pwd of the Master Account Result: string Array of the fax properties as follows: array( FileName => String(75), SentStatus => String(15), DateQueued => String, DateSent => String, EpochTime => String, ToFaxNumber => String(20), Pages => Integer, Duration => Integer,

RemoteID => String(40), ErrorCode => String(75), AccountCode => String(20), Subject => String(128), Size => Integer ) If sincludesubusers is set to Y then two additional variables are returned in the array: User_ID => Integer User_FaxNumber => String(20) Note: If an error is found then the reason for failure will be in the Result string. Notes: Both Date and Epoch Time are adjusted to your date/timezone settings Epoch Time is a unix time stamp of the Date field https://en.wikipedia.org/wiki/unix_time The error code will be a string describing the error encountered. There is a wide range of possible errors, the most frequent of which are No Answer, Busy, and No Remote Fax Retrieve_Fax action String Required Retrieve_Fax sfaxfilename: String Required* sfaxfilename returned from Get_Fax_Inbox or Get_Fax_Outbox post sfaxdetailsid Integer Required* sfaxdetailsid of the fax the ID is located after the character of the sfaxfilename sdirection: String Required IN or OUT for inbound or outbound fax sfaxformat String Optional PDF or TIF defaults to account setting if not supplied smarkasviewed String Optional Y - mark fax as viewed once method completes successfully N or not provided: leave viewed status as is. Not * Either the sfaxfilename or the sfaxdetailsid must be supplied.

Result: string Base64 encoded fax file contents. The file format will be in PDF or TIF format depending on format requested or the settings selected on the account. Note 2: If an error is found then the reason for failure will be in the Result string. Update_Viewed_Status action String Required Update_Viewed_Status sfaxfilename: String Required* sfaxfilename returned from Get_Fax_Inbox or Get_Fax_Outbox post sfaxdetailsid Integer Required* sfaxdetailsid of the fax the ID is located after the character of the sfaxfilename sdirection: String Required IN or OUT for inbound or outbound fax smarkasviewed String Required Y - mark fax as READ N mark fax as UNREAD * Either the sfaxfilename or the sfaxdetailsid must be supplied. Result: string Empty String Note 2: If an error is found then the reason for failure will be in the Result string.

Delete_Fax action String Required Delete_Fax sdirection: String Required IN or OUT for inbound or outbound fax sfaxfilename_x String Required* sfaxfilename returned from Get_Fax_Inbox or Get_Fax_Outbox post. You are able to provide an unlimited number of fax file names by replacing the x with a sequential number. sfaxdetailsid_x Integer Required* sfaxdetailsid of the fax the ID is located after the character of the sfaxfilename. You are able to provide an unlimited number of fax ID s by replacing the x with a sequential number. * Either the sfaxfilename_x or the sfaxdetailsid_x must be supplied. Result: string Empty String on Success or the reason for failure

Stop_Fax action String Required Stop_Fax sfaxdetailsid: Integer Required FaxDetailsID returned from Queue_Fax post. Result: string Empty String on Success or the reason for failure This function is used for removing a scheduled fax from the queue once it has been scheduled. Please note that depending on where the fax is in the process, it is possible to have some pages sent by the time the fax is stopped. Possible results are: Status = Success: Result: Fax cancelled but partially sent fax was successfully cancelled but whatever was in the fax buffer will have been sent. Fax Cancelled the fax was successfully cancelled without any pages being sent. Status = Failed: Result: Fax transmission completed the fax has been sent and the transaction is complete Unable to Cancel Fax Fax in the process of conversion and cannot be cancelled at this time you can try again in 10 seconds.

Get_Fax_Usage action String Required Get_Fax_Usage speriod: String Optional ALL or RANGE if not provided defaults to ALL sstartdate: String Optional Only required if RANGE specified in speriod date format must be YYYYMMDD senddate: String Optional Only required if RANGE specified in speriod date format must be YYYYMMDD sincludesubusers String Optional Set to Y if function is to include all usage by sub users of the account Notes: If you want to use sincludesubusers, you will need to use the access_id and access_pwd of the Master Account Usage values are only available for the current month Result: string Array of the fax properties as follows: array( UserID => Integer, Period => String, ClientName => String (50), SubUserID => Integer, BillingNumber => String(50), NumberOfFaxes => Integer, NumberOfPages => Integer ) Note: If an error is found then the reason for failure will be in the Result string.

PHP Code Examples Below are examples of 3 API functions (Queue_Fax, Get_FaxStatus, and Retrieve_Fax) using the srfax class available at : https://www.srfax.com/srfax_api_class/getsrf_apiclass.php Though not every API function is shown here, there is documentation on how to call every function found inside the class source code Queue_Fax <?php /* * SRFax API Example - Queue a fax using the srfax Class */ require_once ("srfax_class.php"); $accountid = "12345"; $accountpassword = "MyPassword123"; // instantiate object with Account ID and Password $srfax = new srfax ( $accountid, $accountpassword ); //Get file contents for the fax $file1name = "MyFax.txt"; $file1contents = base64_encode(file_get_contents("files/$file1name")); $file2name = "TestImage.jpg"; $file2contents = base64_encode(file_get_contents("files/$file2name")); //Setup required variables $senderfaxnumber = "5551234567"; $senderemail = "myemail@example.com"; $receiverfaxnumber = "15551234567"; try { // attempt to queue a fax $srfax->queue_fax(array( 'scallerid' => $senderfaxnumber, 'ssenderemail' => $senderemail, 'sfaxtype' => 'SINGLE', 'stofaxnumber' => $receiverfaxnumber, 'sfilename_1' => $file1name, 'sfilecontent_1' => $file1contents, 'sfilename_2' => $file2name, 'sfilecontent_2' => $file2contents, )); catch (Exception $e) { // display error when exception is thrown die("error: $e");

if ( $srfax->getrequeststatus () ) { echo "Success! Fax Details ID = ". $srfax->getrequestresponse (); else { echo "ERROR: ". $srfax->getrequestresponse ();?> Get_FaxStatus <?php /* * SRFax API Example - Retrieve a fax's status using the srfax Class */ require_once ("srfax_class.php"); $accountid = "12345"; $accountpassword = "MyPassword123"; // instantiate object with Account ID and Password $srfax = new srfax ( $accountid, $accountpassword ); try { $srfax->get_faxstatus(array( 'sfaxdetailsid' => '12345678', )); catch (Exception $e) { // display error when exception is thrown die("error: $e"); if ( $srfax->getrequeststatus () ) { //Success! Output Fax Details $response = $srfax->getrequestresponse (); echo "Fax Details: <br/>\n"; echo "FileName: ". $response->filename. "<br/>\n"; echo "Status: ". $response->sentstatus. "<br/>\n"; echo "Date Queued: ". $response->datequeued. "<br/>\n"; echo "Date Sent: ". $response->datesent. "<br/>\n"; echo "Number of Pages: ". $response->pages. "<br/>\n"; else { echo "ERROR: ". $srfax->getrequestresponse ();

?> Retrieve_Fax <?php /* * SRFax API Example - Retrieve a fax using the srfax Class */ require_once ("srfax_class.php"); $accountid = "12345"; $accountpassword = "MyPassword123"; // instantiate object with Account ID and Password $srfax = new srfax ( $accountid, $accountpassword ); try { $srfax->retrieve_fax(array( 'sfaxdetailsid' => '12345678, 'sdirection' => 'OUT', //retrieving an outbound fax )); catch (Exception $e) { // display error when exception is thrown die("error: $e"); if ( $srfax->getrequeststatus () ) { //Success! Save the Retrieved Fax to a file. $localpath = "Files/"; $localfilename = "retrievedfax.pdf"; $srfax->savelastresponseasfile($localfilename, $localpath); echo "Success. Fax saved to ". $localpath.$localfilename; else { echo "ERROR: ". $srfax->getrequestresponse ();?>