ONLINE BOOK ORDERING & INFORMATION FOR SCHOOLS

PubEasy School Supplier API Guide (beta)

Scope

This is a beta release of the PubEasy School Supplier API Guide. This guide may be subject to change based on feedback we receive.

This guide is intended for suppliers who are interested in interfacing with the PubEasy School System. A conceptual overview of the system as well as detailed API documentation are contained within this document.

Introduction

The PubEasy School system is a school market e-procurement system for US, Canadian and UK School markets featuring electronic ordering, contract pricing, quotes generation and API interface for ERP systems.

There are several web services that are hosted by PubEasy and may be invoked by the supplier. These web services provide the basic API, Application Programmers Interface, used by the supplier to interact with PubEasy. Additionally, there are several optional web services that if implemented will be hosted by the supplier and invoked by PubEasy. These services provide advanced features to the customers of the PubEasy System.

This document describes the general work flows of how a supplier would use these web services and their interrelationship to each other. It also provides technical details on each specific web service API.

In this document the term customer refers to districts and schools registered within the PubEasy System. Each customer may have several users operating on its behalf. In the future, PubEasy school will allow suppliers to sell to trade customers (book retailers) as well as school customers. For the most part the distinction to the supplier is minimal. Where requirements dictate unique behavior for school vs trade customers the details are spelled out.

Web Services

Overview

PubEasy School Web Services use a RESTful interface to expose key functionality of the system. URIs are meaningful and for the most part static. They are easy to share. Consuming data is simple for any kind of client, including Web browsers, Perl code, Python code, and even Javascript.

Authentication and Security

The PubEasy School Web Services will use HTTP Basic Authentication. The client program must provide valid credentials using Basic Authentication.

All web services must be invoked through a secure channel utilizing SSL. This is necessary since PubEasy School facilitates the passing of credit card information through it's web services and because the header of each web service request will contain the login username and password for a given user.

It is the policy of PubEasy to only store credit card information until an order is processed. PubEasy will store credit card numbers and their security numbers in an encrypted form. Once an order is processed by a supplier, the credit card number will be masked such that only the last 4 digits will continue to be stored, and the credit card expiration date and security number will be deleted.

All data in PubEasy will reside behind a corporate firewall.

Web Service Conventions

The following section will summarize some general conventions that apply to all PubEasy School web services.

RESTful Architecture

REST is a term coined by Roy Fielding in his Ph.D. dissertation to describe an architecture style of networked systems. REST is an acronym standing for Representational State Transfer. Roy Fielding's explanation of the meaning of Representational State Transfer is:

"Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use."

This document will describe PubEasy School's implementation of Representational State Transfer for web services. In the PubEasy school system all resources accessible via HTTP GET are side-effect free. That is, the resource will just return a representation of the resource. Invoking the resource will not result in modifying the resource. To modify any resource in PubEasy School, the HTTP POST method must be invoked.

Naming Conventions

All resource data within PubEasy school will be represented in an XML format. The element names of this xml format do follow some naming conventions. All of the following naming conventions will be illustrated using the following sample XML document returned when invoking the Get Orders web service. Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <order id="1121">
      <rc_order_state_code>ORD</rc_order_state_code>
      <account_sid>555</account_sid>
      <po_number>1204234-A1101</po_number>
      <back_order_ind>Y</back_order_ind>
      <submitted_date>20070610</submitted_date>
      <order_line>
         <isbn>9780123456786</isbn>
         <quantity>1</quantity>
      </order_line>
      <order_line>
         <isbn>9780672325670</isbn>
         <quantity>4</quantity>
      </order_line>
   </order>
</result>

  • Root Element: All XML documents within the PubEasy School System will contain a root element named <result> when receiving data results from the PubEasy System, and <request> when loading data into the PubEasy System. Please refer to the root result element visible in the above example.

  • Reference Codes: PubEasy School will use a defined set of coded values, reference codes, in the XML representation of resources. Any XML element that is prefixed with rc_, such as <rc_order_state_code>ORD</rc_order_state_code> in the above example, is a reference code. The values for each reference code can be found in the Reference Codes Appendix.

  • PubEasy Unique Identifiers: Within PubEasy School, several resources can be identified by a PubEasy unique identifier. This identifier will appear as an element attribute named id, such that that value of the id attribute will uniquely identify the element resource. Please refer to the order element in the above example, <order id="1121">, which identifies that the specific order is uniquely identified with a PubEasy id of 1121.

  • Supplier Unique Identifiers: Within PubEasy School, the supplier has several values that they will load into the PubEasy system that represent unique identifiers in their back office system. Such identifiers will uniquely identify orders, customer account numbers, ship-to locations...etc. Within PubEasy School, all elements that represent a unique supplier identifier value will be suffixed with _sid. In the example above, the supplier unique identifier for a customer's account number is account_sid, represented as <account_sid>555</account_sid>.

  • Flag Indicators: Within PubEasy School, there are several elements that can be thought of as boolean flags. The values for these elements will always be represented with a 'Y' or an 'N', such that 'Y' is the equivalent of true and 'N' is the equivalent of false. All elements in PubEasy School that are flag elements will be suffixed with _ind, such as <back_order_ind>Y</back_order_ind> as seen in the above example.

Data Formats

Within this documentation, the XML representation of all available resources has been defined. This includes the data types for each XML element. The format of each element is listed as an XML Schema (xs) data type defined by the W3C XML Schema Specification. Thus far the following xs data types have been used:

NOTE: Within this document, you may see a data type that looks something like String (50). This means that the defined element is a string with a maximum length of 50 characters.

Error Handling

Since PubEasy School Web Services have been implemented with a RESTful architecture, the status of a request will be returned as an HTTP Status Code in the response header. For example a successful request will return 200. In certain situations the standard HTTP Status Code does not provide enough information as to the cause of an unsuccessful request, just that it failed. In situations where an error occurred, if possible PubEasy School will return human readable information in an attribute of the root element in the XML composite of the response body. This attribute is named error, and can be seen in the following example that illustrates the xml composite that may be returned after unsuccessfully invoking the Get Orders web service. Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters:

HTTP/1.1 401 Unauthorized
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result error="Authorization required" version="1" release="7.08" found="0" returned="0" page="1" pagesize="10">
</result>

Version Support

Versioning is a common problem for systems that offer web services, however PubEasy has implemented a scheme for version support for all it's web services. Each web service URI will contain a version number that will be part of the URI. For example, the following is a sample URI request of the Get Orders web service. Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters:

GET /rest/v1/order HTTP/1.1
Host: www.pubeasyschool.com

The v1 in /rest/v1/order indicates that this is version 1 of this web service. Version information will also be present in the result XML document returned from a web service request. For example, the following is a sample XML document returned when invoking the Get Orders web service. Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <order id="1121">
      <rc_order_state_code>ORD</rc_order_state_code>
      <account_sid>555</account_sid>
      <po_number>1204234-A1101</po_number>
      <back_order_ind>Y</back_order_ind>
      <submitted_date>20070610</submitted_date>
      <quote id="854">
         <uri version="1">https://www.pubeasyschool.com/rest/v1/quote/id/854</uri>
      </qoute>
      <order_line>
         <isbn>9780123456786</isbn>
         <quantity>1</quantity>
      </order_line>
      <order_line>
         <isbn>9780672325670</isbn>
         <quantity>4</quantity>
      </order_line>
   </order>
</result>

Within the root result element, a version attribute is present, version="1", which means that this is version 1 of the requested service. We see an additional attribute, release="7.08", which is a coded date field that indicates the release date of the last modification of this web service version. The date is encoded as Y.MM, so in this example 7.08 translates to August, 2007.

This brings up the most important notion regarding versioning of the PubEasy web services, Backwards Compatibility. From time to time it may be necessary to make slight changes to existing web services such as the addition of a new field or attribute. A change will be considered backwards compatible if:

  • A new element, attribute or composite has been added
  • The original action (behavior) of the service does not change

When a backwards compatible change is made, the version number will remain the same, however, the release will be changed to the coded date of when the change is made. It is important to stress then when processing XML result data from a web service, that any unknown XML data elements, attributes or composites present in the result XML must be ignored.

Any change that does not meet the backwards compatibility guidelines would break compatibility with existing clients, and thus will be offered as new version of that web service. For example, if in the future a non-backwards compatible change needs to be added to the Get Orders web service, it would be offered as the next version of the service. This can be seen in the following sample request where v2, for version 2, has been added to the request URI:

GET /rest/v2/order HTTP/1.1
Host: www.pubeasyschool.com

What's important to note is that if a non-backwards compatible change to a service is ever released, it will not break any of the already existing clients as they will be invoking the previous version of the service which will not have changed.

Finally, several of the result XML documents will return web service request URIs for related resources. This is seen in the previous example where a web service request URI to Get Quotes was returned from the Get Orders service. If at any point in the future a new version of the Get Quotes service is released, the result XML document from the Get Orders service would look similar to this:

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <order id="1121">
      <rc_order_state_code>ORD</rc_order_state_code>
      <account_sid>555</account_sid>
      <po_number>1204234-A1101</po_number>
      <back_order_ind>Y</back_order_ind>
      <submitted_date>20070610</submitted_date>
      <quote id="854">
         <uri version="1">https://www.pubeasyschool.com/rest/v1/quote/id/854</uri>
         <uri version="2">https://www.pubeasyschool.com/rest/v2/quote/id/854</uri>
      </qoute>
      <order_line>
         <isbn>9780123456786</isbn>
         <quantity>1</quantity>
      </order_line>
      <order_line>
         <isbn>9780672325670</isbn>
         <quantity>4</quantity>
      </order_line>
   </order>
</result>

Please note the additional uri element, <uri version="2">https://www.pubeasyschool.com/rest/v2/quote/id/854</uri>, that is now present in the example result XML document above.

Paged Results

Several of the PubEasy web services support the paging of results. When one of these services returns a large result set, it splits up the result into pages, with each page containing a portion of the results. If the result set is large enough to spread over more than one page and the client doesn't specify which page it wants, the service assumes the client wants page 1. Additionally, the client will have the capability to specify the maximum number of results to display per page (pagesize). If the client doesn't specify what pagesize it wants, the default for the particular service will be used.

Supplier Work Flows

The work flows that follow provide the supplier with a conceptual view of the PubEasy web service interface. The work flows should be understood before diving into the details of any specific web service.

Loading Products

All products that a supplier wishes to sell through PubEasy must be loaded into the PubEasy System first. PubEasy will not allow the ordering of products that haven't been loaded. Customers will use the product data that is loaded to perform title research, assemble orders, and assemble request for quotes (RFQ).

The supplier can load products into PubEasy by calling the Load Publishers and Load Products web services. The supplier should invoke these services whenever product information changes or new products are added. The product data to be loaded includes bibliographic information. This bibliographic data can also include price and availability information, however because of the requirement that schools must only see the actual price that they will pay for a product, these prices will never be shown to a school or district customer. The loaded price for a product will only be shown to trade customers.

This does not mean that a non-trade customer can not see prices within PubEasy. An optional service, Get Personal P&A, can be implemented by the supplier that would allow all customers to see the actual price they would pay for a product, and it's current availability. This service would be hosted by the supplier and invoked dynamically by PubEasy.

It might be useful for suppliers to retrieve the publisher and product information that was previously loaded into PubEasy. To do this, the supplier would call the Get Publishers and Get Products web services.

Assigning Account Numbers

PubEasy will identify it's customer to the supplier by using the supplier's unique back office account number. This account number will be passed to the supplier whenever a PubEasy customer executes a request that requires supplier interaction, such as submitting an RFQ, placing an order, querying for the status of an order...etc. The supplier's back office account number is used so the supplier can instantly identify the customer.

This approach does require the supplier to initially match PubEasy customers with their customers. The supplier can assign one and only one unique account number for each customer. A PubEasy customer who knows they have an account number with a given supplier will request that the supplier link their back office account number to their PubEasy account. An email will be sent to the supplier identifying the customer who is requesting their back office account to be linked.

After the supplier has matched the correct account number to the customer, they will call the Load Account Numbers web service to assign the back office account number to the particular customer.

In addition to waiting for an email request, a supplier may choose to get a list of all customers who have not been assigned account numbers by calling the Get Customers web service. If any customers can be matched against the supplier's back office accounts, then the accounts can be associated with the PubEasy customers with the Load Account Numbers web service.

Alternative Shipping Addresses and Methods

A supplier may wish to allow their customers to specify alternative shipping addresses or shipping methods for their orders other then the default associated with a customer's account. If so, the supplier would implement the Get Ship To Locations and/or the Get Ship Methods web services. If these web services are not implemented by the supplier then a customer will not be able to specify where and how their orders are to be shipped through PubEasy, and the default shipping address and/or shipping method associated with the given back office account will be assumed.

Request for Quotes (RFQ's)

Some customers (schools/districts) will require a quote which lists the exact price that will be paid for an order, including tax and shipping, before they place an order. PubEasy supports this with an optional feature, called request for quote (RFQ).

The request for quote feature is a situation where a customer will assemble a list of products that they desire, submit the request to the supplier who will then calculate and adjust cost, shipping, tax (where applicable), and any �free with order� (FWO) items to complete the quote. The completed quote is then returned to the customer for approval, and assuming the quote is approved, submitted as an order.

If supporting quoting, the supplier needs to check for RFQs that have been submitted via PubEasy by calling the Get Quotes web service. This web service should be invoked by the supplier on a periodic basis. At a minimum this should be done once a day. The supplier can also implement the optional RFQ Alert web service. If this is implemented it will be called by PubEasy whenever a new RFQ is submitted, thus alerting the supplier that a call to Get Quotes is needed.

Once the supplier has generated a quote for the given RFQ the quote should be loaded into PubEasy by calling the Load Quote web service. This web service can also be used to load an unsolicited quote (one with no corresponding RFQ submitted via PubEasy) into PubEasy.

Orders

Orders can be submitted by customers by either accepting a quote or by simply placing an order. The supplier needs to check for orders that have been submitted via PubEasy by calling the Get Orders web service. This web service should be invoked by the supplier on a periodic basis. At a minimum this should be done once a day. The supplier can also implement the optional Order Alert web service. If this is implemented it will be called by PubEasy whenever a new order is submitted, thus alerting the supplier that a call to Get Orders is needed.

Once an order is processed the Load Order Results web service should be called by the supplier.

Order Status

An optional service, Get Order Status, can be implemented by the supplier that would allow all customers to see the status of any order, regardless of how the order was placed. This service would be hosted by the supplier and invoked dynamically by PubEasy.

Web Service API

Get Personal P&A

The Personal P&A Web Service is an optional web service that would be implemented and hosted by the Supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Personal P&A web service is intended to show a customer the specific price and availability of a product as it pertains specifically to them. With this service a supplier will be able to show unique prices and availabilities to all customers that they have matched with an account number. Each request of this service, will return the price and availability of a single ISBN. If the supplier does not implement this web service, no prices will be shown to a district or school customer. If the web service is implemented, the only prices available to a district or school customer will be a personal price as returned by this web service.

A supplier will implement this service as a RESTful web service with a GET method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The Specific URI is defined by the supplier and loaded into PubEasy via the Supplier administration page on the PubEasy School website. The URI must contain the following parameters which will be substituted for the unique values before the web service URI is called. Keep in mind that the URI can contain any other parameters, such as those for authentication, but must contain the following parameters as defined below.

Parameter Value Data Type Description Mandatory
[!PA1] Account Number String (40) Customer Back Office Account Number (account_sid) DONE
[!PA2] ISBN String (13) 13-Digit International Standard Book Number DONE
[!PA3] Quantity Integer Quantity of items DONE

Sample URIs:

http://www.supplierdomain.com/personalprice?account=[!PA1]&isbn=[!PA2]&quantity=[!PA3] http://www.supplierdomain.com/pa?user=pubeasy&pwd=pass&acct=[!PA1]&id=[!PA2]&qty=[!PA3]

Response
Each time a request is issued to the Get Personal P&A web service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the response XML will be in the message body
404 Not found, the server has not found any prices matching the Request-URI. No XML data should be returned in the message body
### Any other HTTP 1.1 status code will result in no personal price or availability data being displayed

Message Body

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  my_price   Item Level Element DONE  
    isbn String (13) 13-Digit International Standard Book Number DONE  
    price Decimal Price of the items (total price, if quantity is more than one, then the price should be the total price of all items, and not the price of a single item) DONE  
    rc_currency_code String ISO currency code DONE  
    rc_availability_code String Availability Code of title    
    quantity_available Integer Quantity of products available to order    

Sample

Client Request

GET /personalprice?account=555&isbn=9780123456786&quantity=1 HTTP/1.1
Host: www.supplierdomain.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result>
   <my_price>
      <isbn>9780123456786</isbn>
      <price>25.95</price>
      <rc_currency_code>USD</rc_currency_code>
      <rc_availability_code>IP</rc_availability_code>
      <quantity_available>40</quantity_available>
   </my_price>
</result>

Get Order Status

The Order Status Web Service is an optional web service that would be implemented and hosted by the Supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Order Status web service is intended to show a customer the status of any order at a supplier regardless of how the order was placed. With this service a supplier will be able to show the status, cost, and tracking of each order line within an order. If the supplier does not implement this web service, customers will not be able to use PubEasy to ascertain the status of their orders.

A supplier will implement this service as a RESTful web service with a GET method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The Specific URI is defined by the supplier and loaded into PubEasy via the Supplier administration page on the PubEasy School website. The URI must contain the following parameters which will be substituted for the unique values before the web service URI is called. Keep in mind that the URI can contain any other parameters, such as those for authentication, but must contain the following parameters as defined below.

Parameter Value Data Type Description Mandatory
[!PA1] Account Number String (40) Customer Back Office Account Number (account_sid) DONE
[!PA2] ISBN String (13) 13-Digit International Standard Book Number DONE
[!PA3] Purchase Order Reference Number String (22) PO Number DONE
[!PA4] Order Identifier String (40) Back Office Identifier that uniquely identifies order (order_sid) DONE
[!PA5] Invoice Number String (40) Invoice Number DONE
[!PA6] Ship To Location String (40) Back Office Ship To Code that uniquely identifies ship-to location (ship_to_sid) DONE, if supporting Get Ship To Locations
[!PA7] Order Date Start dateTime Date Range Start Date DONE
[!PA8] Order Date End dateTime Date Range End Date DONE

Sample URIs:

http://www.supplierdomain.com/orderstatus?account=[!PA1]&isbn=[!PA2]&po=[!PA3]&sid=[!PA4]&inv=[!PA5]&sdate=[!PA7]&edate=[!PA8] http://www.supplierdomain.com/os?user=pubeasy&pwd=pass&acct=[!PA1]&isbn=[!PA2]&po=[!PA3]&ordersid=[!PA4]&invnum=[!PA5]&shipto=[!PA6]&startdate=[!PA7]&enddate=[!PA8]

Response
Each time a request is issued to the Get Order Status web service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the response XML will be in the message body
404 Not found, the server has not found any orders matching the Request-URI. No XML data should be returned in the message body
### Any other HTTP 1.1 status code will result in no order status data being displayed

Message Body

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  order_status   Item Level Order Status Element DONE  
    order_sid String (40) Back Office Number uniquely identifying order DONE  
    processed_date dateTime Date that the order was placed (processed)    
    po_number String (22) Purchase Order Reference Number    
    invoice_number String (40) Invoice Number    
    tax Decimal Tax, if any, charged for order    
    shipping_cost Decimal Shipping Cost, if any, charged for order    
    total_cost Decimal Total Cost of Order    
    rc_currency_code String Currency Code of all prices within Order    
    ship_to_sid String (40) Unique code from Supplier, signifying where order is being shipped to    
    ship_to_description String (300) Description of unique code from Supplier, signifying where order is being shipped to    
    ship_method_sid String (40) Unique code from Supplier, signifying how the order is being shipped    
    ship_method_description String (300) Description of unique code from Supplier, signifying how the order is being shipped    
    order_status_line   Item Level Order Status Line Element   DONE
      rc_order_line_status_code String Lookup code for status of order line DONE  
      isbn String (13) ISBN of product ordered DONE  
      quantity Integer Quantity of product ordered (including number of free items that will be supplied)    
      quantity_shipped Integer Quantity of products shipped    
      price Decimal Represents the actual price this customer paid for this product    
      order_status_line_tracking   Item Level Order Status Line Tracking Element   DONE
        shipper_name Sting (50) Name of shipper DONE  
        tracking_number String (30) Tracking Number of package DONE  
        uri anyURI URI Resource link to track package delivery    
        pod_signature String (30) Signature of person who received package delivery    
        pod_date dateTime Date when package was received    

Sample

Client Request

GET /orderstatus?account=555&isbn=&po=&sid=BZ12394&inv=&sdate=&edate= HTTP/1.1
Host: www.supplierdomain.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result>
   <order_status>
      <order_sid>BZ12394</order_sid>
      <processed_date>20070615</processed_date>
      <po_number>JUN12229294</po_number>
      <invoice_number>8554422554</invoice_number>
      <tax>55.96</tax>
      <shipping_cost>100</shipping_cost>
      <total_cost>955.86</total_cost>
      <rc_currency_code>USD</rc_currency_code>
      <ship_to_sid>CX12384841</ship_to_sid>
      <ship_to_description>630 Central Ave 07974</ship_to_description>
      <ship_method_sid>UPS2Day</ship_method_sid>
      <ship_method_description>UPS 2-Day</ship_method_description>
      <order_status_line>
         <rc_order_line_status_code>AC</rc_order_line_status_code>
         <price>199.95</price>
         <isbn>9780123456786</isbn>
         <quantity>10</quantity>
         <processed_date>20070615</processed_date>
         <order_status_line_tracking>
            <shipper_name>United Parcel Service</shipper_name>
            <tracking_number>4840478498458954984</tracking_number>
            <uri>http:://www.shipdomain.com/tracking/4840478498458954984</uri>
            <pod_signature>M. Smith</pod_signature>
            <pod_date>20070619</pod_date>
         </order_status_line_tracking>
      </order_status_line>
      <order_status_line>
         <rc_order_line_status_code>SS</rc_order_line_status_code>
         <price>599.50</price>
         <isbn>9780324641288isbn>
         <quantity>50</quantity>
         <processed_date>20070615</processed_date>
         <order_status_line_tracking>
            <shipper_name>United Parcel Service</shipper_name>
            <tracking_number>4840478498458954984</tracking_number>
            <uri>http:://www.shipdomain.com/tracking/4840478498458954984</uri>
            <pod_signature>M. Smith</pod_signature>
            <pod_date>20070619</pod_date>
         </order_status_line_tracking>
         <order_status_line_tracking>
            <shipper_name>United Parcel Service</shipper_name>
            <tracking_number>55969704050504304</tracking_number>
         </order_status_line_tracking>
      </order_status_line>
   </order_status>
</result>

Get Ship To Locations

The Get Ship To Locations Web Service is an optional web service that would be implemented and hosted by the supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Get Ship To Locations web service is intended to show a customer the specific shipping locations that they are allowed to have orders delivered to. With this service a supplier will be able to show specific shipping locations for all customers that they have matched with an account number. Each request of this service, will return all the shipping locations for a single account (customer). If the supplier does not implement this web service, then the default ship-to location associated with a customer's account number will always be used.

A supplier will implement this service as a REST web service with a GET method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The Specific URI is defined by the supplier and loaded into PubEasy via the Supplier administration page on the PubEasy School website. The URI must contain the following parameters which will be substituted for the unique values before the web service URI is called. Keep in mind that the URI can contain any other parameters, such as those for authentication, but must contain the following parameters as defined below.

Parameter Value Data Type Description Mandatory
[!PA1] Account Number String (40) Customer Back Office Account Number (account_sid) DONE

Sample URIs:

http://www.supplierdomain.com/shipto?account=[!PA1] http://www.supplierdomain.com/shippinglocations?user=pubeasy&pwd=pass&acct=[!PA1]

Response
Each time a request is issued to the Get Ship To Locations web service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the response XML will be in the message body
404 Not found, the server has not found any ship-to locations matching the Request-URI. No XML data should be returned in the message body
### Any other HTTP 1.1 status code will result in no ship-to location data being displayed

Message Body

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  ship_to   Item Level Element DONE DONE
    ship_to_sid String (40) Unique code from Supplier to identify a ship-to location (will be passed in an order) DONE  
    ship_to_description String (300) Address represented by unique code (will be displayed on screen) DONE  

Sample

Client Request

GET /shipto?account=555 HTTP/1.1
Host: www.supplierdomain.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result>
   <ship_to>
      <ship_to_sid>12384543509</ship_to_sid>
      <ship_to_description>630 Central Ave. 07974</ship_to_description>
   </ship_to>
   <ship_to>
      <ship_to_sid>100580324884</ship_to_sid>
      <ship_to_description>123 Fake Street. 07974</ship_to_description>
   </ship_to>
</result> 

Get Ship Methods

The Get Ship Methods Web Service is an optional web service that would be implemented and hosted by the supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Get Ship Methods web service is intended to show a customer the specific shipping methods that they are allowed to use as designated by each supplier. With this service a supplier will be able to show specific shipping methods for all customers that they have matched with an account number. Each request of this service, will return all the shipping methods for a single account (customer). If the supplier does not implement this web service, then the default shipping method associated with a customer's account number will always be used.

A supplier will implement this service as a REST web service with a GET method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The Specific URI is defined by the supplier and loaded into PubEasy via the Supplier administration page on the PubEasy School website. The URI must contain the following parameters which will be substituted for the unique values before the web service URI is called. Keep in mind that the URI can contain any other parameters, such as those for authentication, but must contain the following parameters as defined below.

Parameter Value Data Type Description Mandatory
[!PA1] Account Number String (40) Customer Back Office Account Number (account_sid) DONE

Sample URIs:

http://www.supplierdomain.com/shipping?account=[!PA1] http://www.supplierdomain.com/shipopt?user=pubeasy&pwd=pass&acct=[!PA1]

Response
Each time a request is issued to the Get Ship Methods web service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the response XML will be in the message body
404 Not found, the server has not found any ship methods matching the Request-URI. No XML data should be returned in the message body
### Any other HTTP 1.1 status code will result in no ship method data being displayed

Message Body

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  ship_method   Item Level Element DONE DONE
    ship_method_sid String (40) Unique code from Supplier to identify a shipping method (will be passed in an order) DONE  
    ship_method_description String (300) Description of shipping method represented by unique code (will be displayed on screen) DONE  

Sample

Client Request

GET /shipping?account=555 HTTP/1.1
Host: www.supplierdomain.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result>
   <ship_method>
      <ship_method_sid>UPS2123123</ship_method_sid>
      <ship_method_description>UPS 2-Day</ship_method_description>
   </ship_method>
   <ship_method>
      <ship_method_sid>FED12381238</ship_method_sid>
      <ship_method_description>FEDEX Overnight</ship_method_description>
   </ship_method>
</result> 

RFQ Alert

The RFQ Alert Web Service is an optional web service that would be implemented and hosted by the supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The RFQ(request for quote) Alert web service is intended to alert a supplier that they have received a request for quote from a customer(s). The request for quote itself will not be supplied as part of this service. The RFQ will need to be retrieved by the supplier with the Get Quotes web service. The RFQ Alert service will be invoked every time a request for quote is submitted.

A supplier will implement this service as a REST web service with a GET method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The URI will not contain any PubEasy defined parameters. Keep in mind that the URI can contain any other parameters defined by the supplier, such as those for authentication, but will not contain any PubEasy defined parameters.

Sample URIs:

http://www.supplierdomain.com/rfqalert
http://www.supplierdomain.com/alert1?user=pubeasy&pwd=pass
http://www.supplierdomain.com/generic_alert?type=RFQ

Response
Each time a request is issued to the RFQ Alert web service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format will only contain a single part, the HTTP Header. No data will be returned as part of the HTTP Message Body.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 204 The action was successfully received, understood, accepted, but no content is needed to be returned
### Any other HTTP 1.1 status code will result in no further action being taken

Sample

Client Request

GET /rfqalert HTTP/1.1
Host: www.supplierdomain.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 204 No Content

Order Alert

The Order Alert Web Service is an optional web service that would be implemented and hosted by the supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Order Alert web service is intended to alert a supplier that they have received an order from a customer(s). The order itself will not be supplied as part of this service. The order will need to be retrieved by the supplier with the Get Orders web service. The Order Alert service will be invoked every time an order is submitted.

A supplier will implement this service as a REST web service with a GET method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The URI will not contain any PubEasy defined parameters. Keep in mind that the URI can contain any other parameters defined by the supplier, such as those for authentication, but will not contain any PubEasy defined parameters.

Sample URIs:

http://www.supplierdomain.com/orderalert
http://www.supplierdomain.com/alert2?user=pubeasy&pwd=pass
http://www.supplierdomain.com/generic_alert?type=ORDER

Response
Each time a request is issued to the Order Alert web service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format will only contain a single part, the HTTP Header. No data will be returned as part of the HTTP Message Body.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 204 The action was successfully received, understood, accepted, but no content is needed to be returned
### Any other HTTP 1.1 status code will result in no further action being taken

Sample

Client Request

GET /orderalert HTTP/1.1
Host: www.supplierdomain.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 204 No Content

Get Suppliers

The Get Suppliers Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/supplier/

Description
The Get Suppliers web service is intended to show a supplier user information about their specific PubEasy Supplier Site. This information will include the PubEasy supplier_id value that uniquely identifies their supplier in the PubEasy System, as well as their name, address, and all the features that are enabled.

PubEasy will implement the Get Suppliers service as a RESTful web service with a GET method. A single request of this service can be used to return your supplier information.

Request
To get your supplier site infromation from PubEasy, a supplier user will have to send a GET request to the PubEasy server in a specific format. The URI itself will determine which products are retrieved as follows:

Resource URI Description
/rest/v1/supplier/ Retrieve your supplier information
/rest/v1/supplier/id/[number] Retrieve your supplier information with a PubEasy supplier_id of [number]
/rest/v1/supplier/search? Retrieve your supplier information that matches the search criteria provided:
id:Supplier with a PubEasy supplier_id of [number]
page:Page [number] of result set (default: 1)
pagesize:Maximum [number] of suppliers to display per page (default: 10)
EXAMPLE:
/search?id=[number]

Response
Each time a request is issued to the Get Suppliers web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted. The client should read the message body to retrieve the specific supplier information.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom XML data will be present. The client should examine this data to determine the supplier information. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  found Integer ATTRIBUTE: Number of suppliers matching request query DONE  
  returned Integer ATTRIBUTE: Number of suppliers returned DONE  
  page Integer ATTRIBUTE: Current results page DONE  
  pagesize Integer ATTRIBUTE: Number of suppliers per page DONE  
  supplier   Item Level Element DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Supplier DONE  
    name String (50) Display Name of Supplier DONE  
    rc_supplier_status_code String Status of Supplier (live, test...etc.) DONE  
    san String (8) Standard Address Number    
    ean String (13) European Article Number    
    address String (500) Full Address of the Supplier DONE  
    customer_service_phone String (50) Telephone Number for Customer Service at Supplier    
    customer_service_fax String (50) Fax Number for Customer Service at Supplier    
    customer_service_email String (100) Email Address for Customer Service at Supplier    
    customer_service_uri anyURI URI for Customer Service at Supplier    
    rc_currency_code_default String Lookup Code for default currency of supplier    
    account_request_email String (100) Email address for Link My Account Requests DONE  
    logo_filename String (50) Filename of logo    
    quote_enabled_ind String Feature Enabled (Y or N) DONE  
    order_enabled_ind String Feature Enabled (Y or N) DONE  
    rfq_alert_enabled_ind String Feature Enabled (Y or N) DONE  
    rfq_alert_uri anyURI URI of supplier RFQ alert web service    
    rfq_alert_email String (100) Email address of supplier RFQ notification email    
    order_alert_enabled_ind String Feature Enabled (Y or N) DONE  
    order_alert_uri anyURI URI of supplier order alert web service    
    order_alert_email String (100) Email address of supplier order notification email    
    order_status_enabled_ind String Feature Enabled (Y or N) DONE  
    order_status_uri anyURI URI of supplier order status web service    
    personal_price_enabled_ind String Feature Enabled (Y or N) DONE  
    personal_price_uri anyURI URI of supplier personal price web service    
    ship_to_enabled_ind String Feature Enabled (Y or N) DONE  
    ship_to_uri anyURI URI of supplier ship to location web service    
    ship_method_enabled_ind String Feature Enabled (Y or N) DONE  
    ship_method_uri anyURI URI of supplier shipping methods web service    
    load_publisher_date dateTime Date when supplier last loaded publishers    
    load_product_date dateTime Date when supplier last loaded products    
    get_order_date dateTime Date when supplier last retrieved orders    
    load_order_date dateTime Date when supplier last loaded order results    
    get_rfq_date dateTime Date when supplier last retrieved RFQs (request for quotes)    
    load_quote_date dateTime Date when supplier last loaded quotes    
    load_account_date dateTime Date when supplier last loaded account number(s) for customer(s)    
    credit_card   Item Level Credit Card Composite   DONE
      rc_credit_card_type_code String Code for accepted credit card type DONE  
      description String (50) Description of credit card type (American Express, Visa, MasterCard) DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

GET /rest/v1/supplier/id/501 HTTP/1.1
Host: www.pubeasyschool.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <supplier id="501">
      <name>Bowker Distributors</name>
      <rc_supplier_status_code>L</rc_supplier_status_code>
      <address>630 Central Ave New Providence NJ 07974</address>
      <customer_service_phone>888-BOWKER2</customer_service_phone>
      <customer_service_email>help@bowker.com</customer_service_email>
      <customer_service_uri>http://www.bowker.com</customer_service_uri>
      <rc_currency_code_default>USD</rc_currency_code_default>
      <account_request_email>linkmypubeasypin@bowker.com</account_request_email>
      <logo_filename>bowker_dist.gif</logo_filename>
      <quote_enabled_ind>Y</quote_enabled_ind>
      <order_enabled_ind>Y</order_enabled_ind>
      <rfq_alert_enabled_ind>Y</rfq_alert_enabled_ind>
      <rfq_alert_uri>http://www.bowker.com/rfqalert?count=[!PA1]</rfq_alert_uri>
      <rfq_alert_email>rfqalert@bowker.com</rfq_alert_email>
      <order_alert_enabled_ind>Y</order_alert_enabled_ind>
      <order_alert_uri>http://www.bowker.com/orderalert?count=[!PA1]</order_alert_uri>
      <order_alert_email>orderalert@bowker.com</order_alert_email>
      <order_status_enabled_ind>Y</order_status_enabled_ind>
      <order_status_uri>http://www.bowker.com/os?acc=[!PA1]&isbn=[!PA2]&po=[!PA3]&id=[!PA4]&inv=[!PA5]&sdt=[!PA7]&edt=[!PA8]</order_status_uri>
      <personal_price_enabled_ind>Y</personal_price_enabled_ind>
      <personal_price_uri>http://www.bowker.com/personalprice?account=[!PA1]&isbn=[!PA2]&quantity=[!PA3]</personal_price_uri>
      <ship_to_enabled_ind>Y</ship_to_enabled_ind>
      <ship_to_uri>http://www.bowker.com/shipto?account=[!PA1]</ship_to_uri>
      <ship_method_enabled_ind>Y</ship_method_enabled_ind>
      <ship_method_uri>http://www.bowker.com/shipping?account=[!PA1]</ship_method_uri>
      <load_publisher_date>20070629</load_publisher_date>
      <load_product_date>20070629</load_product_date>
      <get_order_date>20070629</get_order_date>
      <load_order_date>20070629</load_order_date>
      <get_rfq_date>20070629</get_rfq_date>
      <load_quote_date>20070629</load_quote_date>
      <load_account_date>20070629</load_account_date>
      <credit_card>
         <rc_credit_card_type_code>AMEX</rc_credit_card_type_code>
         <description>American Express</description>
      </credit_card>
      <credit_card>
         <rc_credit_card_type_code>VISA</rc_credit_card_type_code>
         <description>Visa</description>
      </credit_card>
      <credit_card>
         <rc_credit_card_type_code>MC</rc_credit_card_type_code>
         <description>MasterCard</description>
      </credit_card>
   </supplier>
</result>

Load Publishers

The Load Publishers Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/publisher

Description
The Load Publishers web service will be used by suppliers to load the required publisher/imprint information into PubEasy. Before any product information can be loaded into PubEasy via the Load Products web service, it's corresponding publisher/imprint must be loaded first. PubEasy will implement this service as a RESTful web service with a POST method. A single request can be used to load one or more publishers at a time.

Request
To load publisher data into PubEasy a supplier will have to send a POST request to the PubEasy server in a specific format. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format representing the publisher data to be loaded.

Header

The request header must contain the following value for content-type.

Parameter Value Description
content-type text/xml Data will be posted to server as XML text

Message Body

The request message body will be made up of the following custom xml format.

Parameter Data Type Description Mandatory Repeatable
request   Root Request Element DONE  
  publisher   Item Level Publisher Element DONE DONE
    action String ATTRIBUTE: Load Action:
insert - Current publisher will completely overwrite existing publisher if it exists (default)
update - current publisher will update existing publisher, or insert if it does not exist
delete - current publisher will be deleted
   
    publisher_sid String (40) Unique code for this imprint/publisher (supplier defined) DONE  
    name String (50) Name of the publisher/imprint DONE  

Response
Each time a request is issued to the Load Publishers web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, but the client should read the message body to reveal the status of each publisher that was attempted to be loaded
400 Bad Request, the data passed in this request was incorrectly formatted such that it caused the entire request to fail.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the status of each publisher load, as well as to ascertain the new product resource URIs, if desirable. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  submitted Integer ATTRIBUTE: Number of publishers submitted in request DONE  
  loaded Integer ATTRIBUTE: Number of publishers successfully loaded DONE  
  publisher   Item Level Publisher Element   DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Publisher    
    publisher_sid String (40) Unique code for this imprint/publisher (supplier defined) DONE  
    status String Status of Load (S-Success, F-Failure) DONE  
    status_description String (300) Description of Status of Load (reasons for failure)    
    uri anyURI URI of newly created/updated product resource (if successful) using the Get Products web service   DONE
      version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

POST /rest/v1/publisher HTTP/1.1
Host: www.pubeasyschool.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<request>
   <publisher action="insert">
      <publisher_sid>PE</publisher_sid>
      <name>PubEasy Publishing</name>
   </publisher>
   <publisher action="update">
      <publisher_sid>Bowker</publisher_sid>
      <name>Bowker Publishing</name>
   </publisher>
</request>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" submitted="2" loaded="2">
   <publisher id="1222">
      <publisher_sid>PE</publisher_sid>
      <status>S</status>
      <uri version="1">https://www.pubeasyschool.com/rest/v1/publisher/id/1222</uri>
   </publisher>
   <publisher id="1223">   
      <publisher_sid>BOWK</publisher_sid>
      <status>S</status>
      <uri version="1">https://www.pubeasyschool.com/rest/v1/publisher/id/1223</uri>
   </publisher>
</result>

Get Publishers

The Get Publishers Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/publisher/

Description
The Get Publishers web service will be used by suppliers to request their publisher/imprint information that are currently loaded into PubEasy. PubEasy will implement this service as a RESTful web service with a GET method. A single request can be used to retrieve publisher information for a single publsiher, or several publishers that all match the specified query in the request.

Request
To get publishers data from PubEasy, a supplier user will have to send a GET request to the PubEasy server in a specific format. The URI itself will determine which products are retrieved as follows:

Resource URI Description
/rest/v1/publisher/ Retrieve all of your publishers
/rest/v1/publisher/id/[number] Retrieve your publisher with a PubEasy publisher_id of [number]
/rest/v1/publisher/sid/[text] Retrieve your publishers with a supplier back office publisher_sid of [text]
/rest/v1/publisher/supplier/id/[number] Retrieve your publishers with the PubEasy supplier_id of [number]
/rest/v1/publisher/search? Retrieve your publishers that match the search criteria provided:
id:Your publisher with a PubEasy publisher_id of [number]
sid:Your publisher(s) with the supplier back office publisher_sid of [text]
supplier_id:Your publisher(s) with the PubEasy supplier_id of [number]
page:Page [number] of result set (default: 1)
pagesize:Maximum [number] of publishers to display per page (default: 10)
EXAMPLE:
/search?id=[number]
/search?sid=[text]
/search?supplier_id=[number]

Response
Each time a request is issued to the Get Publishers web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted. The client should read the message body to retrieve the specific Publisher information.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the Publisher information. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  found Integer ATTRIBUTE: Number of publishers matching request query DONE  
  returned Integer ATTRIBUTE: Number of publishers returned DONE  
  page Integer ATTRIBUTE: Current results page DONE  
  pagesize Integer ATTRIBUTE: Number of publishers per page DONE  
  publisher   Item Level Publisher Element   DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Product DONE  
    publisher_sid String (40) Unique code for this imprint/publisher (supplier defined) DONE  
    name String (50) Name of the publisher/imprint DONE  
    supplier   Item Level Supplier Element DONE  
      id Integer ATTRIBUTE: PubEasy Unique Identifier of Supplier DONE  
      description String (300) Name of Supplier DONE  
      uri anyURI URI link to supplier information using the Get Suppliers web service DONE DONE
        version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

GET /rest/v1/publisher/id/1222 HTTP/1.1
Host: www.pubeasyschool.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="1">
   <publisher id="1222">
      <publisher_sid>PE</publisher_sid>
      <name>PubEasy Publishing</name>
      <supplier id="501">
         <description>Bowker Distributors</description>
         <uri version="1">https://www.pubeasyschool.com/rest/v1/supplier/id/501</uri>
      </supplier>
   </publisher>
</result>

Load Products

The Load Products Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/product

Description
The Load Products web service will be used by suppliers to load the required product information into PubEasy. Any product that a supplier wishes to sell through PubEasy must be loaded into PubEasy first. Before a product can be loaded it's Publisher/Imprint needs to have been loaded previously with the Load Publishers web service. PubEasy will implement this service as a RESTful web service with a POST method. A single request can be used to load one or more products at a time.

Request
To load product data into PubEasy a supplier will have to send a POST request to the PubEasy server in a specific format. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format representing the product data to be loaded.

Header

The request header must contain the following value for content-type.

Parameter Value Description
content-type text/xml Data will be posted to server as XML text

Message Body

The request message body will be made up of the following custom xml format.

Parameter Data Type Description Mandatory Repeatable
request   Root Request Element DONE  
  product   Item Level Product Element DONE DONE
    action String ATTRIBUTE: Load Action:
insert - Current product will completely overwrite existing product if it exists (default)
update - current product will update existing product, or insert if it does not exist
delete - current product will be deleted
   
    isbn String (13) International Standard Book Number DONE  
    publisher_sid String (40) Unique code for this imprint/publisher (supplier defined). Publisher represented by sid here must have already been loaded previously, otherwise this product will fail to load DONE
(for insert)
 
    rc_availability_code String Lookup of the availability of this product DONE
(for insert)
 
    rc_medium_code String Lookup of Product Medium Details DONE
(for insert)
 
    title String (300) Product description (short title)    
    sub_title String (300) Extra Product description    
    author String (200) Product Author    
    next_isbn String (13) Alternative Product ISBN - If the current product is no longer available this would be populated with an alternative ISBN that is now available    
    publication_date dateTime Publication Date Of Product    
    order_allowed_ind String Flag To Allow Ordering of this Product (Y or N)    
    edition Integer (4) Edition number, numeric only    
    quantity_available Integer Number of product items available to order    
    description String (1000) Free text description of product (beyond title). The following HTML tags are allowed:
p b i u hr br a ul li
All other tags will be removed.
   
    actual_marketing_site_uri anyURI The complete URI of an external marketing site    
    rc_age_code_lower Integer Lookup for age level, lower limit    
    rc_age_code_upper Integer Lookup for age level, upper limit    
    rc_grade_code_lower Integer Lookup for grade level, lower limit    
    rc_grade_code_upper Integer Lookup for grade level, upper limit    
    item_number_sid String(40) Supplier Item Number    
    pages Integer Total number of pages    
    price   Item Level Price Element   DONE
      price_amount Decimal Price of Product for the given rc_price_tpy in the given rc_currency_code DONE  
      rc_price_type_code String Lookup for the type of price DONE  
      rc_currency_code String Lookup code for the currency of the supplied price DONE  
    subject   Item Level Subject Element   DONE
      rc_bisac_subject_code String BISAC Subject Code DONE  

Response
Each time a request is issued to the Load Products web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, but the client should read the message body to reveal the status of each product that was attempted to be loaded
400 Bad Request, the data passed in this request was incorrectly formatted such that it caused the entire request to fail.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the status of each product load, as well as to ascertain the new product resource URIs, if desirable. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  submitted Integer ATTRIBUTE: Number of products submitted in request DONE  
  loaded Integer ATTRIBUTE: Number of products successfully loaded DONE  
  product   Item Level Product Element   DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Product DONE  
    isbn String (13) International Standard Book Number DONE  
    status String Status of Load (S-Success, F-Failure) DONE  
    status_description String (300) Description of Status of Load (reasons for failure)    
    uri anyURI URI of newly created/updated product resource (if successful) using the Get Products web service   DONE
      version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

POST /rest/v1/product HTTP/1.1
Host: www.pubeasyschool.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<request>
   <product action="insert">
      <isbn>9780123456786</isbn>
      <publisher_sid>PE</publisher_sid>
      <rc_availability_code>IP</rc_availability_code>
      <availability_date>20070101</availability_date>
      <rc_medium_code>BA</rc_medium_code>
      <title>Hard Times</title>
      <author>Charles Dickens</author>
      <publication_date>18540101</publication_date>
      <order_allowed_ind>Y</order_allowed_ind>
      <edition>1</edition>
      <quantity_available>350</quantity_available>
      <actual_marketing_site_uri>http://www.pubeasy.com/isbn/9780123456786</actual_marketing_site_uri>
      <rc_age_code_lower>8</rc_age_code_lower>
      <rc_age_code_upper>12</rc_age_code_upper>
      <rc_grade_code_lower>4</rc_grade_code_lower>
      <rc_grade_code_upper>5</rc_grade_code_upper>
      <item_number_sid>Vend-1010</item_number_sid>
      <pages>320</pages>
      <price>
         <price_amount>4.95</price_amount>
         <rc_price_type_code>SLP</rc_price_type_code>
         <rc_currency_code>USD</rc_currency_code>
      </price>
      <price>
         <price_amount>3.95</price_amount>
         <rc_price_type_code>NET</rc_price_type_code>
         <rc_currency_code>USD</rc_currency_code>
      </price>
      <subject>
         <rc_bisac_subject_code>FIC000000</rc_bisac_subject_code>
      </subject>
      <subject>
         <rc_bisac_subject_code>FIC002000</rc_bisac_subject_code>
      </subject>
   </product>
</request>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" submitted="1" loaded="1">
   <product id="1239394">   
      <isbn>9780123456786</isbn>
      <status>S</status>
      <uri version="1">https://www.pubeasyschool.com/rest/v1/product/id/1239394</uri>
   </product>
</result>

Get Products

The Get Products Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/product/

Description
The Get Products web service will be used by suppliers to request their product information that is currently loaded into PubEasy. PubEasy will implement this service as a RESTful web service with a GET method. A single request can be used to retrieve product information for a single product, or several products that all match the specified query in the request.

Request
To get product data from PubEasy, a supplier user will have to send a GET request to the PubEasy server in a specific format. The URI itself will determine which products are retrieved as follows:

Resource URI Description
/rest/v1/product/ Retrieve all of your products
/rest/v1/product/id/[number] Retrieve your products with a PubEasy product_id of [number]
/rest/v1/product/supplier/[text] Retrieve your products with the specified keyword(s) of [text] in the supplier name
/rest/v1/product/supplier/id/[number] Retrieve your products with a PubEasy supplier_id of [number]
/rest/v1/product/publisher/[text] Retrieve your products with the specified keyword(s) of [text] in the publisher name
/rest/v1/product/publisher/id/[number] Retrieve your products with a PubEasy publisher_id of [number]
/rest/v1/product/publisher/sid/[text] Retrieve your products with a supplier back office publisher_sid of [text]
/rest/v1/product/isbn/[text] Retrieve your products with an ISBN (10 or 13) of [text]
/rest/v1/product/title/[text] Retrieve your products with the specified keyword(s) of [text] in the title or subtitle
/rest/v1/product/author/[text] Retrieve your products with a specified author of [text]
/rest/v1/product/search? Retrieve all of your products that match the search criteria provided:
id:Your product with a PubEasy product_id of [number]
supplier:Your products with the specified keyword(s) of [text] in the supplier name
supplier_id:Your products with a PubEasy supplier_id of [number]
publisher:Your products with the specified keyword(s) of [text] in the publisher name
publisher_id:Your products with a PubEasy publisher_id of [number]
publisher_sid:Your Products with a supplier back office publisher_sid of [text]
isbn:Your products with an ISBN (10 or 13) of [text]
title:Your products with the specified keyword(s) of [text] in the title or subtitle
author:Your products with with a specified author of [text]
page:Page [number] of result set (default: 1)
pagesize:Maximum [number] of products to display per page (default: 10)
EXAMPLE:
/search?isbn=[text]
/search?title=Hard+Times&author=Dickens

Response
Each time a request is issued to the Get Products web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted. The client should read the message body to retrieve the specific Product information.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the Product information. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  found Integer ATTRIBUTE: Number of products matching request query DONE  
  returned Integer ATTRIBUTE: Number of products returned DONE  
  page Integer ATTRIBUTE: Current results page DONE  
  pagesize Integer ATTRIBUTE: Number of products per page DONE  
  product   Item Level Product Element DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Product DONE  
    isbn String (13) International Standard Book Number DONE  
    rc_availability_code String Lookup of the availability of this product DONE  
    rc_medium_code String Lookup of Product Medium Details DONE  
    title String (300) Product description (short title)    
    sub_title String (300) Extra Product description    
    author String (200) Product Author    
    next_isbn String (13) Alternative Product ISBN - If the current product is no longer available this would be populated with an alternative ISBN that is now available    
    publication_date dateTime Publication Date Of Product    
    order_allowed_ind String Flag allowing product to be ordered (Y or N) DONE  
    edition Integer (4) Edition number, numeric only    
    quantity_available Integer Number of product items available to order    
    description String (1000) Free text description of product (beyond title)    
    actual_marketing_site_uri anyURI The complete URI of an external marketing site    
    rc_age_code_lower Integer Lookup for age level, lower limit    
    rc_age_code_upper Integer Lookup for age level, upper limit    
    rc_grade_code_lower Integer Lookup for grade level, lower limit    
    rc_grade_code_upper Integer Lookup for grade level, upper limit    
    item_number_sid String(40) Supplier Item Number    
    pages Integer Total number of pages    
    supplier   Item Level Supplier Element DONE  
      id Integer ATTRIBUTE: PubEasy Unique Identifier of Supplier DONE  
      name String (300) Name of Supplier DONE  
      uri anyURI URI link to supplier information using the Get Suppliers web service DONE DONE
        version Integer ATTRIBUTE: Version number of service URI DONE  
    publisher   Item Level Publisher Element DONE  
      id Integer ATTRIBUTE: PubEasy Unique Identifier of Publisher/Imprint DONE  
      name String (300) Name of Publisher/Imprint DONE  
      uri anyURI URI link to Publisher/Imprint information using the Get Publishers web service DONE DONE
        version Integer ATTRIBUTE: Version number of service URI DONE  
    price   Item Level Price Element   DONE
      price_amount Decimal Price of Product DONE  
      rc_price_type_code String Lookup for the type of price DONE  
      rc_currency_code String Lookup code for the currency of the supplied price DONE  
    subject   Item Level Price Element   DONE
      rc_bisac_subject_code String BISAC Subject Code DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

GET /rest/v1/product/isbn/9780123456786 HTTP/1.1
Host: www.pubeasyschool.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <product id="1239394">
      <isbn>9780123456786</isbn>
      <publisher_sid>PE</publisher_sid>
      <rc_availability_code>IP</rc_availability_code>
      <availability_date>20070101</availability_date>
      <rc_medium_code>BA</rc_medium_code>
      <title>Hard Times</title>
      <author>Charles Dickens</author>
      <publication_date>18540101</publication_date>
      <order_allowed_ind>Y</order_allowed_ind>
      <edition>1</edition>
      <quantity_available>350</quantity_available>
      <actual_marketing_site_uri>http://www.pubeasy.com/isbn/9780123456786</actual_marketing_site_uri>
      <rc_age_code_lower>8</rc_age_code_lower>
      <rc_age_code_upper>12</rc_age_code_upper>
      <rc_grade_code_lower>4</rc_grade_code_lower>
      <rc_grade_code_upper>5</rc_grade_code_upper>
      <item_number_sid>Vend-1010</item_number_sid>
      <pages>320</pages>
      <price>
         <price_amount>4.95</price_amount>
         <rc_price_type_code>SLP</rc_price_type_code>
         <rc_currency_code>USD</rc_currency_code>
      </price>
      <price>
         <price_amount>3.95</price_amount>
         <rc_price_type_code>NET</rc_price_type_code>
         <rc_currency_code>USD</rc_currency_code>
      </price>
      <supplier id="501">
         <name>Bowker Distributors</name>
         <uri version="1">https://www.pubeasyschool.com/rest/v1/supplier/id/501</uri>
      </supplier>
      <publisher id="1222">
         <name>PubEasy Publishing</name>
         <uri verison="1">https://www.pubeasyschool.com/rest/v1/publisher/id/1222</uri>
      </publisher>
      <subject>
         <rc_bisac_subject_code>FIC000000</rc_bisac_subject_code>
      </subject>
      <subject>
         <rc_bisac_subject_code>FIC002000</rc_bisac_subject_code>
      </subject>
   </product>
</result>

Get Customers

The Get Customers Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/customer/

Description
The Get Customers web service will be used by suppliers during their customer matching process. This service can be used to retrieve specific information about PubEasy customers, such as their name and address, that can be used to match against a supplier's specific customer data. Once a match is found, the Load Account Numbers web service can be called to load the supplier's back office account number into PubEasy, which will uniquely identify a PubEasy customer with a supplier so the customer can place orders, get personal pricing, check order status, send request for quotes...etc with that supplier.

PubEasy will implement this service as a RESTful web service with a GET method. A single request can be used to retrieve customer information for a single PubEasy customer, or several PubEasy customers that all match the specified query in the request.

Request
To get customer data from PubEasy, a supplier user will have to send a GET request to the PubEasy server in a specific format. The URI itself will determine which products are retrieved as follows:

Resource URI Description
/rest/v1/customer/ Retrieve all customers
/rest/v1/customer/id/[number] Retrieve the customer with a PubEasy customer_id of [number]
/rest/v1/customer/account/sid/[text] Retrieve the customer with a supplier account_sid of [text]
/rest/v1/customer/search? Retrieve all customers that match the search criteria provided:
id:Customer with a PubEasy customer_id of [number]
account_sid:Customer with a supplier account_sid of [text]
page:Page [number] of result set (default: 1)
pagesize:Maximum [number] of customers to display per page (default: 10)
EXAMPLE:
/search?id=[number]
/search?account_sid=[text]

Response
Each time a request is issued to the Get Customer web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted. The client should read the message body to retrieve the specific customer information.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the Publisher information. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  found Integer ATTRIBUTE: Number of customers matching request query DONE  
  returned Integer ATTRIBUTE: Number of customers returned DONE  
  page Integer ATTRIBUTE: Current results page DONE  
  pagesize Integer ATTRIBUTE: Number of customers per page DONE  
  customer   Item Level Customer Element   DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Customer DONE  
    name String (50) Name of Customer DONE  
    address1 String (250) Street address line 1 DONE  
    address2 String (250) Street address line 2    
    address3 String (250) Street address line 3    
    city String (100) Name of City DONE  
    state String (100) Name of State/Province    
    zip String (25) Zip Code    
    rc_country_code String Lookup of Country Code DONE  
    phone String (20) Phone Number    
    fax String (20) Fax Number    
    san String (8) Standard Address Number    
    duns String (13) Duns + 4 Number    
    mdr String (50) MDR Number    
    qed String (50) QED Number    
    signup_date dateTime dateTime when customer signed up for PubEasy School    
    account   Item Level Account Element DONE  
      account_sid String (40) Back Office Supplier Account Number    
      supplier   Item Level Supplier Element DONE  
        id Integer ATTRIBUTE: PubEasy Unique Identifier of Supplier DONE  
        name String (300) Name of Supplier DONE  
        uri anyURI URI link to supplier information using the Get Suppliers web service DONE DONE
          version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

GET /rest/v1/customer/account/sid/555 HTTP/1.1
Host: www.pubeasyschool.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <customer id="3394">
      <name>Bowker High School</name>
      <address1>630 Central Ave.</address1>
      <city>New Providence</city>
      <state>NJ</state>
      <zip>07974</zip>
      <rc_country_code>USA</rc_country_code>
      <signup_date>20080428T12:01:23-0500</signup_date>
      <account>
         <account_sid>555</account_sid>
         <supplier id="501">
            <name>Bowker Distributors</name>
            <uri version="1">https://www.pubeasyschool.com/rest/v1/supplier/id/501</uri>
         </supplier>
      </account>
   </customer>
</result>

Load Account Numbers

The Load Account Number Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/customer/
https://www.pubeasyschool.com/rest/v1/customer/id/[number]

Description
The Load Account Number web service will be used by suppliers to load the unique back office account number for a given customer into PubEasy.

PubEasy will implement this service as a RESTful web service with a POST method. A single request can be used to load an account number for a single customer or several customers.

Request
To load account numbers into PubEasy a supplier will have to send a POST request to the PubEasy server in a specific format. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format representing the account data to be loaded.

Header

The request header must contain the following value for content-type.

Parameter Value Description
content-type text/xml Data will be posted to server as XML text

Message Body

The request message body will be made up of the following custom xml format.

Parameter Data Type Description Mandatory Repeatable
request   Root Request Element DONE  
  customer   Item Level Publisher Element DONE DONE
    action String ATTRIBUTE: Load Action:
insert - Current account_sid will completely overwrite existing account_sid (default)
delete - Previously loaded account_sid will be deleted
   
    id Integer ATTRIBUTE: PubEasy Unique Identifier of PubEasy Customer DONE
(if not provided in URI)
 
    account_sid String (40) Supplier Back Office Account Number associated with this PubEasy Customer DONE
(if load action is not 'delete')
 

Response
Each time a request is issued to the Load Account Number web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the account number was loaded successfully
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the status of each account number load. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  submitted Integer ATTRIBUTE: Number of customer accounts submitted in request DONE  
  loaded Integer ATTRIBUTE: Number of customer accounts successfully loaded DONE  
  customer   Item Level Publisher Element   DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of PubEasy Customer DONE  
    status String Status of Load (S-Success, F-Failure) DONE  
    status_description String (300) Description of Status of Load (reasons for failure)    
    uri anyURI URI of customer resource using the Get Customers web service   DONE
      version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

POST /rest/v1/customer/id/19349 HTTP/1.1
Host: www.pubeasyschool.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<request>
   <customer>
      <account_sid>ACD7475920345858340</account_sid>
   </customer>
</request>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" submitted="1" loaded="1">
   <customer id="19349">
      <status>S</status>
      <uri version="1">https://www.pubeasyschool.com/rest/v1/customer/id/19349</uri>
   </customer>
</result>

Get Quotes

The Get Quotes Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/quote/

Description
The Get Quotes web service will be used by suppliers to download all request for quotes (RFQs) submitted by PubEasy users and all quotes submitted by them for PubEasy users. After an RFQ is downloaded it is the responsibility of the supplier to process that request and provide a response in the form of a quote. A response to an RFQ will be provided with the Load Quote web service.

PubEasy will implement this service as a RESTful web service with a GET method. A single request can be used to retrieve one or more quotes.

Request
To get quotes from PubEasy, a supplier will have to send a GET request to the PubEasy server in a specific format. The URI itself will determine which RFQs are retrieved as follows:

Resource URI Description
/rest/v1/quote/ Retrieve all of your RFQs/Quotes
/rest/v1/quote/id/[number] Retrieve your RFQ/quote with a PubEasy quote_id of [number]
/rest/v1/quote/sid/[text] Retrieve your quote with a supplier back office quote_sid of [text]
/rest/v1/quote/name/[text] Retrieve your RFQ/quote with a name of [text]
/rest/v1/quote/supplier/id/[number] Retrieve your RFQs/quotes with a PubEasy supplier_id of [number]
/rest/v1/quote/state/[code] Retrieve your RFQs/quotes with a current state (rc_quote_state) of [code]
/rest/v1/quote/search? Retrieve all of your RFQs/quotes that match the search criteria provided:
id:Your RFQ/quote with a PubEasy quote_id of [number]
sid:Your quote with a supplier back office quote_sid of [text]
name:Your RFQ/quote with a name of [text]
supplier_id:Your RFQs/quotes with a PubEasy supplier_id of [number]
state:Your RFQs/Quotes with a current state (rc_quote_state) of [code]
page:Page [number] of result set (default: 1)
pagesize:Maximum [number] of quotes to display per page (default: 10)
EXAMPLE:
/search?state=[code]

Response
Each time a request is issued to the Get Quotes web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted. The client should read the message body to retrieve the specific RFQ/Quote information.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the information in the Quote. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  found Integer ATTRIBUTE: Number of quotes matching request query DONE  
  returned Integer ATTRIBUTE: Number of quotes returned DONE  
  page Integer ATTRIBUTE: Current results page DONE  
  pagesize Integer ATTRIBUTE: Number of quotes per page DONE  
  quote   Item Level Quote Element DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Quote DONE  
    name String (50) User Generated Name of Quote    
    account_sid String (40) Back office account number of customer who requested this quote DONE  
    submitted_date dateTime Date the quote/rfq was submitted DONE  
    rc_quote_state_code String Lookup specifying current state of quote DONE  
    quote_state_date dateTime Date the quote was last modified DONE  
    quote_expiration_date dateTime Date that a quote will expire at the supplier. PubEasy will not enforce this date    
    tax Decimal Tax, if any, charged for order DONE  
    shipping_cost Decimal Shipping Cost, if any, charged for order DONE  
    total_cost Decimal Total Cost of Quote DONE  
    rc_currency_code String Currency Code of all prices in Quote DONE  
    ship_to_sid String (40) Unique code supplied by supplier representing a ship to location that they understand    
    ship_to_description String (300) Description of unique code ship_to_sid. Most likely will be the textual address, or could possibly contain a school name    
    ship_method_sid String (40) Unique code supplied by supplier representing a shipping method that they understand    
    ship_method_description String (300) Description of unique code ship_method_sid    
    special_instructions String (2000) User supplied special instructions (free text field)    
    order   Item Level Order Element, if quote was accepted and placed as an order   DONE
      id Integer ATTRIBUTE: PubEasy Unique Identifier of Order DONE  
      uri anyURI URI of order resource (if order was placed from this quote) using the Get My Orders web service DONE DONE
        version Integer ATTRIBUTE: Version number of service URI DONE  
    quote_line   Item Level Quote Line Element DONE DONE
      isbn String (13) 13 Digit International Standard Book Number DONE  
      quantity Integer Quantity of products in quote line    
      quantity_free_requested Integer Quantity of free products customer is requesting    
      quantity_free Integer Quantity of free products customer will actually receive    
      price Decimal Actual Price of Quote Line    
      substitute_isbn String (13) Populated if supplier is substituting an ISBN for the original product which is no longer available    

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

GET /rest/v1/quote/id/5544 HTTP/1.1
Host: www.pubeasyschool.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="1" returned="1" page="1" pagesize="10">
   <quote id="5544">
      <name>myquouote_12345</name>
      <account_sid>555</account_sid>
      <quote_sid>AQJDTH4854034</quote_sid>
      <submitted_date>20070621</submitted_date>
      <rc_quote_state_code>RFQ</rc_quote_state_code>
      <quote_state_date>20070621</quote_state_date>
      <quote_line>
         <isbn>9780123456786</isbn>
         <quantity>10</quantity>
      </quote_line>
      <quote_line>
         <isbn>9789876543217</isbn>
         <quantity>50</quantity>
         <quantity_free_requested>5</quantity_free_requested>
      </quote_line>
   </quote>
</result>

Load Quote

The Load Quote Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/quote/
https://www.pubeasyschool.com/rest/v1/quote/id/[number]

Description
The Load Quote web services will be used by suppliers to send quotes for orders to specific customers. These quotes can be solicited by a customer who sent a request for quote(RFQ) to the supplier through PubEasy, or they can be unsolicited. PubEasy will implement this service as a RESTful web service with a POST method. A single request can be used to load a single quote or multiple quotes.

The Load Quote web service can be called two ways; to respond to an existing request for quote and to create a new quote when a request was not sent though PubEasy. The general and specific rules of each method are discussed below.

General Rules for RFQ and New Quotes

  • Supplier must provide the total cost and currency code of a quote

Request For Quote Response

  • Supplier must provide quote_id of RFQ
  • Supplier must respond to each quote line of RFQ, represented by it's ISBN
  • Supplier can not change the quantity of a quote line of RFQ
  • Supplier can supply a substitute_isbn for any quote line of RFQ
  • Supplier must provide actual price for each quote line of RFQ
  • Supplier can state how many free items a customer will receive by providing a value for quantity_free
  • Supplier can not add any new quote lines to a quote unless they represent free items (quantity_free)
  • Supplier can not change the ship-to or shipping methods of RFQ

New Quote (unsolicited)

  • Supplier must not provide a quote_id, as there was no RFQ
  • Supplier must provide the back office account number of the customer who the quote is intended for
  • Supplier must provide the ISBN, quantity, and actual price OR ISBN and quantity_free for each quote line

Request
To load quotes into PubEasy a supplier will have to send a POST request to the PubEasy server in a specific format. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format representing the quote data to be loaded.

Header

The request header must contain the following value for content-type.

Parameter Value Description
content-type text/xml Data will be posted to server as XML text

Message Body

The request message body will be made up of the following custom xml format.

Parameter Data Type Description RFQ Mandatory New Quote Mandatory Repeatable
Existing Line New Line
request   Root Request Element DONE DONE DONE  
  quote   Item Level Quote Element DONE DONE DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Quote DONE
(if not provided in URI)
DONE
(if not provided in URI)
choice-cancel  
    quote_sid String (40) Back Office String/Number uniquely identifying quote        
    rc_quote_state_code String Lookup specifying state of quote to be loaded DONE DONE DONE  
    account_sid String (40) Back office account number of customer who requested or will receive this quote     DONE  
    quote_expiration_date dateTime Supplier assigned expiration date of quote        
    shipping_cost Decimal Total Cost of Shipping        
    tax Decimal Total Cost of Tax      
    total_cost Decimal Total Cost of Quote DONE DONE DONE  
    rc_currency_code String Currency Code of all prices within Quote DONE DONE DONE  
    quote_line   Item Level Quote Line Element DONE DONE DONE DONE
      isbn String (13) 13 Digit International Standard Book Number. For existing RFQ it's inclusion is optional, but if given must match the ISBN from the request DONE DONE DONE  
      quantity Integer Quantity of products in quote line. For existing RFQ it's inclusion is optional, but if given must match the quantity from RFQ        
      quantity_free Integer Quantity of free products customer will receive        
      price Decimal Actual Price of Quote Line DONE DONE DONE  
      substitute_isbn String (13) Use if supplier is substituting an ISBN for the original product which is no longer available   choice-cancel choice-cancel  

Response
Each time a request is issued to the Load Quote web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the quote was successfully loaded into PubEasy
400 Bad Request, the quote failed to be loaded into PubEasy. The client should read the message body to reveal the status of why the quote failed to be loaded
### Any other HTTP 1.1 status code means the request failed

Message Body

The message body will contain the following custom xml data. Whenever a status code of 400 is returned the client should examine this data to determine the cause of the load quote failure. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  submitted Integer ATTRIBUTE: Number of quotes submitted in request DONE  
  loaded Integer ATTRIBUTE: Number of quotes successfully loaded DONE  
  quote   Item Level Quote Element   DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of quote    
    status String Status of Load (S-Success, F-Failure) DONE  
    status_description String (300) Description of Status of Load (reasons for failure)    
    uri anyURI URI of newly created/updated quote resource (if successful) using the Get Quotes web service   DONE
      version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

POST /rest/v1/quote/id/5544 HTTP/1.1
Host: www.pubeasyschool.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<request>
   <quote>
      <quote_sid>AQJDTH4854034</quote_sid>
      <rc_quote_state_code>QTD</rc_quote_state_code>
      <quote_expiration_date>20080601</quote_expiration_date>
      <shipping_cost>35.00</shipping_cost>
      <tax>28.83</tax>
      <total_cost>475.78</total_cost>
      <rc_currency_code>USD</rc_currency_code>
      <quote_line>
         <isbn>9780123456786</isbn>
         <price>75.78</price>
      </quote_line>
      <quote_line>
         <isbn>9789876543217</isbn>
         <price>400.00</price>
         <substitute_isbn>9789876543218</substitute_isbn> 
         <quantity_free>4</quantity_free>
      </quote_line>
      <quote_line>
         <isbn>9785554443212</isbn>
         <quantity_free>3</quantity_free>
      </quote_line>
   </quote>
</request>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" submitted="1" loaded="1">
   <quote id="5544">
      <status>S</status>
      <uri version="1">https://www.pubeasyschool.com/rest/v1/quote/id/5544</uri>
   </quoute>
</result>

Get Orders

The Get Orders Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/order

Description
The Get Orders web service will be used by suppliers to download all orders submitted to them by PubEasy users. After an order is downloaded it is the responsibility of the supplier to process that order and provide an order results response. A response to an order will be provided with the Load Order Results web service.

PubEasy will implement the Get Orders service as a RESTful web service with a GET method. A single request can be used to retrieve one or more orders.

Request
To get orders from PubEasy, a supplier will have to send a GET request to the PubEasy server in a specific format. The URI itself will determine which RFQs are retrieved as follows:

Resource URI Description
/rest/v1/order Retrieve all of your orders
/rest/v1/order/id/[number] Retrieve your order with a PubEasy order_id of [number]
/rest/v1/order/po/[text] Retrieve your order(s) with a purchase order number of [text]
/rest/v1/order/sid/[text] Retrieve your order with a back office supplied order_sid of [text]
/rest/v1/order/supplier/id/[number] Retrieve your orders with a PubEasy supplier_id of [number]
/rest/v1/order/state/[code] Retrieve your orders with a current state (rc_order_state) of [code]
/rest/v1/order/search? Retrieve all of your orders that match the search criteria provided:
id:Your order with a PubEasy order_id of [number]
po:Your order(s) that contain a purchase order number of [text]
sid:Your order with a supplier back office order_sid of [text]
supplier_id:Your orders with a PubEasy supplier_id of [number]
state:Your orders with a current state (rc_order_state) of [code]
page:Page [number] of result set (default: 1)
pagesize:Maximum [number] of orders to display per page (default: 10)
EXAMPLE:
/search?id=[number]
/search?sid=[number]
/search?state=[code]

Response
Each time a request is issued to the Get Orders web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted. The client should read the message body to retrieve the specific order information.
### Any other HTTP 1.1 status code means the request failed

Message Body

When a status code of 200 is returned, the following custom xml data will be present. The client should examine this data to determine the information in the order. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  found Integer ATTRIBUTE: Number of orders matching request query DONE  
  returned Integer ATTRIBUTE: Number of orders returned DONE  
  page Integer ATTRIBUTE: Current results page DONE  
  pagesize Integer ATTRIBUTE: Number of orders per page DONE  
  order   Item Level Order Element DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of Order DONE  
    rc_order_state_code String Lookup value of current order state DONE  
    account_sid String (40) Back office account number of customer who placed order DONE  
    special_instructions String (2000) Customer specific instruction related to this order (free text)    
    back_order_ind String Customer back order preference (Y or N)    
    part_supply_ind String Customer part supply preference (Y or N)    
    po_number String (22) Purchase Order Reference Number DONE  
    order_sid String (40) Unique back office identifier of Order    
    invoice_number String (40) Invoice number of Order    
    credit_card_number String (16) Credit Card Number    
    credit_card_holder String (50) Name of Credit Card Holder    
    rc_credit_card_type_code String Lookup of credit card type    
    credit_card_exp_date dateTime Expiration Date of credit card    
    credit_card_security_number String (4) Security Code of credit card    
    tax Decimal Tax, if any, charged for order    
    shipping_cost Decimal Shipping Cost, if any, charged for order    
    total_cost Decimal Total Cost of Order    
    rc_currency_code String Currency Code of all prices within Order    
    promotional_code String (50) Promotional or discount code for entire order    
    ship_to_sid String (40) Unique code supplied by supplier representing a ship to location that they understand    
    ship_to_description String (300) Description of unique code ship_to_sid    
    ship_method_sid String (40) Unique code supplied by supplier representing a shipping method that they understand    
    ship_method_description String (300) Description of unique code ship_method_sid    
    contact_email String (100) Contact e-mail address    
    contact_phone String (20) Contact phone number    
    submitted_date dateTime Date an order was submitted by a user DONE  
    processed_date dateTime Date an order was processed by the supplier    
    quote   Item Level Quote Element, if order was placed from a quote    
      id Integer ATTRIBUTE: PubEasy Unique Identifier of Quote DONE  
      uri anyURI URI of quote resource (if order was placed from a quote) using the Get Quotes web service DONE DONE
        version Integer ATTRIBUTE: Version number of service URI DONE  
    order_line   Item Level Order Line Element DONE DONE
      isbn String (13) 13 Digit International Standard Book Number DONE  
      quantity Integer Quantity of products in order line    
      quantity_free_requested Integer Quantity of additional products in order line customer has requested to be free    
      quantity_free Integer Quantity of free products in order line customer will receive    
      quantity_shipped Integer Quantity of products in order line supplier has accepted and will be shipped    
      substitute_isbn String (13) Populated if supplier is substituting an ISBN for the original product which is no longer available    
      price Decimal Actual price charged for this product    

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

GET /rest/v1/order HTTP/1.1
Host: www.pubeasyschool.com

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" found="2" returned="2" page="1" pagesize="1">
   <order id="1121">
      <rc_order_state_code>ORD</rc_order_state_code>
      <account_sid>555</account_sid>
      <po_number>1204234-A1101</po_number>
      <submitted_date>20070610</submitted_date>
      <order_line>
         <isbn>9780123456786</isbn>
         <quantity>1</quantity>
      </order_line>
      <order_line>
         <isbn>9780672325670</isbn>
         <quantity>4</quantity>
      </order_line>
   </order>
   <order id="1122">
      <rc_order_state_code>ORD</rc_order_state_code>
      <account_sid>867490</account_sid>
      <po_number>Z129HJKL</po_number>
      <submitted_date>20070610</submitted_date>
      <back_order_ind>Y</back_order_ind>
      <part_supply_ind>Y</part_supply_ind>
      <credit_card_number>5105105105105100</credit_card_number>
      <credit_card_holder>John Doe</credit_card_holder>
      <rc_credit_card_type_code>MC</rc_credit_card_type_code>
      <credit_card_exp_date>20080801</credit_card_exp_date>
      <credit_card_security_number>123</credit_card_security_number>
      <promotional_code>100free</promotional_code>
      <ship_to_sid>3839210AXXZ</ship_to_sid>
      <ship_to_description>630 Central Ave. 07974</ship_to_description>
      <ship_method_sid>UPS2DAY</ship_method_sid>
      <ship_method_description>UPS Two Day</ship_method_description>
      <special_instructions>Don't forget my free item</special_instructions>
      <order_line>
         <isbn>9781893115514</isbn>
         <quantity>100</quantity>
      </order_line>
      <order_line>
         <isbn>9781590593912</isbn>
         <quantity>10</quantity>
         <quantity_free_requested>1</quantity_free_requested>
      </order_line>
   </order>
</result>

Load Order Results

The Load Order Results Web Service will be hosted by PubEasy and consumed by the supplier.

Service Host: PubEasy Service Client: Supplier URI https://www.pubeasyschool.com/rest/v1/order/
https://www.pubeasyschool.com/rest/v1/order/id/[number]

Description
The Load Order Results web service will be used by suppliers to load the required order status information into PubEasy. After an order has been processed by a supplier, the next step will be to load the results of that order back into PubEasy. PubEasy will implement this service as a RESTful web service with a POST method. A single request can be used to load the results of a single order or multiple orders.

NOTE: The only order results data that PubEasy requires a supplier to load is if an order was processed. This is done by setting the rc_order_state_code to the proper value (ACC - accepted, REJ - rejected). All the other details that can be loaded with this service pertain to order status. This information should be provided if the supplier is not implementing the Get Order Status web service. Recall that the Get Order Status web service will allow your customers to get the status of their orders. If the supplier does not implement this service, PubEasy will return order status information to the customer that is loaded here. If the supplier does implement the Get Order Status web service, then order status information loaded here will be ignored, as that information will be retrieved directly from the supplier.

Request
To load order results data into PubEasy a supplier will have to send a POST request to the PubEasy server in a specific format. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format representing the product data to be loaded.

Header

The request header must contain the following value for content-type.

Parameter Value Description
content-type text/xml Data will be posted to server as XML text

Message Body

The request message body will be made up of the following custom xml format.

Parameter Data Type Description Mandatory Repeatable
Existing Line New Line
request   Root Request Element DONE DONE  
  order   Item Level Order Element DONE DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of order DONE
(if not provided in URI)
DONE
(if not provided in URI)
 
    order_sid String (40) Unique back office identifier of Order, provided by by supplier      
    rc_order_state_code String Lookup value of current state of an order DONE DONE  
    tax Decimal Tax, if any, charged for order      
    shipping_cost Decimal Shipping Cost, if any, charged for order      
    total_cost Decimal Total Cost of Order      
    rc_currency_code String Currency code of all prices within Order      
    invoice_number String(40) invoice number      
  order_line   Item Level Order Line Element     DONE
    isbn String (13) 13 Digit International Standard Book Number DONE DONE  
    rc_order_line_status_code String Lookup value of the status of an order line      
    substitute_isbn String (13) Populated if supplier is substituting an ISBN for the original product which is no longer available   choice-cancel  
    price Decimal Actual price charged for this product      
    quantity Integer Quantity of products in order line. For an existing order_line it's inclusion is optional, but if given must match the quantity   choice-cancel  
    quantity_free Integer Quantity of free products in order line customer will receive   DONE  
    quantity_shipped Integer Quantity of products in order line supplier has accepted and will be shipped      

Response
Each time a request is issued to the Load Order Results web service, a response will be returned. This section describes the format of the data that will be returned with each request as well as it's meaning. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized xml format.

Header

The response header will contain the following values for content-type and status code. Keep in mind that the status codes returned from this request can be any valid http status code, however, the ones listed have a very specific meaning that all client implementers should be aware of.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the order result was successfully loaded into PubEasy
400 Bad Request, the quote failed to be loaded into PubEasy. The client should read the message body to reveal the status of why the order result failed to be loaded
### Any other HTTP 1.1 status code means the request failed

Message Body

The message body will contain the following custom xml data. Whenever a status code of 400 is returned the client should examine this data to determine the cause of the load order result failure. Any parameters that appear in red below are attributes of their parent parameter.

Parameter Data Type Description Mandatory Repeatable
result   Root Result Element DONE  
  version Integer ATTRIBUTE: Version number DONE  
  release Decimal ATTRIBUTE: Coded release date DONE  
  warning String (250) ATTRIBUTE: Human readable warning message    
  error String (250) ATTRIBUTE: Human readable error message detailing reason for request failure    
  submitted Integer ATTRIBUTE: Number of order results submitted in request DONE  
  loaded Integer ATTRIBUTE: Number of order results successfully loaded DONE  
  order   Item Level Publisher Element DONE DONE
    id Integer ATTRIBUTE: PubEasy Unique Identifier of order    
    status String Status of Load (S-Success, F-Failure) DONE  
    status_description String (300) Description of Status of Load (reasons for failure)    
    uri anyURI URI of newly created/updated order resource (if successful) using the Get Orders web service   DONE
      version Integer ATTRIBUTE: Version number of service URI DONE  

Sample

Client Request

Please note, the following is only a subset of an actual HTTP request. The header has been condensed to illustrate the vital parameters.

POST /rest/v1/order/id/1122 HTTP/1.1
Host: www.pubeasyschool.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<request>
   <order>
      <order_sid>ABC858585</order_sid>
      <rc_order_state_code>ACC</rc_order_state_code>
      <tax>1.74</tax>
      <shipping_cost>3.50</shipping_cost>
      <total_cost>30.14<total_cost>
      <rc_currency_code>USD</rc_currency_code>
      <order_line>
         <isbn>9781893115514</isbn>
         <quantity>2</quantity>
         <price>4.95</price>
         <rc_order_line_status_code>AC</rc_order_line_status_code>
         <quantity_shipped>2</quantity_shipped>
      </order_line>
      <order_line>
         <isbn>9781590593912</isbn>
         <quantity>5</quantity>
         <quantity_free>1</quantity_free>
         <price>19.95</price>
         <rc_order_line_status_code>IP</rc_order_line_status_code>
         <substitute_isbn>9780123456786</substitute_isbn>
         <quantity_shipped>6</quantity_shipped>
      </order_line>
   </order>
</request>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result version="1" release="7.08" submitted="1" loaded="1">
   <order id="1122">
      <status>S</status>
      <uri version="1">https://www.pubeasyschool.com/rest/v1/order/id/1122</uri>
   </order>
</result>

Validate Credit Card

The Validate Credit Card Web Service is an optional web service that would be implemented and hosted by the Supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Validate Credit Card Web Service is intended to validate the credit card information using the supplier's payment system. With this service a supplier will be able to tell the PubEasy whether the credit card information provided by the user is valid. If the supplier does not implement this web service, customers will not be able to use PubEasy to buy products using the credit card.

A supplier will implement this service as a RESTful web service with a POST method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The Specific URI is defined by the supplier and loaded into PubEasy via the Supplier administration page on the PubEasy School website. The URI must contain the following parameters which will be substituted for the unique values before the web service URI is called. Keep in mind that the URI can contain any other parameters, such as those for authentication, but must contain the following parameters as defined below.

Parameter Value Data Type Description Mandatory
[!PA1] Account Number String (40) Customer Back Office Account Number (account_sid) DONE

Sample URIs:

http://www.supplierdomain.com/validate_credit_card?account=[!PA1]
http://www.supplierdomain.com/validation?user=pubeasy&pwd=pass&acct=[!PA1]

Header

The request header must contain the following values for content-type.

Parameter Value Description
content-type text/xml Data being returned will be XML text

Message Body

Parameter Data Type Description Mandatory Repeatable
credit_card   Root Element DONE  
  credit_card_holder String Credit card holder name DONE  
  credit_card_number Number Credit card number DONE  
  credit_card_exp_month Number Credit card expiration month DONE  
  credit_card_exp_year Number Credit card expiration year DONE  
  credit_card_security_number Number Credit card security number DONE  
  rc_credit_card_type_code String Credit card type (Visa, MC, etc.) DONE  

Response
Each time a request is issued to the Validate Credit Card Web Service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized XML format.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the response XML will be in the message body

Message Body

Parameter Data Type Description Mandatory Repeatable
result   Root Element DONE  
  validation   Result Element DONE  
    code Number HTTP result code DONE  
    message String Message text DONE  
    transaction_id String Transaction ID    

Sample

Client Request

POST /validate_credit_card?account=555 HTTP/1.1
Host: www.supplierdomain.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<credit_card>
  <credit_card_holder>John Smith</credit_card_holder>
  <credit_card_number>1234567890123456</credit_card_number>
  <credit_card_exp_month>12</credit_card_exp_month>
  <credit_card_exp_year>2020</credit_card_exp_year>
  <credit_card_security_number>123</credit_card_security_number>
  <rc_credit_card_type_code>Visa</rc_credit_card_type_code>
</credit_card>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<result>
  <validation>
    <code>200</code>
    <message>OK</message>
    <transaction_id>1234567890</transaction_id>
  </validation>
</result>

Get Actual Price

The Get Actual Price Web Service is an optional web service that would be implemented and hosted by the Supplier.

Service Host: Supplier Service Client: PubEasy Implementation: Optional

Description
The Get Actual Price Web Service is intended to show a customer the actual price of products in the shopping cart. With this service a supplier will be able to update the shopping cart with actual price of the products including discounts. If the supplier does not implement this web service, customers will not be able to use PubEasy to ascertain the actual price of products in the shopping cart.

A supplier will implement this service as a RESTful web service with a POST method. The URI will be determined by the supplier and will be saved within PubEasy on the supplier administration page. It is the supplier's responsibility to implement this service exactly as it is defined.

Request
The Specific URI is defined by the supplier and loaded into PubEasy via the Supplier administration page on the PubEasy School website. The URI must contain the following parameters which will be substituted for the unique values before the web service URI is called. Keep in mind that the URI can contain any other parameters, such as those for authentication, but must contain the following parameters as defined below.

Parameter Value Data Type Description Mandatory
[!PA1] Account Number String (40) Customer Back Office Account Number (account_sid) DONE

Sample URIs:

http://www.supplierdomain.com/get_actual_price?account=[!PA1]
http://www.supplierdomain.com/pricing?user=pubeasy&pwd=pass&acct=[!PA1]

Header

The request header must contain the following values for content-type.

Parameter Value Description
content-type text/xml Data being returned will be XML text

Message Body

Parameter Data Type Description Mandatory Repeatable
cart   Root Element DONE  
  cart_line   Cart Line Level Element DONE DONE
    isbn String (13) ISBN of product DONE  
    quantity Decimal Quantity of product DONE  

Response
Each time a request is issued to the Get Actual Price Web Service, a response must be returned. The section describes the format of the data that must be returned with each request as well as it's meaning. It is the responsibility of the supplier to return the required information for this request in a specific format as part of the response. This format can be subdivided into two parts, the HTTP Header, and the HTTP Message Body (content) which will contain a customized XML format.

Header

The response header must contain the following values for content-type and status code.

Parameter Value Description
content-type text/xml Data being returned will be XML text
status code 200 The action was successfully received, understood, accepted, and the response XML will be in the message body

Message Body

Parameter Data Type Description Mandatory Repeatable
cart   Root Element DONE  
  rc_currency_code String (3) Lookup code for the currency of the cart prices DONE  
  cart_line   Cart Line Level Element DONE DONE
    isbn String (13) ISBN of product DONE  
    price Decimal Price of product DONE  

Sample

Client Request

POST /get_actual_price?account=555 HTTP/1.1
Host: www.supplierdomain.com
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<cart>
 <cart_line>
  <isbn>9780123456789</isbn>
  <quantity>12</quantity>
 </cart_line>
 <cart_line>
  <isbn>9780842345920</isbn>
  <quantity>10</quantity>
 </cart_line>
</cart>

Server Response

Please note, the following is only a subset of an actual HTTP response. The header has been condensed to illustrate the vital parameters.

HTTP/1.1 200 OK
Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="utf-8"?>
<cart>
 <rc_currency_code>USD</rc_currency_code>
 <cart_line>
  <isbn>9780123456789</isbn>
  <price>15.50</price>
 </cart_line>
 <cart_line>
  <isbn>9780842345920</isbn>
  <price>25.00</price>
 </cart_line>
</cart>

Reference Codes

Rc_Age

Reading Age, Integer (1-150)

Code Description
1 1 year old
2 2 years old
3 3 years old
4 4 years old
5 5 years old
6 6 years old
7 7 years old
8 8 years old
9 9 years old
... ... years old
150 150 years old

Rc_Grade

Reading grade

Code Description
-1 Pre School
0 Kindergarten
1 First Grade
2 Second Grade
3 Third Grade
4 Fourth Grade
5 Fifth Grade
6 Sixth Grade
7 Seventh Grade
8 Eighth Grade
9 Ninth Grade
10 Tenth Grade
11 Eleventh Grade
12 Twelfth Grade
13 College Freshman
14 College Sophomore
15 College Junior
16 College Senior
17 College Graduate Student
99 Used to specify all upper grades are covered

Rc_Availability

ONIX Code Lists Issue 7, March 2007
List 54: Availability status code

Code Description
AB Cancelled
AD Available direct from publisher only
CS Availability uncertain
EX No longer stocked by us
IP Available
MD Manufactured on demand
NP Not yet published
NY Newly catalogued, not yet in stock
OF Other format available
OI Out of stock indefinitely
OP Out of print
OR Replaced by new edition
PP Publication postponed indefinitely
RF Refer to another supplier
RM Remaindered
RP Reprinting
RU Reprinting, undated
TO Special order
TP Temporarily out of stock because publisher cannot supply
TU Temporarily unavailable
UR Unavailable, awaiting reissue
WR Will be remaindered
WS Withdrawn from sale

Rc_Bisac_Subject

The table below lists the general bisac subject code for each major heading, however all bisac subject codes are accepted. To see the complete list, please visit http://www.bisg.org/standards/bisac_subject/major_subjects.html.

Code Description
ANT000000 ANTIQUES & COLLECTIBLES / General
ARC000000 ARCHITECTURE / General
ART000000 ART / General
BIO000000 BIOGRAPHY & AUTOBIOGRAPHY / General
BUS000000 BUSINESS & ECONOMICS / General
CGN000000 COMICS & GRAPHIC NOVELS / General
CKB000000 COOKING / General
COM000000 COMPUTERS / General
CRA000000 CRAFTS & HOBBIES / General
DRA000000 DRAMA / General
EDU000000 EDUCATION / General
FAM000000 FAMILY & RELATIONSHIPS / General
FIC000000 FICTION / General
FOR000000 FOREIGN LANGUAGE STUDY / General
GAM000000 GAMES / General
GAR000000 GARDENING / General
HEA000000 HEALTH & FITNESS / General
HIS000000 HISTORY / General
HOM000000 HOUSE & HOME / General
HUM000000 UMOR / General
JNF000000 JUVENILE NONFICTION / General
JUV000000 JUVENILE FICTION / General
LAN000000 LANGUAGE ARTS & DISCIPLINES / General
LAW000000 LAW / General
LCO000000 LITERARY COLLECTIONS / General
LIT000000 LITERARY CRITICISM / General
MAT000000 MATHEMATICS / General
MED000000 MEDICAL / General
MUS000000 MUSIC / General
NAT000000 NATURE / General
OCC000000 BODY, MIND & SPIRIT / General
PER000000 PERFORMING ARTS / General
PET000000 PETS / General
PHI000000 PHILOSOPHY / General
PHO000000 PHOTOGRAPHY / General
POE000000 POETRY / General
POL000000 POLITICAL SCIENCE / General
PSY000000 PSYCHOLOGY / General
REF000000 REFERENCE / General
REL000000 RELIGION / General
SCI000000 SCIENCE / General
SEL000000 SELF-HELP / General
SOC000000 SOCIAL SCIENCE / General
SPO000000 SPORTS & RECREATION / General
STU000000 STUDY AIDS / General
TEC000000 TECHNOLOGY / General
TRA000000 TRANSPORTATION / General
TRU000000 TRUE CRIME / General
TRV000000 TRAVEL / General

Rc_Country

ISO 3166-1 alpha-3 Standard

Code Description
ABW Aruba
AFG Afghanistan
AGO Angola
AIA Anguilla
ALA Åland Islands
ALB Albania
AND Andorra
ANT Netherlands Antilles
ARE United Arab Emirates
ARG Argentina
ARM Armenia
ASM American Samoa
ATA Antarctica
ATF French Southern Territories
ATG Antigua and Barbuda
AUS Australia
AUT Austria
AZE Azerbaijan
BDI Burundi
BEL Belgium
BEN Benin
BFA Burkina Faso
BGD Bangladesh
BGR Bulgaria
BHR Bahrain
BHS Bahamas
BIH Bosnia and Herzegovina
BLR Belarus
BLZ Belize
BMU Bermuda
BOL Bolivia
BRA Brazil
BRB Barbados
BRN Brunei Darussalam
BTN Bhutan
BVT Bouvet Island
BWA Botswana
CAF Central African Republic
CAN Canada
CCK Cocos (Keeling) Islands
CHE Switzerland
CHL Chile
CHN China
CIV Côte d'Ivoire
CMR Cameroon
COD Congo, the Democratic Republic of the
COG Congo
COK Cook Islands
COL Colombia
COM Comoros
CPV Cape Verde
CRI Costa Rica
CUB Cuba
CXR Christmas Island
CYM Cayman Islands
CYP Cyprus
CZE Czech Republic
DEU Germany
DJI Djibouti
DMA Dominica
DNK Denmark
DOM Dominican Republic
DZA Algeria
ECU Ecuador
EGY Egypt
ERI Eritrea
ESH Western Sahara
ESP Spain
EST Estonia
ETH Ethiopia
FIN Finland
FJI Fiji
FLK Falkland Islands (Malvinas)
FRA France
FRO Faroe Islands
FSM Micronesia, Federated States of
GAB Gabon
GBR United Kingdom
GEO Georgia
GGY Guernsey
GHA Ghana
GIB Gibraltar
GIN Guinea
GLP Guadeloupe
GMB Gambia
GNB Guinea-Bissau
GNQ Equatorial Guinea
GRC Greece
GRD Grenada
GRL Greenland
GTM Guatemala
GUF French Guiana
GUM Guam
GUY Guyana
HKG Hong Kong
HMD Heard Island and McDonald Islands
HND Honduras
HRV Croatia
HTI Haiti
HUN Hungary
IDN Indonesia
IMN Isle of Man
IND India
IOT British Indian Ocean Territory
IRL Ireland
IRN Iran, Islamic Republic of
IRQ Iraq
ISL Iceland
ISR Israel
ITA Italy
JAM Jamaica
JEY Jersey
JOR Jordan
JPN Japan
KAZ Kazakhstan
KEN Kenya
KGZ Kyrgyzstan
KHM Cambodia
KIR Kiribati
KNA Saint Kitts and Nevis
KOR Korea, Republic of
KWT Kuwait
LAO Lao People's Democratic Republic
LBN Lebanon
LBR Liberia
LBY Libyan Arab Jamahiriya
LCA Saint Lucia
LIE Liechtenstein
LKA Sri Lanka
LSO Lesotho
LTU Lithuania
LUX Luxembourg
LVA Latvia
MAC Macao
MAR Morocco
MCO Monaco
MDA Moldova, Republic of
MDG Madagascar
MDV Maldives
MEX Mexico
MHL Marshall Islands
MKD Macedonia, the former Yugoslav Republic of
MLI Mali
MLT Malta
MMR Myanmar
MNE Montenegro
MNG Mongolia
MNP Northern Mariana Islands
MOZ Mozambique
MRT Mauritania
MSR Montserrat
MTQ Martinique
MUS Mauritius
MWI Malawi
MYS Malaysia
MYT Mayotte
NAM Namibia
NCL New Caledonia
NER Niger
NFK Norfolk Island
NGA Nigeria
NIC Nicaragua
NIU Niue
NLD Netherlands
NOR Norway
NPL Nepal
NRU Nauru
NZL New Zealand
OMN Oman
PAK Pakistan
PAN Panama
PCN Pitcairn
PER Peru
PHL Philippines
PLW Palau
PNG Papua New Guinea
POL Poland
PRI Puerto Rico
PRK Korea, Democratic People's Republic of
PRT Portugal
PRY Paraguay
PSE Palestinian Territory, Occupied
PYF French Polynesia
QAT Qatar
REU Réunion
ROU Romania
RUS Russian Federation
RWA Rwanda
SAU Saudi Arabia
SDN Sudan
SEN Senegal
SGP Singapore
SGS South Georgia and the South Sandwich Islands
SHN Saint Helena
SJM Svalbard and Jan Mayen
SLB Solomon Islands
SLE Sierra Leone
SLV El Salvador
SMR San Marino
SOM Somalia
SPM Saint Pierre and Miquelon
SRB Serbia
STP Sao Tome and Principe
SUR Suriname
SVK Slovakia
SVN Slovenia
SWE Sweden
SWZ Swaziland
SYC Seychelles
SYR Syrian Arab Republic
TCA Turks and Caicos Islands
TCD Chad
TGO Togo
THA Thailand
TJK Tajikistan
TKL Tokelau
TKM Turkmenistan
TLS Timor-Leste
TON Tonga
TTO Trinidad and Tobago
TUN Tunisia
TUR Turkey
TUV Tuvalu
TWN Taiwan, Province of China
TZA Tanzania, United Republic of
UGA Uganda
UKR Ukraine
UMI United States Minor Outlying Islands
URY Uruguay
USA United States
UZB Uzbekistan
VAT Holy See (Vatican City State)
VCT Saint Vincent and the Grenadines
VEN Venezuela
VGB Virgin Islands, British
VIR Virgin Islands, U.S.
VNM Vietnam
VUT Vanuatu
WLF Wallis and Futuna
WSM Samoa
YEM Yemen
ZAF South Africa
ZMB Zambia
ZWE Zimbabwe

Rc_Credit_Card_Type

Code Description
AMEX American Express
DISC Discover Card
MC Master Card
VISA Visa

Rc_Currency

ISO 4217 Standard

Code Description Decimal Precision
AED United Arab Emirates dirham 2
AFN Afghani 2
ALL Lek 2
AMD Armenian Dram 2
ANG Netherlands Antillian Guilde 2
AOA Kwanz 2
ARS Argentine Pes 2
AUD Australian Dollar 2
AWG Aruban Guilder 2
AZN Azerbaijanian Manat 2
BAM Convertible Marks 2
BBD Barbados Dollar 2
BDT Bangladeshi Taka 2
BGN Bulgarian Lev 2
BHD Bahraini Dinar 3
BIF Burundian Franc 0
BMD Bermuda Dollar 2
BND Brunei Dollar 2
BOB Boliviano 2
BOV Bolivian Mvdol 2
BRL Brazilian Real 2
BSD Bahamian Dollar 2
BTN Ngultrum 2
BWP Pula 2
BYR Belarussian Ruble 0
BZD Belize Dollar 2
CAD Canadian Dollar 2
CDF Franc Congolais 2
CHE WIR Euro 2
CHF Swiss Franc 2
CHW WIR Franc 2
CLF Unidades de formento 0
CLP Chilean Peso 0
CNY Yuan Renminbi 2
COP Colombian Peso 2
COU Unidad de Valor Real 2
CRC Costa Rican Colon 2
CUP Cuban Peso 2
CVE Cape Verde Escudo 2
CYP Cyprus Pound 2
CZK Czech Koruna 2
DJF Djibouti Franc 0
DKK Danish Krone 2
DOP Dominican Peso 2
DZD Algerian Dinar 2
EEK Kroon 2
EGP Egyptian Pound 2
ERN Nakfa 2
ETB Ethiopian Birr 2
EUR Euro 2
FJD Fiji Dollar 2
FKP Falkland Islands Pound 2
GBP Pound Sterling 2
GEL Lari 2
GHS Cedi 2
GIP Gibraltar pound 2
GMD Dalasi 2
GNF Guinea Franc 0
GTQ Quetzal 2
GYD Guyana Dollar 2
HKD Hong Kong Dollar 2
HNL Lempira 2
HRK Croatian Kuna 2
HTG Haiti Gourde 2
HUF Forint 2
IDR Rupiah 2
ILS New Israeli Shekel 2
INR Indian Rupee 2
IQD Iraqi Dinar 3
IRR Iranian Rial 2
ISK Iceland Krona 2
JMD Jamaican Dollar 2
JOD Jordanian Dinar 3
JPY Japanese yen 0
KES Kenyan Shilling 2
KGS Som 2
KHR Riel 2
KMF Comoro Franc 0
KPW North Korean Won 2
KRW South Korean Won 0
KWD Kuwaiti Dinar 3
KYD Cayman Islands Dollar 2
KZT Tenge 2
LAK Kip 2
LBP Lebanese Pound 2
LKR Sri Lanka Rupee 2
LRD Liberian Dollar 2
LSL Loti 2
LTL Lithuanian Litas 2
LVL Latvian Lats 2
LYD Libyan Dinar 3
MAD Moroccan Dirham 2
MDL Moldovan Leu 2
MGA Malagasy Ariary 0
MKD Denar 2
MMK Kyat 2
MNT Tugrik 2
MOP Pataca 2
MRO Ouguiya 2
MTL Maltese Lira 2
MUR Mauritius Rupee 2
MVR Rufiyaa 2
MWK Kwacha 2
MXN Mexican Peso 2
MXV Mexican Unidad de Inversion (UDI) 2
MYR Malaysian Ringgit 2
MZN Metical 2
NAD Namibian Dollar 2
NGN Naira 2
NIO Cordoba Oro 2
NOK Norwegian Krone 2
NPR Nepalese Rupee 2
NZD New Zealand Dollar 2
OMR Rial Omani 3
PAB Balboa 2
PEN Nuevo Sol 2
PGK Kina 2
PHP Philippine Peso 2
PKR Pakistan Rupee 2
PLN Zloty 2
PYG Guarani 0
QAR Qatari Rial 2
ROL Romanian Leu 2
RON Romanian New Leu 2
RSD Serbian Dinar 2
RUB Russian Ruble 2
RWF Rwanda Franc 0
SAR Saudi Riyal 2
SBD Solomon Islands Dollar 2
SCR Seychelles Rupee 2
SDG Sudanese Pound 2
SEK Swedish Krona 2
SGD Singapore Dollar 2
SHP Saint Helena Poun 2
SKK Slovak Koruna 2
SLL Leone Sierra 2
SOS Somali Shilling 2
SRD Surinam Dollar 2
STD Dobra 2
SYP Syrian Pound 2
SZL Lilangeni 2
THB Baht 2
TJS Somoni 2
TMM Manat 2
TND Tunisian Dinar 3
TOP Pa'anga 2
TRY New Turkish Lira 2
TTD Trinidad and Tobago Dollar 2
TWD New Taiwan Dollar 2
TZS Tanzanian Shilling 2
UAH Hryvnia 2
UGX Uganda Shilling 2
USD US Dollar 2
UYU Peso Uruguayo 2
UZS Uzbekistan Som 2
VEB Venezuelan bolívar 2
VND Vietnamese dong 2
VUV Vatu 0
WST Samoan Tala Samoa 2
XAF CFA Franc 0
XAG Silver (one Troy ounce) NULL
XAU Gold (one Troy ounce) NULL
XBA European Composite Unit NULL
XBB European Monetary Unit NULL
XBC European Unit of Account 9 NULL
XBD European Unit of Account 17 NULL
XCD East Caribbean Dollar 2
XDR Special Drawing Rights NULL
XFO Gold franc NULL
XFU UIC franc NULL
XOF CFA Franc BCEAO 0
XPD Palladium (one Troy ounce) NULL
XPF CFP franc 0
XPT Platinum (one Troy ounce) NULL
XXX No currency NULL
YER Yemeni Rial 2
ZAR South African Rand 2
ZMK Kwacha 2
ZWD Zimbabwe Dollar 2

Rc_Medium

ONIX Code Lists Issue 7, March 2007
List 7: Product form code

Code Description
00 Undefined
AA Audio
AB Audio cassette
AC CD-Audio
AD DAT
AE Audio disc
AF Audio tape
AG MiniDisc
AH CD-Extra
AI DVD Audio
AJ Downloadable audio file
AK Pre-recorded MP3 player
AL Pre-recorded SD card
AZ Other audio format
BA Book
BB Hardback
BC Paperback
BD Loose-leaf
BE Spiral bound
BF Pamphlet
BG Leather / fine binding
BH Board book
BI Rag book
BJ Bath book
BK Novelty book
BL Slide bound
BM Big book
BN Part-work (fascículo)
BO Leporello (folded)
BZ Other book format
CA Sheet map
CB Sheet map, folded
CC Sheet map, flat
CD Sheet map, rolled
CE Globe
CZ Other cartographic
DA Digital
DB CD-ROM
DC CD-I
DE Game cartridge
DF Diskette
DG Electronic book text
DH Online resource
DI DVD-ROM
DJ Secure Digital (SD) Memory Card
DK Compact Flash Memory Card
DL Memory Stick Memory Card
DM USB Flash Drive
DN Double-sided CD/DVD
DZ Other digital
FA Film or transparency
FC Slides
FD OHP transparencies
FE Filmstrip
FF Film
FZ Other film or transparency format
MA Microform
MB Microfiche
MC Microfilm
MZ Other microform
PA Miscellaneous print
PB Address book
PC Calendar
PD Cards
PE Copymasters
PF Diary
PG Frieze
PH Kit
PI Sheet music
PJ Postcard book or pack
PK Poster
PL Record book
PM Wallet or folder
PN Pictures or photographs
PO Wallchart
PP Stickers
PQ Plate (lámina)
PZ Other printed item
VA Video
VF Videodisc
VI DVD video
VJ VHS video
VK Betamax video
VL VCD
VM SVCD
VN HD DVD
VO Blu-ray
VP UMD Video
VZ Other video format
WW Mixed media product
WX Multiple copy pack
XA Trade-only material
XB Dumpbin ¿ empty
XC Dumpbin ¿ filled
XD Counterpack ¿ empty
XE Counterpack ¿ filled
XF Poster, promotional
XG Shelf strip
XH Window piece
XI Streamer
XJ Spinner
XK Large book display
XL Shrink-wrapped pack
XZ Other point of sale
ZA General merchandise
ZB Doll
ZC Soft toy
ZD Toy
ZE Game
ZF T-shirt
ZZ Other merchandize

Rc_Order_Line_Status

X12

Code Description
AC Item accepted and shipped (Shipping)
AN Available:Shipping - new edition/ISBN(Shipping)
AO Available: Shipping From Other Location
AR Item Accepted: Released for shipment (Shipping)
AS Available: Shipping - same ISBN (Shipping)
AX Available : Shipping - free book (Shipping)
BA Backordered: Not yet available (Not Shipped)
BB Backordered: Reprint under consideration (Not Shipped)
BC Backordered: Current edition not available - to be replaced with...(Not Shipped)
BD Backordered: Delay in publication (Not Shipped)
BH Backordered: On hold (Not Shipped)
BI Backordered: To be reissued (Not Shipped)
BK Backordered: from previous order (Not Shipped)
BN Backordered: Inventory in progress; closed for stocktaking (Not Shipped)
BO Backordered: At customer's request (Not Shipped)
BP Item Accepted: partial shipment; balance backordered (Shipping)
BR Backordered: To be reprinted (Not Shipped)
BW Backordered: Waiting for catalog/proessing (Not Shipped)
BX Backordered: Not yet published (Not Shipped)
CA Cancelled: Not yet available (Not Shipped)
CB Cancelled: Not our publication (Not Shipped)
CD Cancelled: Delay in publication (Not Shipped)
CE Cancelled: Order partially filled and shipped; remainder of order cancelled (Shipping)
CF Cancelled: Currend edition not available (Not Shipped)
CG Cancelled: No geographic rights, e.g. Canadian(Not Shipped)
CH Cancelled: Rights no longer ours (Not Shipped)
CI Cancelled: To be reissued (Not Shipped)
CJ Cancelled: Out of print in cloth; available in paper - reorder (Not Shipped)
CL Cancelled: Out of print in paper; available in cloth - reorder (Not Shipped)
CM Item accepted: shipment complete with additional quantity
CN Cancelled: Inventory in progress; closed for stocktaking (Not Shipped)
CO Cancelled: Out of stock (Not Shipped)
CQ Cancelled: Did not meet minimum order requirements e.g., quantity or dollar value (Not Shipped)
CR Cancelled: To be reprinted (Not Shipped)
CT Cancelled: Publisher did not respond by your cancellation date (Not Shipped)
CU Cancelled: Kits not available (Not Shipped)
CV Cancelled: Complete set volume must be purchased (Not Shipped)
CW Cancelled: Apply direct; not available through wholesale channels (Not Shipped)
CX Cancelled: Never published (Not Shipped)
CY Cancelled: Not available as a processed book (Not Shipped)
DR Item accepted: Date rescheduled (Shipping)
DS Out of Stock IA Item Accepted (Shipping)
IB Item Backordered (Not Shipped)
ID Item Deleted (Not Shipped)
IE Item accepted: Price pending (Shipping)
IF Item on hold: Incomplete description (Not Shipped)
IG Item Forwarded to Proper Source/Published
IH Item on hold (Not Shipped)
IN Item accepted: Forwarded to new supplier (Not Shipped)
IP Item accepted: Price changed (Shipping)
IQ Item accepted: Quantity changed (Shipping)
IR Item rejected (Not Shipped)
IS Item acepted: Substitution made (Shipping)
IW Item on hold: Waiver required (Not Shipped)
KC Cancelled: REprint under consideration (Not Shipped)
KK Cancelled: ISBN incorrect/unknown (Not Shipped)
KM Cancelled: Market for this title is restricted (Not Shipped)
KP Cancelled: Out of print (Not Shipped)
KR Cancelled: Title Remaindered (Not Shipped)
KS Cancelled: book sold by subscription only (Not Shipped)
MB Managed Title Backordered (Not Shipped)
MC Managed Title Canceled (Not Shipped)
NF Not yet published (Not Shipped)
OP Out of print (Not Shipped)
OR Temporarily out of stock (Not Shipped)
PA Partial shipment (Shipping)
SC Shipment complete (Shipping)
SP Item accepted: Schedule date pending (Shipping)
SS Split Shipment (Shipping)

Rc_Order_State

Code Description
ACC Order Accepted by Supplier
ORD Order Placed
REC Order Received by Supplier
REJ Order Rejected by Supplier

Rc_Price_Type

X12

Code Description
ACT Actual Price
ALT Alternate Price
CAT Catalog Price
DIS Distributor's Price
EST Estimated Price
GOV Government Price
INV Invoice Billing Price
MSR Manufacturer's Suggested Retail
NET Net Item Price
PRP Promotional price
SLP Suggested List Price
SPC Special Price

Rc_Quote_State

Code Description
ACC Quote Accepted
DEL Quote Deleted
QTD Quoted by Supplier
REC Request For Quote Received by Supplier
REJ Quote Rejected
RFQ Request For Quote Submitted by Customer

Revision: r1.61 - 17 Oct 2008 - 15:08:59