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) | |
| [!PA2] | ISBN | String (13) | 13-Digit International Standard Book Number | |
| [!PA3] | Quantity | Integer | Quantity of items | |
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 | | |
| | my_price | | Item Level Element | | |
| | | isbn | String (13) | 13-Digit International Standard Book Number | | |
| | | 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) | | |
| | | rc_currency_code | String | ISO currency code | | |
| | | 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) | |
| [!PA2] | ISBN | String (13) | 13-Digit International Standard Book Number | |
| [!PA3] | Purchase Order Reference Number | String (22) | PO Number | |
| [!PA4] | Order Identifier | String (40) | Back Office Identifier that uniquely identifies order (order_sid) | |
| [!PA5] | Invoice Number | String (40) | Invoice Number | |
| [!PA6] | Ship To Location | String (40) | Back Office Ship To Code that uniquely identifies ship-to location (ship_to_sid) | , if supporting Get Ship To Locations |
| [!PA7] | Order Date Start | dateTime | Date Range Start Date | |
| [!PA8] | Order Date End | dateTime | Date Range End Date | |
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 | | |
| | order_status | | Item Level Order Status Element | | |
| | | order_sid | String (40) | Back Office Number uniquely identifying order | | |
| | | 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 | | |
| | | | rc_order_line_status_code | String | Lookup code for status of order line | | |
| | | | isbn | String (13) | ISBN of product ordered | | |
| | | | 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 | | |
| | | | | shipper_name | Sting (50) | Name of shipper | | |
| | | | | tracking_number | String (30) | Tracking Number of package | | |
| | | | | 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) | |
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 | | |
| | ship_to | | Item Level Element | | |
| | | ship_to_sid | String (40) | Unique code from Supplier to identify a ship-to location (will be passed in an order) | | |
| | | ship_to_description | String (300) | Address represented by unique code (will be displayed on screen) | | |
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) | |
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 | | |
| | ship_method | | Item Level Element | | |
| | | ship_method_sid | String (40) | Unique code from Supplier to identify a shipping method (will be passed in an order) | | |
| | | ship_method_description | String (300) | Description of shipping method represented by unique code (will be displayed on screen) | | |
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.
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.
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | returned | Integer | ATTRIBUTE: Number of suppliers returned | | |
| | page | Integer | ATTRIBUTE: Current results page | | |
| | pagesize | Integer | ATTRIBUTE: Number of suppliers per page | | |
| | supplier | | Item Level Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Supplier | | |
| | | name | String (50) | Display Name of Supplier | | |
| | | rc_supplier_status_code | String | Status of Supplier (live, test...etc.) | | |
| | | san | String (8) | Standard Address Number | | |
| | | ean | String (13) | European Article Number | | |
| | | address | String (500) | Full Address of the Supplier | | |
| | | 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 | | |
| | | logo_filename | String (50) | Filename of logo | | |
| | | quote_enabled_ind | String | Feature Enabled (Y or N) | | |
| | | order_enabled_ind | String | Feature Enabled (Y or N) | | |
| | | rfq_alert_enabled_ind | String | Feature Enabled (Y or N) | | |
| | | 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) | | |
| | | 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) | | |
| | | order_status_uri | anyURI | URI of supplier order status web service | | |
| | | personal_price_enabled_ind | String | Feature Enabled (Y or N) | | |
| | | personal_price_uri | anyURI | URI of supplier personal price web service | | |
| | | ship_to_enabled_ind | String | Feature Enabled (Y or N) | | |
| | | ship_to_uri | anyURI | URI of supplier ship to location web service | | |
| | | ship_method_enabled_ind | String | Feature Enabled (Y or N) | | |
| | | 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 | | |
| | | | rc_credit_card_type_code | String | Code for accepted credit card type | | |
| | | | description | String (50) | Description of credit card type (American Express, Visa, MasterCard) | | |
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 | | |
| | publisher | | Item Level Publisher Element | | |
| | | 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) | | |
| | | name | String (50) | Name of the publisher/imprint | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | loaded | Integer | ATTRIBUTE: Number of publishers successfully loaded | | |
| | publisher | | Item Level Publisher Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Publisher | | |
| | | publisher_sid | String (40) | Unique code for this imprint/publisher (supplier defined) | | |
| | | status | String | Status of Load (S-Success, F-Failure) | | |
| | | 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 | | |
| | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | returned | Integer | ATTRIBUTE: Number of publishers returned | | |
| | page | Integer | ATTRIBUTE: Current results page | | |
| | pagesize | Integer | ATTRIBUTE: Number of publishers per page | | |
| | publisher | | Item Level Publisher Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Product | | |
| | | publisher_sid | String (40) | Unique code for this imprint/publisher (supplier defined) | | |
| | | name | String (50) | Name of the publisher/imprint | | |
| | | supplier | | Item Level Supplier Element | | |
| | | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Supplier | | |
| | | | description | String (300) | Name of Supplier | | |
| | | | uri | anyURI | URI link to supplier information using the Get Suppliers web service | | |
| | | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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 | | |
| | product | | Item Level Product Element | | |
| | | 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 | | |
| | | 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 | (for insert) | |
| | | rc_availability_code | String | Lookup of the availability of this product | (for insert) | |
| | | rc_medium_code | String | Lookup of Product Medium Details | (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 | | |
| | | | price_amount | Decimal | Price of Product for the given rc_price_tpy in the given rc_currency_code | | |
| | | | rc_price_type_code | String | Lookup for the type of price | | |
| | | | rc_currency_code | String | Lookup code for the currency of the supplied price | | |
| | | subject | | Item Level Subject Element | | |
| | | | rc_bisac_subject_code | String | BISAC Subject Code | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | loaded | Integer | ATTRIBUTE: Number of products successfully loaded | | |
| | product | | Item Level Product Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Product | | |
| | | isbn | String (13) | International Standard Book Number | | |
| | | status | String | Status of Load (S-Success, F-Failure) | | |
| | | 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 | | |
| | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | returned | Integer | ATTRIBUTE: Number of products returned | | |
| | page | Integer | ATTRIBUTE: Current results page | | |
| | pagesize | Integer | ATTRIBUTE: Number of products per page | | |
| | product | | Item Level Product Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Product | | |
| | | isbn | String (13) | International Standard Book Number | | |
| | | rc_availability_code | String | Lookup of the availability of this product | | |
| | | rc_medium_code | String | Lookup of Product Medium Details | | |
| | | 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) | | |
| | | 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 | | |
| | | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Supplier | | |
| | | | name | String (300) | Name of Supplier | | |
| | | | uri | anyURI | URI link to supplier information using the Get Suppliers web service | | |
| | | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
| | | publisher | | Item Level Publisher Element | | |
| | | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Publisher/Imprint | | |
| | | | name | String (300) | Name of Publisher/Imprint | | |
| | | | uri | anyURI | URI link to Publisher/Imprint information using the Get Publishers web service | | |
| | | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
| | | price | | Item Level Price Element | | |
| | | | price_amount | Decimal | Price of Product | | |
| | | | rc_price_type_code | String | Lookup for the type of price | | |
| | | | rc_currency_code | String | Lookup code for the currency of the supplied price | | |
| | | subject | | Item Level Price Element | | |
| | | | rc_bisac_subject_code | String | BISAC Subject Code | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | returned | Integer | ATTRIBUTE: Number of customers returned | | |
| | page | Integer | ATTRIBUTE: Current results page | | |
| | pagesize | Integer | ATTRIBUTE: Number of customers per page | | |
| | customer | | Item Level Customer Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Customer | | |
| | | name | String (50) | Name of Customer | | |
| | | address1 | String (250) | Street address line 1 | | |
| | | address2 | String (250) | Street address line 2 | | |
| | | address3 | String (250) | Street address line 3 | | |
| | | city | String (100) | Name of City | | |
| | | state | String (100) | Name of State/Province | | |
| | | zip | String (25) | Zip Code | | |
| | | rc_country_code | String | Lookup of Country Code | | |
| | | 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 | | |
| | | | account_sid | String (40) | Back Office Supplier Account Number | | |
| | | | supplier | | Item Level Supplier Element | | |
| | | | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Supplier | | |
| | | | | name | String (300) | Name of Supplier | | |
| | | | | uri | anyURI | URI link to supplier information using the Get Suppliers web service | | |
| | | | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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 | | |
| | customer | | Item Level Publisher Element | | |
| | | 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 | (if not provided in URI) | |
| | | account_sid | String (40) | Supplier Back Office Account Number associated with this PubEasy Customer | (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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | loaded | Integer | ATTRIBUTE: Number of customer accounts successfully loaded | | |
| | customer | | Item Level Publisher Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of PubEasy Customer | | |
| | | status | String | Status of Load (S-Success, F-Failure) | | |
| | | status_description | String (300) | Description of Status of Load (reasons for failure) | | |
| | | uri | anyURI | URI of customer resource using the Get Customers web service | | |
| | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | returned | Integer | ATTRIBUTE: Number of quotes returned | | |
| | page | Integer | ATTRIBUTE: Current results page | | |
| | pagesize | Integer | ATTRIBUTE: Number of quotes per page | | |
| | quote | | Item Level Quote Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Quote | | |
| | | name | String (50) | User Generated Name of Quote | | |
| | | account_sid | String (40) | Back office account number of customer who requested this quote | | |
| | | submitted_date | dateTime | Date the quote/rfq was submitted | | |
| | | rc_quote_state_code | String | Lookup specifying current state of quote | | |
| | | quote_state_date | dateTime | Date the quote was last modified | | |
| | | 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 | | |
| | | shipping_cost | Decimal | Shipping Cost, if any, charged for order | | |
| | | total_cost | Decimal | Total Cost of Quote | | |
| | | rc_currency_code | String | Currency Code of all prices in Quote | | |
| | | 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 | | |
| | | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Order | | |
| | | | uri | anyURI | URI of order resource (if order was placed from this quote) using the Get My Orders web service | | |
| | | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
| | | quote_line | | Item Level Quote Line Element | | |
| | | | isbn | String (13) | 13 Digit International Standard Book Number | | |
| | | | 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 | | | | |
| | quote | | Item Level Quote Element | | | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Quote | (if not provided in URI) | (if not provided in URI) | | |
| | | quote_sid | String (40) | Back Office String/Number uniquely identifying quote | | | | |
| | | rc_quote_state_code | String | Lookup specifying state of quote to be loaded | | | | |
| | | account_sid | String (40) | Back office account number of customer who requested or will receive this quote | | | | |
| | | 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 | | | | |
| | | rc_currency_code | String | Currency Code of all prices within Quote | | | | |
| | | quote_line | | Item Level Quote Line Element | | | | |
| | | | 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 | | | | |
| | | | 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 | | | | |
| | | | substitute_isbn | String (13) | Use if supplier is substituting an ISBN for the original product which is no longer available | | | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | loaded | Integer | ATTRIBUTE: Number of quotes successfully loaded | | |
| | quote | | Item Level Quote Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of quote | | |
| | | status | String | Status of Load (S-Success, F-Failure) | | |
| | | 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 | | |
| | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | returned | Integer | ATTRIBUTE: Number of orders returned | | |
| | page | Integer | ATTRIBUTE: Current results page | | |
| | pagesize | Integer | ATTRIBUTE: Number of orders per page | | |
| | order | | Item Level Order Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of Order | | |
| | | rc_order_state_code | String | Lookup value of current order state | | |
| | | account_sid | String (40) | Back office account number of customer who placed order | | |
| | | 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 | | |
| | | 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 | | |
| | | 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 | | |
| | | | uri | anyURI | URI of quote resource (if order was placed from a quote) using the Get Quotes web service | | |
| | | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
| | | order_line | | Item Level Order Line Element | | |
| | | | isbn | String (13) | 13 Digit International Standard Book Number | | |
| | | | 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 | | | |
| | order | | Item Level Order Element | | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of order | (if not provided in URI) | (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 | | | |
| | | 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 | | | |
| | | isbn | String (13) | 13 Digit International Standard Book Number | | | |
| | | 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 | | | |
| | | 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 | | | |
| | | 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 | | | |
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 | | |
| | version | Integer | ATTRIBUTE: Version number | | |
| | release | Decimal | ATTRIBUTE: Coded release date | | |
| | 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 | | |
| | loaded | Integer | ATTRIBUTE: Number of order results successfully loaded | | |
| | order | | Item Level Publisher Element | | |
| | | id | Integer | ATTRIBUTE: PubEasy Unique Identifier of order | | |
| | | status | String | Status of Load (S-Success, F-Failure) | | |
| | | 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 | | |
| | | | version | Integer | ATTRIBUTE: Version number of service URI | | |
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) | |
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 | | |
| | credit_card_holder | String | Credit card holder name | | |
| | credit_card_number | Number | Credit card number | | |
| | credit_card_exp_month | Number | Credit card expiration month | | |
| | credit_card_exp_year | Number | Credit card expiration year | | |
| | credit_card_security_number | Number | Credit card security number | | |
| | rc_credit_card_type_code | String | Credit card type (Visa, MC, etc.) | | |
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 | | |
| | validation | | Result Element | | |
| | | code | Number | HTTP result code | | |
| | | message | String | Message text | | |
| | | 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) | |
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 | | |
| | cart_line | | Cart Line Level Element | | |
| | | isbn | String (13) | ISBN of product | | |
| | | quantity | Decimal | Quantity of product | | |
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 | | |
| | rc_currency_code | String (3) | Lookup code for the currency of the cart prices | | |
| | cart_line | | Cart Line Level Element | | |
| | | isbn | String (13) | ISBN of product | | |
| | | price | Decimal | Price of product | | |
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 |