# Monday, August 5, 2013

We've just released a beta version of our new SOAP API which harnesses many of the features found in our recently launched Letter 2.0 writing interface.

The API enables you to:

  • Send the same letter to multiple recipient
  • Attach multiple PDF's to a letter
  • Add a cover (written in HTML) with or without PDF's

More documentation will follow soon, but for now here is an example for using the API.

The endpoint for the service can be found here https://www.pc2paper.co.uk/lettercustomerapi.svc
to access the WSDL simply go here https://www.pc2paper.co.uk/lettercustomerapi.svc?wsdl

Please note the service endpoint talks about svcutil.exe, this is only applicable to Microsoft WCF users. Please also note that SOAP is a widely used XML-based protocol, it is assumed at all times that the developer is aware of SOAP or has used it. It is beyond the scope of this article to explain SOAP. If you are using .NET you can take advantage of the features available to you in WCF, if not you can still use the service as a bog standard soap service from any of the popular languages such as PHP, C#, Ruby, Delphi, Java etc. by just using the WSDL (https://www.pc2paper.co.uk/lettercustomerapi.svc?wsdl )

The example in this article uses C#, we will cover using the service from other languages in future, for now here are some links about SOAP in those languages.

The following example illustrates how to upload a PDF attachment and write a cover letter with our new API the sample below is in C# using Visual Studio .NET. More examples in other languages will follow.

Firstly add a new service reference to your project, ensure you use https in the service address as below.


The code for the example is below. As with our other interfaces, in order to get the correct envelope, paper, print type and postage type please refer to our Letter Pricing API or contact us with your requirements and we will be more than happy to provide suitable values for you.

   1:  using System;
   2:  using System.IO;
   3:  using System.Text;
   4:  using PC2PaperLetterCustomerAPIExample.PC2PaperAPI;
   6:  namespace PC2PaperLetterCustomerAPIExample
   7:  {
   8:      static class Program
   9:      {
  11:          static void Main()
  12:          {
  13:              SendLetter();
  14:          }
  16:          static void SendLetter()
  17:          {
  18:              //Your PC2Paper username and password go here.
  19:              string username = "yourusername";
  20:              string password = "yourpassword";
  22:              var pc2PaperAPI = new PC2PaperAPI.LetterCustomerAPIClient();
  25:              //1. First we upload the files we want to attach to our letter
  26:              //   If you don't want to attach any files you can leave this step out.
  27:              // NOTE: You can also upload files async if using WCF Async methods are enables so you don't hang a UI thread for example.
  29:              // You can add as many PDF's as you want in this way. Just remember to grab the GUID's from each submit to the server.
  30:              // below we are only attaching one.
  31:              var fileContent =
  32:                  LoadBinaryFileAsByteArray(
  33:                      @"c:\temp\testPDF.pdf");
  36:              string fileName = "testPDF.pdf";
  38:              var uploadDocumentResults = pc2PaperAPI.UploadDocument(fileName, fileContent, username, password);
  41:              if(uploadDocumentResults.Status!="OK")
  42:              {
  43:                  // Oops an error took place.
  44:                  Console.WriteLine(uploadDocumentResults.ErrorMessages.ToString());
  45:                  return;
  46:              }
  48:              //2. Create a letter to attach out PDF to.
  49:              var letter = new LetterForPosting();
  51:              letter.Addresses = new LetterAddressForPosting[]
  52:                                     {
  53:                                         new LetterAddressForPosting()
  54:                                             {
  55:                                                 ReceiverName = "Tom Smith",
  56:                                                 ReceiverAddressLine1 = "Acme Co",
  57:                                                 ReceiverAddressLine2 = "2 Acme Street",
  58:                                                 ReceiverAddressTownCityOrLine3 = "Acme Town",
  59:                                                 ReceiverAddressCountyStateOrLine4 = "State",
  60:                                                 ReceiverAddressPostCode = "ZN12 9xn"
  61:                                             }
  62:                                     };
  64:              letter.ReceiverCountryCode = 1;
  66:              letter.Envelope = 1;
  67:              letter.Postage = 3; //UK First Class
  68:              letter.Paper = 1;
  69:              letter.Extras = 0;
  70:              letter.SenderAddress = "Peter Smith\n 72 Some Road \n Some Town \n P23 123";
  71:              letter.Pages = 1;
  73:              // We are also putting a cover letter onto our letter. (The cover letter will always be in front)
  74:              // Leave the LetterBody line out if you do not wish to include one.
  75:              var bodyOfLetter = new StringBuilder();
  77:              bodyOfLetter.Append("

Dear Tom

  79:              bodyOfLetter.Append("

How are you? I'm sending you a letter via the PC2Paper API

  81:              bodyOfLetter.Append("


  83:              letter.LetterBody = bodyOfLetter.ToString();
  85:              // delete this line if you only wish to send a cover letter
  86:              letter.FileAttachementGUIDs = new string[] { uploadDocumentResults.FileCreatedGUID};
  88:             var letterSendingResult =  pc2PaperAPI.SendSubmitLetterForPosting(letter, username, password);
  90:              Console.WriteLine("Result:" + letterSendingResult.Status + " with letter id:" + letterSendingResult.LetterId);
  92:          }
  94:          static byte[] LoadBinaryFileAsByteArray(string filename)
  95:          {
  96:              var binReader = new
  97:                  BinaryReader(File.Open(filename, FileMode.Open,
  98:                                         FileAccess.Read));
  99:              binReader.BaseStream.Position = 0;
 100:              byte[] binFile =
 101:                  binReader.ReadBytes(Convert.ToInt32(binReader.BaseStream.Length));
 102:              binReader.Close();
 104:              return binFile;
 105:          }
 107:      }
 108:  }


If you have any questions, please let us know.

posted on Monday, August 5, 2013 11:01:56 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Wednesday, July 10, 2013

We have recently sourced new equipment which will soon be enable us to offer the colour laser print option at a greatly reduced price, in fact the same price we currently charge for a colour Ink Jet print. As a result of this PC2Paper will soon be withdrawing the Ink Jet printing option as we feel it has become surplus to requirements. The Ink Jet option has allowed customers the option to send a much lower cost colour print, however, we feel the new lower priced colour laser print not only provides a much better quality print but also better value for money.

posted on Wednesday, July 10, 2013 10:43:34 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Friday, May 24, 2013

Monday the 27th of May is a Bank Holiday in the UK. We do not have any Royal Mail collections of deliveries on this day and the PC2Paper office is closed. Any letters sent after our 4pm cut-off time on Friday the 24th of May will be sent on the next available working day Tuesday the 28th of May. Customers should also be aware that mail may take longer to be delivered over the Bank Holiday weekend.

posted on Friday, May 24, 2013 2:10:54 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Friday, May 3, 2013

Monday the 6th of May is a Bank Holiday within the UK so we have no mail deliveries or postal collections on this day. Any mail sent after our 4pm cut-off time on Friday the 3rd of May will be processed on the next available working day which is Tuesday the 7th of May.

posted on Friday, May 3, 2013 4:29:38 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Tuesday, April 2, 2013

As of today (2nd of April) the prices have increased for some Royal Mail services. These include Recorded and Special Delivery, International Signed delivery and Airmail. PC2Paper have increased our prices of these items to take into account the increases.

posted on Tuesday, April 2, 2013 3:47:49 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Wednesday, March 27, 2013

We would like to remind customers of the Royal Mail delivery times for Easter. Friday the 29th of March and Monday the 1st of April are public holidays in the UK. This means that there are no Royal Mail collections or deliveries on these days. PC2Paper will also be closed for the long weekend. Any letters received into our system after our cut-off time of 4pm on Thursday the 28th of March will be processed on the next available working day which is Tuesday the 2nd of April. Customers should also expect mail delivery to take longer due to the Bank Holidays.

posted on Wednesday, March 27, 2013 2:10:28 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Wednesday, March 13, 2013

Weather conditions are starting to improve and Royal Mail have reinstated their collections in our area. We have now put the tracked services including Recorded Delivery, Special Delivery and International Signed For, delivery back on the website.

posted on Wednesday, March 13, 2013 5:43:08 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Tuesday, March 12, 2013

We are currently experiencing delays to all UK mail due to severe weather conditions in our local area. The weather conditions are currently affecting the Royal Mail service which collects from businesses and post boxes. Currently the collections vans are unable to come out to collect mail so there will be some delay in it entering the postal system. We are still processing as normal, but have removed any tracked services until the weather conditions improve. Customers should expect delivery to take longer until further notice.

posted on Tuesday, March 12, 2013 10:25:52 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback