Sending faxes

The internet fax service from ExtraFax Cloud allows customers the ability to send faxes without having to install costly fax servers or modems. Once a fax has been submitted into the ExtraFax Cloud system we will then take care of the processing and sending of that fax, doing everything in our power to ensure a successful delivery.

For a list of the most frequently asked questions related to sending faxes, please see the support section here.

The ExtraFax Cloud internet to fax service allows customers three basic methods by which to submit faxes into the ExtraFax Cloud system:

1. The ExtraFax Cloud Control Panel

The ExtraFax Cloud control panel allows customers the ability to log in and send faxes via our online web form. The control panel also gives quick access to advanced sending and formatting options as well as billing, account and user management settings.

ExtraFax Cloud Send Fax Control Panel Screen

To send a fax via the ExtraFax Cloud control panel, please see the support section here.

2. Email to fax

Allows customers the ability to send faxes via any standard email software such as Outlook or Thunderbird, or via web based email services such as Gmail or Yahoo! Mail.

Fax from email screenshot

To send a fax via email, please see the support section here.

3. Developer fax API

Integrate our services with any development environment with our free fax API and submit faxes using a choice of common API methods.

Fax API

Fax API

Java Fax API
  • Send a fax
    
    java.io.File file = new File(absoluteFilePath);
    InterFAX interFAX = new DefaultInterFAXClient("username", "password");
    APIResponse apiResponse = interFAX.sendFax(faxNumber, file);
    																
  • Check sent fax status
    
    InterFAX interFAX = new DefaultInterFAXClient();
    OutboundFaxStructure[] outboundFaxStructures = interFAX.getFaxList();
    																	
  • Retrieve received fax
    
    InterFAX interFAX = new DefaultInterFAXClient();
    InboundFaxStructure[] inboundFaxStructures = interFAX.getInboundFaxList();
    
    InterFAX interFAX = new DefaultInterFAXClient();
    InboundFaxStructure inboundFaxStructure = interFAX.getInboundFaxRecord("999999999");
    
    InterFAX interFAX = new DefaultInterFAXClient();
    byte[] faxImage = interFAX.getInboundFaxImage("999999999");
    																
PHP Fax API
  • Send a fax
    
    use Interfax\Client;
    
    $interfax = new Client(['username' => 'username', 'password' => 'password']);
    $fax = $interfax->deliver(['faxNumber' => '+11111111112', 'file' => 'folder/file.pdf']);
    
    // getStatus will refresh the status of the fax from the server, if it's less than 0, then the fax is still pending.
    while ($fax->getStatus() < 0) {
        sleep(5); // wait 5 seconds
    }
    
    // false prevents another request for status
    echo $fax->getStatus(false) === 0 ? 'SUCCESS' : 'FAILURE';
    																
  • Check sent fax status
    
    $fax_ids = [ ... ]; // array of fax ids
    $client->outbound->completed($fax_ids);
    $fax = $client->outbound->find(999999999);
    																
  • Retrieve received fax
    
    $faxes = $inbound->incoming();
    $fax = $inbound->find(999999999);
    $fax = $client->inbound->find(999999999);
    if ($fax) {
        $image = $fax->image();
        $image->save('path/to/save/file/to.pdf');
    }
    																
Python Fax Library
  • Send a fax
    
    from interfax import InterFAX
    
    interfax = InterFAX(username="username", password="password")
    fax = interfax.deliver(fax_number="+11111111112", files=["folder/fax.pdf"])
    fax = fax.reload() # resync with API to get latest status
    fax.status # Success if 0. Pending if < 0. Error if > 0
    																
  • Check sent fax status
    
    interfax.outbound.all()
    interfax.outbound.find(999999999)
    image = interfax.outbound.image(999999999)
    Image(id=999999999)
    image.data
    image.save("fax.tiff")
    																
  • Retrieve received fax
    
    interfax.inbound.all()
    interfax.inbound.find(999999999)
    image = interfax.inbound.image(999999999)
    Image(id=999999999)
    image.save("fax.tiff")
    																
Ruby Fax API
  • Send a fax
    
    require 'interfax'
    
    interfax = InterFAX::Client.new(username: 'username', password: 'password')
    fax = interfax.deliver(faxNumber: "+11111111112", file: 'folder/fax.pdf')
    fax = fax.reload # resync with API to get latest status
    fax.status # Success if 0. Pending if < 0. Error if > 0
    																
  • Check sent fax status
    
    interfax.outbound.all
    interfax.outbound.find(999999999)
    image = interfax.outbound.image(999999999)
    image.data
    image.save('fax.tiff')
    																
  • Retrieve received fax
    
    interfax.inbound.all
    interfax.inbound.find(999999999)
    image = interfax.inbound.image(999999999)
    image.data
    image.save('fax.tiff')
    																
.Net Fax API
  • Send a fax
    
    using InterFAX.Api;
    var interfax = new FaxClient();
    var options = new SendOptions { FaxNumber = "+11111111112"};
    
    var fileDocument = interfax.Documents.BuildFaxDocument(@".\folder\fax.txt");
    var messageId = await interfax.SendFax(faxDocument, options);
    																
  • Check sent fax status
    
    var faxes = await interfax.Outbound.GetList();
    var fax = interfax.Outbound.GetFaxRecord(999999999)
    																
  • Retrieve received fax
    
    var faxes = await interfax.Inbound.GetList(new ListOptions { UnreadOnly = true });
    var fax = await interfax.Inbound.GetFaxRecord(999999999);
    using (var imageStream = await _interfax.Inbound.GetFaxImageStream(999999999))
    {
        using (var fileStream = File.Create(@".\image.tiff"))
        {
            Utils.CopyStream(imageStream, fileStream);
        }
    }
    																
Node.js Fax API
  • Send a fax
    
    import InterFAX from 'interfax';
    let interfax = new InterFAX();
    
    interfax.deliver({
      faxNumber : '+11111111112',
      file : 'folder/fax.pdf'
    }).then(fax => {
      return interfax.outbound.find(fax.id);
      //=> find the fax we just created
    }).then(fax => {
      console.log(fax.status);
      //=> the status of the fax we just sent
    })
    .catch(error => {
      console.log(error);
      //=> an error object
    });
    																
  • Check sent fax status
    
    interfax.outbound.all({
      limit: 5
    }).then(faxes => {
      console.log(faxes); //=> an array of fax objects
    });
    interfax.outbound.find(999999999)
      .then(fax => {
        console.log(fax); //=> fax object
      });
    interfax.outbound.image(999999999)
      .then(image => {
        console.log(image.data); //=> TIFF image data
        image.save('file.tiff'); //=> saves image to file
      });
    																
  • Retrieve received fax
    
    interfax.inbound.all({
      limit: 5
    }).then(faxes => {
      console.log(faxes); //=> an array of fax objects
    });
    interfax.inbound.find(999999999)
      .then(fax => {
        console.log(fax); //=> fax object
      });
    interfax.inbound.image(999999999)
      .then(image => {
        console.log(image.data); //=> TIFF image data
        image.save('file.tiff'); //=> saves image to file
      });
    																

For further information and support relating to the developer fax API service, please visit the developer's guide here.