Welcome to northamber.com

18 May 2012

Northamber Gateway XML Feed User Guide

What is the Northamber Gateway XML Feed?

Northamber's Gateway allows anyone set up with a Gateway account to submit XML over HTTPS to do the following:

  • submit bulk orders
  • check price & availability
  • check the status of orders
  • get shipping tracking details
  • get invoice details

What is HTTPS?

Hypertext Transfer Protocol over Secure Socket Layer or HTTPS provides authentication and encrypted communication and is widely used on the World Wide Web for security-sensitive communication such as payment transactions and corporate information systems.

How do I set up my XML feed?

In order to use the Gateway service, you first need to set up a Gateway account with Northamber. If you would like to set up an account, click here to contact Technical Support.

Once an account is set up, all data submissions are made to:

https://www.northamber.com/gateway/gateway.aspx

You can use the following submission methods to submit data to Northamber:

How do I place orders through Northamber's Gateway?

You can use an OrderRequest to place orders with Northamber. If successful, an OrderResponse will be returned, indicating that the data has been submitted successfully. Otherwise, you will receive a TransactionError response.

<?xml version="1.0" encoding="utf-8"?>
<OrderRequest version="1.0" xml:lang="en-GB">
	<TransactionHeader username="" password="" />
	<OrderDetails customerPOId="" statusId="" backOrder="" shippingCode="" shipComplete="">
		<BillTo>
			<Address>
				<CustomerName></CustomerName>
				<AddressLine1></AddressLine1>
				<AddressLine2></AddressLine2>
				<AddressLine3></AddressLine3>
				<City></City>
				<County></County>
				<PostCode></PostCode>
				<Country></Country>
				<Email></Email>
			</Address>
		</BillTo>
		<ShipTo>
			<Address>
				<CustomerName></CustomerName>
				<AddressLine1></AddressLine1>
				<AddressLine2></AddressLine2>
				<AddressLine3></AddressLine3>
				<City></City>
				<County></County>
				<PostCode></PostCode>
				<Country></Country>
			</Address>
		</ShipTo>
		<ProductLines>
			<Item lineNumber="" quantity="">
				<SupplierPartID></SupplierPartID>
				<UnitPrice currency="GBP"></UnitPrice>
			</Item>
		</ProductLines>
	</OrderDetails>
</OrderRequest>

The OrderResponse is a simple acknowledgement for receiving of the order message. It does not confirm the placing of the order – it only confirms the receipt of the order and returns a result code back to the purchasing system.

To request more detailed information about a submitted order, you will need to submit an OrderStatusRequest.

OrderRequest Elements & Attributes
ElementAttributeDescription
OrderDetailscustomerPOIdThe Buyer's own unique reference number. This is optional.
OrderDetailsstatusIdA flag to notify if the order is a live or a test order. "L" for live; "T" for test. This is optional. If this is not supplied or an unrecognised value is supplied, then the order is assumed to be a test order.
OrderDetailsbackOrderInstructs the Vendor whether or not to accept orders that contain items that are not currently in stock. Values: "Y" or "N". "N" indicates that the entire order will be rejected if one or more items are not in stock. This is optional. If it is not supplied or an unrecognised value is supplied, then the order will be set to "N" and rejected if one or more items are not in stock.
OrderDetailsshippingCodeThis contains the code for the type of delivery. The code options are listed in the Delivery Codes table below. This is optional. If the code is not supplied or the code is not recognised, then the value will be set to "SND" (Standard Next Day Delivery).
OrderDetailsshipCompleteInstructs the Vendor either to Ship Complete (dispatch the order only when all items have been allocated) or to Part Ship (dispatch each item as soon as it becomes available). Values: "Y" (Ship Complete) or "N" (Part Ship). This is optional. If the value is not suplied or is unrecognised, then the value will be set to "Y" (Ship Complete).
ProductLines/Item/SupplierPartIDNorthamber's part number. Required.
ProductLines/Item/UnitPriceThe price in pounds sterling. It can be submitted as a decimal (<UnitPrice currency="GBP">29.99<UnitPrice>) or in pence (<UnitPrice currency="GBP">2999<UnitPrice>). This is optional. If no price is supplied or the price is not valid, then the standard Northamber trade price will be used when the order is placed.
OrderRequest Delivery Codes
CodeDescriptionDelivery Times
SNDStandard (Next Day)1Next business day
PMDNext Day PM (UK mainland only)2Next business day - before 1:30pm
AMDNext Day AM (UK mainland only)2Next business day - 7:10am to 10:30am
SATSaturday (UK mainland only)3Saturday delivery
  1. Orders should be placed before 5.30pm to guarantee next day delivery. Orders placed after that will be delivered the following business day. Use the Saturday (SAT) option if you want next day delivery on a Friday.
  2. Next Day AM/PM deliveries must be placed before 5pm and cannot be placed on Saturdays or Sundays. Orders placed on a Friday will arrive in the chosen time slot on the following Monday (Tuesday, if Bank Holiday). Use the Saturday (SAT) option if you want next day delivery on a Friday.
  3. Saturday deliveries can only be placed on Fridays before 5pm. Orders must be to the UK mainland only.

How can I check price & availability?

You can use an PNARequest to check the price and availability of a product. If successful, a PNAResponse will be returned. Otherwise, you will receive a TransactionError response.

<?xml version="1.0" encoding="utf-8"?>
<PNARequest version="1.0" xml:lang="en-GB">
	<TransactionHeader username="" password=""/>
	<PNAList>
		<PNAItem supplierPartId="" manufacturerPartNumber="" />
	</PNAList>
</PNARequest>

For each item, you can submit either a Northamber part number (supplierPartId) or a manufacturer part number (manufacturerPartNumber). If both are supplied, then the supplierPartId will be used.

If the part number is not recognised, then no result will be returned for that item.

PNARequest Elements & Attributes
ElementAttributeDescription
PNAItemsupplierPartIdNorthamber's part number. This is optional.
PNAItemmanufacturerPartNumberThe manufacturer's part number. This is optional.

How can I check the status of an order?

You can use an OrderStatusRequest to check the status of orders. If successful, an OrderStatusResponse will be returned. Otherwise, you will receive a TransactionError response.

<?xml version="1.0" encoding="utf-8"?>
<OrderStatusRequest version="1.0" xml:lang="en-GB">
	<TransactionHeader username="" password="" />
	<Orders>
		<Order customerPOId="" supplierOrderId="" />
	</Orders>
</OrderStatusRequest>
OrderStatusRequest Elements & Attributes
ElementAttributeDescription
OrdercustomerPOIdThe Buyer's own unique reference number. This is optional. If both a customerPOId and a supplierOrderId is submitted, then the supplierOrderId will be used to find the order.
OrdersupplierOrderIdNorthamber's order ID. This is optional. If both a customerPOId and a supplierOrderId is submitted, then the supplierOrderId will be used to find the order.

How can I check shipment tracking details?

Once an order has been dispatched, you can use an OrderTrackingRequest to obtain details about the shipping status and delivery of your order.

<?xml version="1.0" encoding="utf-8" ?>
<OrderTrackingRequest version="1.0" xml:lang="en-GB">
	<TransactionHeader username="" password=""/>
	<Invoices>
		<Invoice supplierInvoiceId="" />
	</Invoices>
</OrderTrackingRequest>

N.B. You can only track one order at a time.

OrderTrackingRequest Elements & Attributes
ElementAttributeDescription
InvoicesupplierInvoiceIdNorthamber's invoice ID. This is required.

How can I check invoice details?

You can use an InvoiceRequest to obtain invoice details. If successful, an InvoiceResponse will be returned. Otherwise, you will receive a TransactionError response.

Invoices can be called up in two different ways:

You can use the <Invoices> section to specify each individual invoice by the Northamber Invoice ID (supplierInvoiceId), the Northamber Order ID (supplierOrderId) or your own Customer Reference Number (customerPOId):

<?xml version="1.0" encoding="utf-8" ?>
<InvoiceRequest version="1.0" xml:lang="en-GB">
	<TransactionHeader username="" password="" />
	<Invoices>
		<Invoice customerPOId="" supplierInvoiceId="" supplierOrderId="" />
	</Invoices>
</InvoiceRequest>

Or you can specify an order date range using a <DateRange> section:

<?xml version="1.0" encoding="utf-8" ?>
<InvoiceRequest version="1.0" xml:lang="en-GB">
	<TransactionHeader username="" password="" />
	<DateRange orderDateStart="2008/11/10" orderDateEnd="2008/12/05" />
</InvoiceRequest>

Each <InvoiceRequest> should include either a <DateRange> or an <Invoices> section but not both together. The <DateRange> section will be ignored if you have included an <Invoices> section in the same <InvoiceRequest>.

N.B. You will only get the full invoice information if you use an <Invoices> section and specify an ID for each invoice. If you use a <DateRange> section, then you will only get the following details:

  • Invoice ID
  • Order ID
  • Customer Reference
  • Order Date
  • Delivery Date
  • Invoice Date
  • Paid In Full (Yes/No)
  • Balance

Goods remain strictly the property of Northamber PLC until paid for in full. Strictly subject to our terms & conditions. E&OE.

All InvoiceResponses are copies of invoices.

InvoiceRequest Elements & Attributes
ElementAttributeDescription
InvoicesupplierInvoiceIdNorthamber's invoice ID. This is optional. If this value is submitted, then both supplierOrderId and customerPOId will be ignored.
InvoicesupplierOrderIdNorthamber's order ID. This is optional. If this value is submitted, then customerPOId will be ignored. If a supplierInvoiceId is also submitted, then both supplierOrderId and customerPOId will be ignored. N.B. A single order may get broken down into several invoices, and so a single supplierOrderId may pull up more than one invoice.
InvoicecustomerPOIdThe Buyer's own unique reference number. This is optional. If a supplierInvoiceId and/or a supplierOrderId is also submitted, then customerPOId will be ignored. N.B. A single order may get broken down into several invoices, and so a single customerPOId may pull up more than one invoice.
DateRangeorderDateStartInclusive. Must be in the format YYYY/MM/DD.
DateRangeorderDateEndInclusive. Must be in the format YYYY/MM/DD.

Error Messages Returned by the TransactionError File

TransactionError File Error Messages
Error No Description
100 An unknown error has occurred.
101 This service has been switched off.
102 This a test submission and no data has been submitted to the database.
200 OK.
300 Access to this service is restricted.
301 Not sent via https.
302 The submission method has not been recognised.
303 The UserName and/or Password has not been recognised.
304 You have not been granted permission to use this service.
305 Your account has locked out. This happens when an incorrect UserName and/or Password has been submitted too many times. If you wish to unlock your account, go to the www.northamber.com login page.
306 Your account has been suspended.
307 You cannot choose this delivery option. All special deliveries (i.e. everything except the Standard Next Day delivery (SND)) can be made to the UK mainland only and must be placed before 5pm. Next Day PM (PMD) and Next Day AM (AMD) deliveries cannot be placed on Saturday or Sundays. Saturday (SAT) deliveries can only be placed on Fridays before 5pm. You can still place this order if you choose the Standard Next Day delivery option (SND).
400 One or more submitted values have been rejected.
401 One or more required values have not been submitted.
402 One or more submitted values are invalid.
500 An error occurred whilst submitting your data to the database.
501 An order with the same Customer Reference number already exists on the database. The same order may have been submitted twice for some reason. If you only wanted to place this order once, you can ignore this message as your order will have been placed once and not duplicated. If you still wish to place this order, change the Customer Reference number to a unique number and try placing the order again.
502 None of the items you submitted could be ordered. This is either because they are not currently in stock or because they are no longer on our database.
503 One or more of the items you submitted could NOT be ordered. This is either because they are not currently in stock or because they are no longer on our database. Since you have chosen not to allow backorders, this order has been cancelled.
600 An XML error has occurred.
601 The submitted XML contains errors: the XML is not well-formed.
602 The submitted XML is well-formed but is not recognised as valid.