From Pre-Ship through to Manifesting

This topic covers some of the basic Shipping API calls, taking you from pre-selecting carrier services through to creating and verifying the manifest.

Preliminary steps

The topic assumes that you have already:

  1. Configured your default Warehouse.

  2. Selected a couple of carrier services that suit your shipping operation, and subscribed to them.

  3. Configured each service to which you subscribed and set up some basic costs.

  4. Activated your carrier services.

  5. Created the carrier 'service groups' that cover the carrier services to which you subscribed, e.g. one for 'Next Day' services and one for 'Economy' services. Ensure that each carrier service is in a group.

  6. Created some allocation rules for each carrier service, e.g. to exclude some carrier services in each carrier 'service group' that are unable to deliver certain weights of consignment (refer to Rule Syntax).

  7. Set up an API user. This user will be used to make all the API calls (the admin. user cannot be used for this).

  8. Created a SOAP project from the Shipping API's Allocation service.

  9. Tested the API user's access to the Shipping API by making a simple call.

Note

The topic also assumes that you are going straight to 'Ready to Manifest' following allocation (refer to to How do I Print and Manifest separately?).

Pre-Select the required Carrier Services

It is good practice to verify which carrier services will be most suitable for delivering your consignment within a specified delivery window, before actually creating the consignment. For this, you can use findDeliveryOptionsWithBookingCode, which returns the carrier services that can deliver the package, in order of shippingCost, with the cheapest first, without creating or allocating the consignment.

Note

If you do not yet know all the details of the consignment, e.g. the parcelWeights, then you will need to provide estimates, by, for example, using an average weight per parcel.

The following example API call seeks to return the carrier services within the 48 (hour) carrier 'service group' that can deliver a package from London to the USA on 5th September 2020 (the request has been simplified to a single parcel consignment for illustrative purposes):

Example Request
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="urn:DeliveryManager/services" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:findDeliveryOptionsWithBookingCode soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <consignment xsi:type="typ:Consignment" xmlns:typ="urn:DeliveryManager/types">       
                      <consignmentLevelDetailsFlag xsi:type="xsd:boolean">false</consignmentLevelDetailsFlag>
                      <orderNumber xsi:type="soapenc:string">T4RE349B</orderNumber>
                      <orderValue xsi:type="xsd:double">300</orderValue>
                      <parcelCount xsi:type="xsd:int">1</parcelCount>
                      <parcels soapenc:arrayType="ns2:Parcel[1]" xsi:type="soapenc:Array">
                         <item>
                            <parcelDepth xsi:type="xsd:double">1.0</parcelDepth>
                            <parcelHeight xsi:type="xsd:double">2.0</parcelHeight>
                            <parcelValue xsi:type="xsd:double">300</parcelValue>
                            <parcelWeight xsi:type="xsd:double">2.0</parcelWeight>
                            <parcelWidth xsi:type="xsd:double">3.2</parcelWidth>
                         </item>
                      </parcels>
                      <recipientAddress xsi:type="ns2:Address">
                         <companyName xsi:type="soapenc:string" xsi:nil="true"/>
                         <countryCode xsi:type="soapenc:string">USA</countryCode>
                         <floor xsi:type="soapenc:string" xsi:nil="true"/>
                         <line1 xsi:type="soapenc:string">500 Yankee Street</line1>
                         <line2 xsi:type="soapenc:string">Apartment 999</line2>
                         <line3 xsi:type="soapenc:string">Houston</line3>
                         <line4 xsi:type="soapenc:string">Texas</line4>
                         <postCode xsi:type="soapenc:string">77002</postCode>
                         <region xsi:type="soapenc:string" xsi:nil="true"/>
                         <streetName xsi:type="soapenc:string" xsi:nil="true"/>
                         <streetNo xsi:type="soapenc:string" xsi:nil="true"/>
                         <streetType xsi:type="soapenc:string" xsi:nil="true"/>
                         <town xsi:type="soapenc:string" xsi:nil="true"/>
                         <type xsi:type="soapenc:string" xsi:nil="true"/>
                      </recipientAddress>
                      <recipientName xsi:type="soapenc:string">Fred Flintstone</recipientName>
                      <senderAddress xsi:type="ns2:Address">
                  <companyName xsi:type="soapenc:string">Metapack</companyName>
                  <countryCode xsi:type="soapenc:string">GBR</countryCode>
                  <line1 xsi:type="soapenc:string">200 Grays Inn Rd</line1>
                  <line2 xsi:type="soapenc:string">London</line2>
                  <postCode xsi:type="soapenc:string">WC1X 8XZ</postCode>
               </senderAddress>
               <senderCode xsi:type="soapenc:string">READING1</senderCode>
               <senderContactPhone xsi:type="soapenc:string">21323545</senderContactPhone>
               <senderEmail xsi:type="soapenc:string">barney.rubble@metapack.com</senderEmail>
                <senderName xsi:type="soapenc:string">Barney Rubble</senderName>
                <transactionType xsi:type="soapenc:string">Delivery</transactionType>
               </consignment>
         <bookingCode xsi:type="soapenc:string">@48/*/*-*/2020-09-05</bookingCode>
         <calculateTaxAndDuty xsi:type="xsd:boolean">false</calculateTaxAndDuty>
      </ser:findDeliveryOptionsWithBookingCode>
   </soapenv:Body>
</soapenv:Envelope>
Example Response

The response orders the carrier services in order of shippingCost, with the cheapest first:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:findDeliveryOptionsWithBookingCodeResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DeliveryManager/services">
         <findDeliveryOptionsWithBookingCodeReturn soapenc:arrayType="ns2:DeliveryOption[2]" xsi:type="soapenc:Array" xmlns:ns2="urn:DeliveryManager/types" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
            <findDeliveryOptionsWithBookingCodeReturn xsi:type="ns2:DeliveryOption">
               <bookingCode xsi:type="soapenc:string">RMTRACKEDSTDNOSIGRTN/2020-09-04/*-*/*/*-*</bookingCode>
               <carrierCode xsi:type="soapenc:string">ROYALMAILTRKNOOBA</carrierCode>
               <carrierCustom1 xsi:type="soapenc:string" xsi:nil="true"/>
               <carrierCustom2 xsi:type="soapenc:string" xsi:nil="true"/>
               <carrierCustom3 xsi:type="soapenc:string" xsi:nil="true"/>
               <carrierServiceCode xsi:type="soapenc:string">RMTRACKEDSTDNOSIGRTN</carrierServiceCode>
               <carrierServiceTypeCode xsi:type="soapenc:string">UNTIMED</carrierServiceTypeCode>
               <collectionSlots soapenc:arrayType="ns2:DateRange[1]" xsi:type="soapenc:Array">
                  <collectionSlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-04T17:30:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-04T18:30:59.999Z</to>
                  </collectionSlots>
               </collectionSlots>
               <collectionWindow xsi:type="ns2:DateRange">
                  <from xsi:type="xsd:dateTime">2020-09-04T17:30:00.000Z</from>
                  <to xsi:type="xsd:dateTime">2020-09-04T18:30:59.999Z</to>
               </collectionWindow>
               <cutOffDateTime xsi:type="xsd:dateTime">2020-09-04T17:00:00.000Z</cutOffDateTime>
               <deliveryLocation xsi:type="soapenc:string" xsi:nil="true"/>
               <deliverySlots soapenc:arrayType="ns2:DateRange[3]" xsi:type="soapenc:Array">
                  <deliverySlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-05T11:31:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-05T22:00:59.999Z</to>
                  </deliverySlots>
                  <deliverySlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-07T11:31:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-07T22:00:59.999Z</to>
                  </deliverySlots>
                  <deliverySlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-08T11:31:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-08T22:00:59.999Z</to>
                  </deliverySlots>
               </deliverySlots>
               <deliveryWindow xsi:type="ns2:DateRange">
                  <from xsi:type="xsd:dateTime">2020-09-05T11:31:00.000Z</from>
                  <to xsi:type="xsd:dateTime">2020-09-08T22:00:59.999Z</to>
               </deliveryWindow>
               <groupCodes soapenc:arrayType="soapenc:string[3]" xsi:type="soapenc:Array">
                  <groupCodes xsi:type="soapenc:string">48</groupCodes>
                  <groupCodes xsi:type="soapenc:string">RETURNS</groupCodes>
                  <groupCodes xsi:type="soapenc:string">INTERNATIONAL</groupCodes>
               </groupCodes>
               <name xsi:type="soapenc:string">Tracked Returns 48</name>
               <nominatableCollectionSlot xsi:type="xsd:boolean">false</nominatableCollectionSlot>
               <nominatableDeliverySlot xsi:type="xsd:boolean">false</nominatableDeliverySlot>
               <recipientTimeZone xsi:type="soapenc:string">America/Chicago</recipientTimeZone>
               <score xsi:type="xsd:double">1.0</score>
               <senderTimeZone xsi:type="soapenc:string">Europe/London</senderTimeZone>
               <shippingCharge xsi:type="xsd:double">0.0</shippingCharge>
               <shippingCost xsi:type="xsd:double">0.75</shippingCost>
               <taxAndDuty xsi:type="xsd:double">0.0</taxAndDuty>
               <taxAndDutyStatusText xsi:type="soapenc:string" xsi:nil="true"/>
               <vatRate xsi:type="xsd:double">0.0</vatRate>
            </findDeliveryOptionsWithBookingCodeReturn>
            <findDeliveryOptionsWithBookingCodeReturn xsi:type="ns2:DeliveryOption">
               <bookingCode xsi:type="soapenc:string">RMTRACKEDNDNOSIGRTN/2020-09-04/*-*/*/*-*</bookingCode>
               <carrierCode xsi:type="soapenc:string">ROYALMAILTRKNOOBA</carrierCode>
               <carrierCustom1 xsi:type="soapenc:string" xsi:nil="true"/>
               <carrierCustom2 xsi:type="soapenc:string" xsi:nil="true"/>
               <carrierCustom3 xsi:type="soapenc:string" xsi:nil="true"/>
               <carrierServiceCode xsi:type="soapenc:string">RMTRACKEDNDNOSIGRTN</carrierServiceCode>
               <carrierServiceTypeCode xsi:type="soapenc:string">UNTIMED</carrierServiceTypeCode>
               <collectionSlots soapenc:arrayType="ns2:DateRange[1]" xsi:type="soapenc:Array">
                  <collectionSlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-04T17:30:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-04T18:30:59.999Z</to>
                  </collectionSlots>
               </collectionSlots>
               <collectionWindow xsi:type="ns2:DateRange">
                  <from xsi:type="xsd:dateTime">2020-09-04T17:30:00.000Z</from>
                  <to xsi:type="xsd:dateTime">2020-09-04T18:30:59.999Z</to>
               </collectionWindow>
               <cutOffDateTime xsi:type="xsd:dateTime">2020-09-04T17:00:00.000Z</cutOffDateTime>
               <deliveryLocation xsi:type="soapenc:string" xsi:nil="true"/>
               <deliverySlots soapenc:arrayType="ns2:DateRange[3]" xsi:type="soapenc:Array">
                  <deliverySlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-05T11:31:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-05T22:00:59.999Z</to>
                  </deliverySlots>
                  <deliverySlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-07T11:31:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-07T22:00:59.999Z</to>
                  </deliverySlots>
                  <deliverySlots xsi:type="ns2:DateRange">
                     <from xsi:type="xsd:dateTime">2020-09-08T11:31:00.000Z</from>
                     <to xsi:type="xsd:dateTime">2020-09-08T22:00:59.999Z</to>
                  </deliverySlots>
               </deliverySlots>
               <deliveryWindow xsi:type="ns2:DateRange">
                  <from xsi:type="xsd:dateTime">2020-09-05T11:31:00.000Z</from>
                  <to xsi:type="xsd:dateTime">2020-09-08T22:00:59.999Z</to>
               </deliveryWindow>
               <groupCodes soapenc:arrayType="soapenc:string[3]" xsi:type="soapenc:Array">
                  <groupCodes xsi:type="soapenc:string">48</groupCodes>
                  <groupCodes xsi:type="soapenc:string">RETURNS</groupCodes>
                  <groupCodes xsi:type="soapenc:string">INTERNATIONAL</groupCodes>
               </groupCodes>
               <name xsi:type="soapenc:string">Tracked Returns 24</name>
               <nominatableCollectionSlot xsi:type="xsd:boolean">false</nominatableCollectionSlot>
               <nominatableDeliverySlot xsi:type="xsd:boolean">false</nominatableDeliverySlot>
               <recipientTimeZone xsi:type="soapenc:string">America/Chicago</recipientTimeZone>
               <score xsi:type="xsd:double">1.0</score>
               <senderTimeZone xsi:type="soapenc:string">Europe/London</senderTimeZone>
               <shippingCharge xsi:type="xsd:double">0.0</shippingCharge>
               <shippingCost xsi:type="xsd:double">2.0</shippingCost>
               <taxAndDuty xsi:type="xsd:double">0.0</taxAndDuty>
               <taxAndDutyStatusText xsi:type="soapenc:string" xsi:nil="true"/>
               <vatRate xsi:type="xsd:double">0.0</vatRate>
            </findDeliveryOptionsWithBookingCodeReturn>
         </findDeliveryOptionsWithBookingCodeReturn>
      </ns1:findDeliveryOptionsWithBookingCodeResponse>
   </soapenv:Body>
</soapenv:Envelope>

Tip

You can experiment by adjusting the parcel's weight, dimensions and value, and then rerunning the request as required. Provided that the Carrier Allocation Rules have been set up appropriately, different carrier services and costs should be returned when the request is rerun with different parcel values.

Create and Allocate the Consignment

Once you have determined the required delivery option from those returned by findDeliveryOptionsWithBookingCode, copy the same <consignment>.....</consignment> into a new call to despatchConsignmentWithBookingCode, and add any known product details.

Caution

If you add any products that you mark as Dangerous Goods, then the carrier services returned by findDeliveryOptionsWithBookingCode may no longer be valid.

Note

One of the reasons for using the despatchConsignmentWithBookingCode request (as opposed to createAndAllocateConsignmentsWithBookingCode for example), is that you can generate the paperwork within the same call (provided that allocation is successful). You enter the required Printing Properties within the <parameters>.....</parameters> at the end of the call.

When entering the booking code to allocate the consignment, you can simply copy the booking code for the preferred delivery option from the response to findDeliveryOptionsWithBookingCode, e.g.

<bookingCode xsi:type="soapenc:string">RMTRACKEDSTDNOSIGRTN/2020-09-04/*-*/*/*-*</bookingCode> 
Example Request
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="urn:DeliveryManager/services" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:despatchConsignmentWithBookingCode soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
           <consignment xsi:type="typ:Consignment" xmlns:typ="urn:DeliveryManager/types">       
                      <consignmentLevelDetailsFlag xsi:type="xsd:boolean">false</consignmentLevelDetailsFlag>
                      <orderNumber xsi:type="soapenc:string">T4RE349B</orderNumber>
                      <orderValue xsi:type="xsd:double">300</orderValue>
                      <parcelCount xsi:type="xsd:int">1</parcelCount>
                      <parcels soapenc:arrayType="ns2:Parcel[1]" xsi:type="soapenc:Array">
                         <parcels xsi:type="ns2:Parcel">
                            <cartonId xsi:type="soapenc:string">08K02JTY8</cartonId>
                            <code xsi:type="soapenc:string" xsi:nil="true"/>
                            <destinationReference xsi:type="soapenc:string" xsi:nil="true"/>
                           <dutyPaid xsi:type="xsd:double">0.0</dutyPaid>
                            <number xsi:type="xsd:int">1</number>
                            <originReference xsi:type="soapenc:string" xsi:nil="true"/>
                            <outerConsignmentCode xsi:type="soapenc:string" xsi:nil="true"/>
                            <outerParcelNumber xsi:type="xsd:int">0</outerParcelNumber>
                            <parcelDepth xsi:type="xsd:double">1.0</parcelDepth>
                            <parcelHeight xsi:type="xsd:double">2.0</parcelHeight>
                            <parcelValue xsi:type="xsd:double">300</parcelValue>
                            <parcelWeight xsi:type="xsd:double">2.0</parcelWeight>
                            <parcelWidth xsi:type="xsd:double">3.2</parcelWidth>
                           <products soapenc:arrayType="ns2:Product[1]" xsi:type="soapenc:Array">
                               <products xsi:type="ns2:Product">
                                  <countryOfOrigin xsi:type="soapenc:string">GBR</countryOfOrigin>
                                  <fabricContent xsi:type="soapenc:string">1</fabricContent>
                                  <harmonisedProductCode xsi:type="soapenc:string">1</harmonisedProductCode>
                                  <miscellaneousInfo xsi:type="soapenc:Array" xsi:nil="true"/>
                                  <productCode xsi:type="soapenc:string">1</productCode>
                                  <productDescription xsi:type="soapenc:string">1</productDescription>
                                  <productQuantity xsi:type="xsd:long">1</productQuantity>
                                  <productTypeDescription xsi:type="soapenc:string">1</productTypeDescription>
                                  <totalProductValue xsi:type="xsd:double">15</totalProductValue>
                                  <unitProductWeight xsi:type="xsd:double">1.0</unitProductWeight>
                               </products>
                            </products>
                         </parcels>
                      </parcels>
                      <pickTicketNumber xsi:type="soapenc:string" xsi:nil="true"/>
                      <pickupPoint xsi:type="soapenc:string" xsi:nil="true"/>
                      <podRequired xsi:type="soapenc:string">any</podRequired>
                      <properties soapenc:arrayType="ns2:Property[0]" xsi:type="soapenc:Array"/>
                      <recipientAddress xsi:type="ns2:Address">
                         <companyName xsi:type="soapenc:string" xsi:nil="true"/>
                         <countryCode xsi:type="soapenc:string">USA</countryCode>
                         <floor xsi:type="soapenc:string" xsi:nil="true"/>
                         <line1 xsi:type="soapenc:string">500 Yankee Street</line1>
                         <line2 xsi:type="soapenc:string">Apartment 999</line2>
                         <line3 xsi:type="soapenc:string">Houston</line3>
                         <line4 xsi:type="soapenc:string">Texas</line4>
                         <postCode xsi:type="soapenc:string">77002</postCode>
                         <region xsi:type="soapenc:string" xsi:nil="true"/>
                         <streetName xsi:type="soapenc:string" xsi:nil="true"/>
                         <streetNo xsi:type="soapenc:string" xsi:nil="true"/>
                         <streetType xsi:type="soapenc:string" xsi:nil="true"/>
                         <town xsi:type="soapenc:string" xsi:nil="true"/>
                         <type xsi:type="soapenc:string" xsi:nil="true"/>
                      </recipientAddress>
                      <recipientCode xsi:type="soapenc:string" xsi:nil="true"/>
                      <recipientContactPhone xsi:type="soapenc:string">4242258836</recipientContactPhone>
                      <recipientEmail xsi:type="soapenc:string">fred.flintstone@metapack.com</recipientEmail>
                      <recipientMobilePhone xsi:type="soapenc:string">01211554975</recipientMobilePhone>
                      <recipientName xsi:type="soapenc:string">Fred Flintstone</recipientName>
                      <recipientNotificationType xsi:type="soapenc:string">N</recipientNotificationType>
                      <recipientPhone xsi:type="soapenc:string">4242258836</recipientPhone>
                      <recipientTimeZone xsi:type="soapenc:string">Europe/London</recipientTimeZone>
                      <recipientVatNumber xsi:type="soapenc:string">123456789</recipientVatNumber>
                             <senderAddress xsi:type="ns2:Address">
                  <companyName xsi:type="soapenc:string">Metapack</companyName>
                  <countryCode xsi:type="soapenc:string">GBR</countryCode>
                  <line1 xsi:type="soapenc:string">200 Grays Inn Rd</line1>
                  <line2 xsi:type="soapenc:string">London</line2>
                  <postCode xsi:type="soapenc:string">WC1X 8XZ</postCode>
               </senderAddress>
               <senderCode xsi:type="soapenc:string">READING1</senderCode>
               <senderContactPhone xsi:type="soapenc:string">21323545</senderContactPhone>
               <senderEmail xsi:type="soapenc:string">barney.rubble@metapack.com</senderEmail>
                      <senderName xsi:type="soapenc:string">Barney Rubble</senderName>
                      <transactionType xsi:type="soapenc:string">Delivery</transactionType>
               </consignment>
        <bookingCode xsi:type="soapenc:string">RMTRACKEDSTDNOSIGRTN/2020-09-04/*-*/*/*-*</bookingCode>
         <calculateTaxAndDuty xsi:type="xsd:boolean">false</calculateTaxAndDuty>
         <parameters xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/">
            <Property>
               <propertyName>type</propertyName>
               <propertyValue>all</propertyValue>
            </Property>
            <Property>
               <propertyName>format</propertyName>
               <propertyValue>pdf</propertyValue>
            </Property>
            <Property>
               <propertyName>dimension</propertyName>
               <propertyValue>6x4</propertyValue>
            </Property>
         </parameters>
      </ser:despatchConsignmentWithBookingCode>
   </soapenv:Body>
</soapenv:Envelope>
Example Response

For reasons of brevity, we have included only the most relevant parts of the response:

   <soapenv:Body>
      <ns1:despatchConsignmentWithBookingCodeResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DeliveryManager/services">
         <despatchConsignmentWithBookingCodeReturn xsi:type="ns2:DespatchedConsignment" xmlns:ns2="urn:DeliveryManager/types">
            <consignment xsi:type="ns2:Consignment">
               <CODAmount xsi:type="xsd:double">300.0</CODAmount>
               <CODFlag xsi:type="xsd:boolean">false</CODFlag>
                .....
               <carrierCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">ROYALMAILTRKNOOBA</carrierCode>
               <carrierConsignmentCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">9990000012131999</carrierConsignmentCode>
               <carrierName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Royal Mail Tracked non-OBA</carrierName>
               <carrierServiceCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">RMTRACKEDSTDNOSIGRTN</carrierServiceCode>
               <carrierServiceName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Tracked Returns 48</carrierServiceName>
               .....
                <consignmentCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">DMC4BY1V7GC9</consignmentCode>               
                <consignmentLevelDetailsFlag xsi:type="xsd:boolean">false</consignmentLevelDetailsFlag>
               <consignmentValue xsi:type="xsd:double">300.0</consignmentValue>
               <consignmentValueCurrencyCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">GBP</consignmentValueCurrencyCode>
               <consignmentValueCurrencyRate xsi:type="xsd:double">1.0</consignmentValueCurrencyRate>
               <consignmentWeight xsi:type="xsd:double">2.0</consignmentWeight>
              .....
               <customsDocumentationRequired xsi:type="xsd:boolean">true</customsDocumentationRequired>
               <cutOffDate xsi:type="xsd:dateTime">2020-09-04T17:00:00.000Z</cutOffDate>
               <despatchDate xsi:type="xsd:dateTime">2020-09-04T17:30:00.000Z</despatchDate>
               <earliestDeliveryDate xsi:type="xsd:dateTime">2020-09-05T11:31:00.000Z</earliestDeliveryDate>
               <endVatNumber xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">123456789</endVatNumber>
               <fragileGoodsFlag xsi:type="xsd:boolean">false</fragileGoodsFlag>
               <guaranteedDeliveryDate xsi:type="xsd:dateTime">2020-09-08T22:00:59.999Z</guaranteedDeliveryDate>
               .....
               <maxDimension xsi:type="xsd:double">3.2</maxDimension>
               <metaCampaignKey xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <metaCustomerKey xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <moreThanOneMetreGoodsFlag xsi:type="xsd:boolean">false</moreThanOneMetreGoodsFlag>
               <moreThanTwentyFiveKgGoodsFlag xsi:type="xsd:boolean">false</moreThanTwentyFiveKgGoodsFlag>
               <orderDate xsi:type="xsd:dateTime" xsi:nil="true"/>
               <orderNumber xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">T4RE349B</orderNumber>
               <orderValue xsi:type="xsd:double">0.0</orderValue>
               <parcelCount xsi:type="xsd:int">1</parcelCount>
               <parcels soapenc:arrayType="ns2:Parcel[1]" xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
                  <parcels xsi:type="ns2:Parcel">
                     <CODParcelAmount xsi:type="xsd:double">0.0</CODParcelAmount>
                     <cartonId xsi:type="soapenc:string">08K02JTY8</cartonId>
                     <code xsi:type="soapenc:string">9990000012131999</code>
                     <destinationReference xsi:type="soapenc:string" xsi:nil="true"/>
                     <dutyPaid xsi:type="xsd:double">0.0</dutyPaid>
                     <number xsi:type="xsd:int">1</number>
                     <originReference xsi:type="soapenc:string" xsi:nil="true"/>
                     <outerConsignmentCode xsi:type="soapenc:string" xsi:nil="true"/>
                     <outerParcelNumber xsi:type="xsd:int">0</outerParcelNumber>
                     <packageTypeCode xsi:type="soapenc:string" xsi:nil="true"/>
                     <parcelDepth xsi:type="xsd:double">1.0</parcelDepth>
                     <parcelHeight xsi:type="xsd:double">2.0</parcelHeight>
                     <parcelPrintStatus xsi:type="soapenc:string">Printed</parcelPrintStatus>
                     <parcelValue xsi:type="xsd:double">300.0</parcelValue>
                     <parcelWeight xsi:type="xsd:double">2.0</parcelWeight>
                     <parcelWidth xsi:type="xsd:double">3.2</parcelWidth>
                     <products soapenc:arrayType="ns2:Product[1]" xsi:type="soapenc:Array">
                        <products xsi:type="ns2:Product">
                           <countryOfOrigin xsi:type="soapenc:string">GBR</countryOfOrigin>
                           <fabricContent xsi:type="soapenc:string">1</fabricContent>
                           <harmonisedProductCode xsi:type="soapenc:string">1</harmonisedProductCode>
                           <miscellaneousInfo xsi:type="soapenc:Array" xsi:nil="true"/>
                           <productCode xsi:type="soapenc:string">1</productCode>
                           <productDescription xsi:type="soapenc:string">1</productDescription>
                           <productQuantity xsi:type="xsd:long">1</productQuantity>
                           <productTypeDescription xsi:type="soapenc:string">1</productTypeDescription>
                           <totalProductValue xsi:type="xsd:double">15.0</totalProductValue>
                           <unitProductWeight xsi:type="xsd:double">1.0</unitProductWeight>
                        </products>
                     </products>
                     <recipientReference xsi:type="soapenc:string" xsi:nil="true"/>
                     <reference xsi:type="soapenc:string" xsi:nil="true"/>
                     <senderReference xsi:type="soapenc:string" xsi:nil="true"/>
                     <trackingCode xsi:type="soapenc:string">9990000012131999</trackingCode>
                     <trackingUrl xsi:type="soapenc:string" xsi:nil="true"/>
                  </parcels>
               </parcels>
               <pickTicketNumber xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <pickupPoint xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <podRequired xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">any</podRequired>
                   .....
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">allocation.bookingcode</propertyName>
                     <propertyValue xsi:type="soapenc:string">RMTRACKEDSTDNOSIGRTN/*/*-*/2020-09-05</propertyValue>
                  </properties>
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">route.level5</propertyName>
                     <propertyValue xsi:type="soapenc:string"/>
                  </properties>
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">route.level4</propertyName>
                     <propertyValue xsi:type="soapenc:string"/>
                  </properties>
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">route.level3</propertyName>
                     <propertyValue xsi:type="soapenc:string"/>
                  </properties>
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">route.level2</propertyName>
                     <propertyValue xsi:type="soapenc:string">0</propertyValue>
                  </properties>
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">route.level1</propertyName>
                     <propertyValue xsi:type="soapenc:string">0</propertyValue>
                  </properties>
                  .....
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">carrier.field1</propertyName>
                     <propertyValue xsi:type="soapenc:string">222</propertyValue>
                  </properties>
                  <properties xsi:type="ns2:Property">
                     <propertyName xsi:type="soapenc:string">route.version</propertyName>
                     <propertyValue xsi:type="soapenc:string">20200723</propertyValue>
                  </properties>
               </properties>
               <recipientAddress xsi:type="ns2:Address">
                  <companyName xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <countryCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">USA</countryCode>
                  <floor xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <line1 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">500 Yankee Street</line1>
                  <line2 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Apartment 999</line2>
                  <line3 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Houston</line3>
                  <line4 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Texas</line4>
                  <postCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">77002</postCode>
                  <region xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                 .....
                  <type xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Business</type>
               </recipientAddress>
               <recipientCode xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <recipientContactPhone xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">4242258836</recipientContactPhone>
               <recipientEmail xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">fred.flintstone@metapack.com</recipientEmail>
               <recipientFirstName xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <recipientLastName xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <recipientMobilePhone xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">01211554975</recipientMobilePhone>
               <recipientName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Fred Flintstone</recipientName>
               <recipientNotificationType xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">N</recipientNotificationType>
               <recipientPhone xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">4242258836</recipientPhone>
               <recipientTimeZone xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">America/Chicago</recipientTimeZone>
               <recipientTitle xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <recipientVatNumber xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">123456789</recipientVatNumber>
               .....
               <senderAddress xsi:type="ns2:Address">
                  <companyName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Metapack</companyName>
                  <countryCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">GBR</countryCode>
                  <floor xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <line1 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">200 Grays Inn Rd</line1>
                  <line2 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">London</line2>
                  <line3 xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <line4 xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <postCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">WC1X 8XZ</postCode>
                  <region xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <streetName xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <streetNo xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <streetType xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <town xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
                  <type xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Business</type>
               </senderAddress>
               <senderCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">READING1</senderCode>
               <senderContactPhone xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">21323545</senderContactPhone>
               <senderEmail xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">barney.rubble@metapack.com</senderEmail>
               <senderFirstName xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <senderLastName xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <senderMobilePhone xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <senderName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Barney Rubble</senderName>
               <senderNotificationType xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">N</senderNotificationType>
               <senderPhone xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <senderTimeZone xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Europe/London</senderTimeZone>
               <senderTitle xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <senderVatNumber xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <shipmentTypeCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">MERCHANDISE</shipmentTypeCode>
               <shippingAccount xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <shippingCharge xsi:type="xsd:double">0.0</shippingCharge>
               <shippingChargeCurrencyCode xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <shippingChargeCurrencyRate xsi:type="xsd:double">0.0</shippingChargeCurrencyRate>
               <shippingCost xsi:type="xsd:double">0.75</shippingCost>
               <shippingCostCurrencyCode xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <shippingCostCurrencyRate xsi:type="xsd:double">0.0</shippingCostCurrencyRate>
               <signatoryOnCustoms xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <specialInstructions1 xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <specialInstructions2 xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <startVatNumber xsi:type="soapenc:string" xsi:nil="true" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
               <status xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Allocated</status>
              .....
               <termsOfTradeCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">DAP</termsOfTradeCode>
               <transactionType xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Delivery</transactionType>
               <twoManLiftFlag xsi:type="xsd:boolean">false</twoManLiftFlag>
            </consignment>
            <paperwork xsi:type="ns2:Paperwork">
               <documents xsi:type="soapenc:base64Binary" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">JVBERi0xL6Wvv5wk6lPE.....3NDQ4CiUlRU9GCg==</documents>
               <labels xsi:type="soapenc:base64Binary" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">JVBERi0xLjQKJeLjz9Mo.....CjgyNDU3CiUlRU9GCg==</labels>
            </paperwork>
         </despatchConsignmentWithBookingCodeReturn>
      </ns1:despatchConsignmentWithBookingCodeResponse>
   </soapenv:Body>
</soapenv:Envelope>

Generate the Paperwork

The encoded string from which the customs documentation can be generated is enclosed within the <documents>.....</documents> tag in the paperwork that is returned at the bottom of the previous call.

If the consignment is going via a postal carrier and has a value of 270 GBP or more, as is the case here, then an encoded CN23 will be returned in the documents string.  

The encoded string from which the label can be generated is enclosed within the <labels>.....</labels> tag in the paperwork that is returned at the bottom of the previous call.

Note

Both strings have been truncated for aesthetic reasons.

Refer to Printing Properties for more information on the documentation that is generated.

Generate the documentation from an encoded string as follows:

  1. Copy and paste the string it into a text file, and save it.

  2. Load the file into a Base64 decoder (e.g. https://www.base64decode.org/).

  3. Download the decoded document(s).

Note

You can use createPaperworkForConsignments or createPaperworkForParcel to generate further copies of the paperwork. So, for example, you might create the parcel label in zpl format and then create duplicates in PDF format.

Verify the Status of the Consignment

You can use the carrierConsignmentCode that was generated by your call to despatchConsignmentWithBookingCode, to confirm that the consignment is indeed ready to manifest.

The carrier consignment code is found near the top of the returned allocation response:

 <carrierConsignmentCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">9990000012131999</carrierConsignmentCode>

To make the verification, call findConsignmentsByCarrierConsignmentCode, and enter the following request:

Example Request
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="urn:DeliveryManager/services">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:findConsignmentsByCarrierConsignmentCode soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <carrierConsignmentCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">9990000012131999</carrierConsignmentCode>
      </ser:findConsignmentsByCarrierConsignmentCode>
   </soapenv:Body>
</soapenv:Envelope>

In the response, look for the status:

<status xsi:type="soapenc:string">Ready to manifest</status>

Manifest the Consignment

As the status is Ready to manifest, and we know the carrierCode and warehouse (sender), we can open a call to createManifest, as follows:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="urn:DeliveryManager/services">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:createManifest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <carrierCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">ROYALMAILTRKNOOBA</carrierCode>
         <warehouseCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">READING1</warehouseCode>
         <transactionType xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">DELIVERY</transactionType>
      </ser:createManifest>
   </soapenv:Body>
</soapenv:Envelope>

A manifest is sent to the carrier and a manifest number is returned:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:createManifestResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DeliveryManager/services">
         <createManifestReturn soapenc:arrayType="soapenc:string[1]" xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
            <createManifestReturn xsi:type="soapenc:string">DMM1W2ATM</createManifestReturn>
         </createManifestReturn>
      </ns1:createManifestResponse>
   </soapenv:Body>
</soapenv:Envelope>

Verify what's on the Manifest

Make a call to findConsignmentsOnManifest using the manifest number generated in the previous step:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="urn:DeliveryManager/services">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:findConsignmentsOnManifest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <manifestCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">DMM1W2ATM</manifestCode>
      </ser:findConsignmentsOnManifest>
   </soapenv:Body>
</soapenv:Envelope>

Your consignment should appear on the specified manifest. Look for its consignmentCode (in this case, DMC4BY1V7GC9):

<findConsignmentsOnManifestReturn xsi:type="ns2:Consignment">
            .....
            <carrierCode xsi:type="soapenc:string">ROYALMAILTRKNOOBA</carrierCode>
            <carrierConsignmentCode xsi:type="soapenc:string">9990000012131999</carrierConsignmentCode>
            <carrierName xsi:type="soapenc:string">Royal Mail Tracked non-OBA</carrierName>
            <carrierServiceCode xsi:type="soapenc:string">RMTRACKEDSTDNOSIGRTN</carrierServiceCode>
            <carrierServiceName xsi:type="soapenc:string">Tracked Returns 48</carrierServiceName>
            <carrierServiceVATRate xsi:type="xsd:double">0.0</carrierServiceVATRate>
            <cartonNumber xsi:type="soapenc:string" xsi:nil="true"/>
            <cashOnDeliveryCurrency xsi:type="soapenc:string">GBP</cashOnDeliveryCurrency>
            .....
           <consignmentCode xsi:type="soapenc:string">DMC4BY1V7GC9</consignmentCode>
           <consignmentLevelDetailsFlag xsi:type="xsd:boolean">false</consignmentLevelDetailsFlag>
           <consignmentValue xsi:type="xsd:double">300.0</consignmentValue>
              .....
</findConsignmentsOnManifestReturn>

Generate the Manifest as a PDF

If you wish to generate the manifest in PDF format, then make a call to createManifestAsPdf, and specify the same manifest number:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="urn:DeliveryManager/services">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:createManifestAsPdf soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <manifestCode xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">DMM1W2ATM</manifestCode>
      </ser:createManifestAsPdf>
   </soapenv:Body>
</soapenv:Envelope>

The encoded string from which the PDF can be generated is enclosed within the <createManifestAsPdfReturn>.....</createManifestAsPdfReturn> tag (only an extract is shown here for reasons of brevity):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:createManifestAsPdfResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DeliveryManager/services">
         <createManifestAsPdfReturn xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">JVBERi0xLjQKJee.....Mjg0CiUlRU9GCg==</createManifestAsPdfReturn>
      </ns1:createManifestAsPdfResponse>
   </soapenv:Body>
</soapenv:Envelope>

Generate the PDF as follows:

  1. Copy and paste the string it into a text file, and save it.

  2. Load the file into a Base64 decoder (e.g. https://www.base64decode.org/).

  3. Download the decoded manifest.