Implementation Guide

In today’s challenging and uncertain economy, finding efficiencies and cost savings in your business processes is imperative, and the shortest path to savings is the adoption of standard transaction formats. Whether you are a manufacturer, a distributor, or a retailer, you can streamline and automate the production of orders, product catalogs, shipping documents, and forecasts using industry standards.

Five Reasons to Adopt Industry Technology Standards

  1. Your business will benefit from increased efficiency. Trading partners who share information through standardized data exchange enjoy reduced operational costs as a result of less human interaction in business transactions.

  2. Your business will profit from higher accuracy. Using standardized transaction formats allows business trading partners to easily share information, thereby preventing costly mistakes.

  3. You will be able to provide better customer service. Access to timely information in known, predictable formats allows for faster response time and better service to your customers.

  4. You will be able to make better decisions. Timely, accurate, and complete information gives you the "big picture" you need to make informed business decisions.

  5. Your business communications will be simpler. A standardized, agreed-upon data transfer format simplifies transactions between business partners and removes obstacles imposed by the businesses' individual systems.

Product vendors, suppliers, and purchasers use different computer hardware and software systems to process their business transactions. These systems all have their own proprietary internal data formats, and yet they all need to process the same kinds of data. Thus, the need for a "common language" for sharing data among business trading partners becomes critical. More efficient and reliable data transfer means fewer errors in your business transactions, and that means a better bottom line!

The common format that makes this possible is called XML (eXtensible Markup Language). XML is a method of semantically classifying, annotating, and storing data so that it can be shared among dissimilar systems, yet interpreted and processed identically by them. XML data conforms to formatting rules that are agreed to by all parties to a transaction, and thus can be freely exchanged among disparate hardware and software systems without fear of misinterpretation, data loss, or exposure of proprietary information.

XML is the de facto data storage and communication format in business today, and it is the format used by NAMM's Business to Business (B2B) document set. Using XML-based data, business trading partners can exchange information consistently and precisely, improving efficiency and accuracy while reducing operational costs and enhancing all levels of customer service. XML's common data format facilitates the ability to share information among business partners throughout the supply chain.

For example, XML data:

For the past several years, experts from across all channels of the Music Products Industry have partnered together to design a tool to enhance your business practices. That tool is the NAMM B2B XML standard, the most widely used standard in the Global Music Products Industry. This document details the information necessary for trading partners like you to begin to implement and automate transactions using this standard. NAMM encourages you and your business partners to adopt and use these standardized data transfer formats.

Introduction

Abstract

This document is intended as a conceptual and practical guide to NAMM’s Business-to-Business (B2B) XML data exchange standard, and specifically a reference to the XML files defined by the standard.

Audience

The target audience for this document is the technical team in a musical products merchandising company whose responsibility includes internal software management, configuration, and integration, especially as relates to interfacing with external data sources. These companies may supply musical products, consume them, or both.

Overview

In the course of providing musical products from one company to another, certain data must be exchanged between suppliers and buyers. While the specific software systems of each company will necessarily differ in platform, connectivity, and functionality, it is highly advantageous to both parties that the structure of the data exchanged be consistent from transaction to transaction. It is this need for structural consistency that is addressed and provided by the NAMM B2B standard.

Implementation

Transaction Definition

The NAMM B2B standard comprises a set of XML files containing data in a predefined, consistent format. Each XML file is designed to precisely define the data required to complete one common transaction between parties, e.g., Purchase Order, Invoice, Shipment Notification, and so on. These documents are described in “XML Files”, below.

Transaction Sequence

A typical sequence of events between a product supplier and product buyer and the associated documents, in chronological order, might be as follows.

  1. Both supplier and buyer complete and release mutually-available identification information in a Party document.

  2. The supplier sends a catalog of available products to the buyer in an Item document.

  3. The buyer acknowledges receipt of the Item document with a Functional Acknowledgement document.

  4. The supplier sends a price list for available products to the buyer in a PriceBook document (optional).

  5. The buyer acknowledges receipt of the PriceBook document with a Functional Acknowledgement document.

  6. The buyer decides to purchase items from the catalog and sends a request for them to the supplier in a Purchase Order document.

  7. The supplier acknowledges receipt of the Purchase Order with a Functional Acknowledgement document.

  8. The buyer requests the status of their order with a PO Status Request document.

  9. The seller provides the status of the order in a PO Status Acknowledgement document.

  10. The supplier makes one or more product shipments to the buyer and sends detailed information for each shipment in an Advanced Shipment Notification document.

  11. The buyer acknowledges receipt of the Advanced Shipment Notification with a Functional Acknowledgement document.

  12. The supplier sends a request for payment to the buyer in an Invoice document.

  13. The buyer acknowledges receipt of the Invoice with a Functional Acknowledgement document.

  14. The supplier sends a report to the buyer indicating which products have been sold in a SellThrough document (optional).

  15. The buyer acknowledges receipt of the SellThrough with a Functional Acknowledgement document.

Below is a diagram of this process, referencing the step/document numbers above.

[image]

A typical B2B document transaction sequence

Transport Options

In the B2B scenario described above, the XML documents must be electronically transmitted between partners in order for data sharing to take place. Therefore, the transmission method used, called a transport protocol, must be understood and implemented by both parties to a transaction.

The set of protocols used for Internet communications is called the Internet Protocol Suite, commonly known as TCP/IP (Transmission Control Protocol/Internet Protocol). The two most popular transport protocols in use today are HTTP and FTP, discussed below.

HTTP

HTTP (HyperText Transfer Protocol) can be used to upload (send) files from a local computer to a remote web server. This is the method used to download web pages from a server into a web browser for viewing, and to download auxiliary files from web pages to your local computer. In this scenario, a programmer must implement a system that runs a script or application so the sender can use it to upload a file. When the transfer is complete, the receiving system might then run another program to process the data (e.g., to input it into the company's accounting system). HTTP supports immediate in-session response, enabling the receiving party to validate the transmitted XML and respond by transmitting an XML document of its own (such as a Functional Acknowledgement) back to the sender. This type of transfer is typically used to send one file at a time (or multiple documents in an envelope).

FTP

FTP (File Transfer Protocol) can also be used to upload files from a local computer to a remote location. In this scenario, the sender runs a specific kind of third-party application called an FTP client on their local computer to contact the recipient's server; the FTP client then lets the user select one or more files to transfer and sends them. FTP does not support immediate response; instead, transmitted files may be detected later by other software and managed in groups (batch processing). This type of transfer is typically used to send several files at a time.

HTTP/FTP Comparison

Transfer speed: Both protocols have features that increase and decrease transmission speed. For example, while FTP does not take the time to "chunk" files as HTTP does, it uses two connections (one for commands and another for transfers) to accomplish its task. Conversely, while HTTP automatically compresses transmitted data, it adds metadata elements to the transmission stream. Ultimately, when transferring a small number of files that are not individually large (such as those in NAMM's B2B process), the speed difference is negligible.

Security: Neither standard HTTP nor FTP supports secure transmission, so each protocol has a secure version – HTTPS and SFTP – that can be used to provide secure file transfer between systems. Because FTP/SFTP, once connected, gives an authorized sender relatively broad access to the recipient's file system, where HTTP/HTTPS does not, additional software safeguards or strictly limited navigation permissions may be required. NAMM members are strongly encouraged to use the secure protocols (HTTPS/SFTP) in their B2B transactions to ensure the security and privacy of their communications.

Popularity: FTP is a much older system than HTTP, by a decade or more. Thus, historically speaking, FTP is more popular. However, because today virtually every page – and virtually every upload and download link – on the web is now served via HTTP, it is accurate to say that HTTP is by far the more popular protocol in terms of raw usage. Further, while there are many excellent and free FTP clients available (FireFTP, FileZilla, CoffeeCup Free FTP, WinSCP, etc.), HTTP/HTTPS is significantly easier to control and customize programmatically via browser scripting or programming languages, making it the most popular choice for developers of modern file transfer applications.

Conclusion

XML files contain only "plain text" data, and thus are compatible with any transfer protocol. Which protocol you use is ultimately up to you and your business partners. You may in fact use both protocols to share data among partners, FTP for some and HTTP for others; or you might use FTP to send files and HTTP to receive them. The choice depends on what software you and your partner companies have available or are willing to develop.

Resource Requirements

Implementing the NAMM B2B standard is not difficult and does not require specialized resources. Most likely, your company already has the basic facilities and resources required for implementation, such as:

  • a web server that supports FTP or HTTP transport services

  • an internet connection/hosting facility

  • a domain name (or IP address)

  • commercial or proprietary accounting software

  • a software and/or web developer

You can get additional help with B2B planning and implementation at the NAMM web site (http://www.namm.org), through independent consultants, and from current B2B members. Certain third-party software packages such as point-of-sale products are popular with NAMM member organizations.

There are also many completely free XML tutorials, services, and utilities available online, such as the World Wide Web Consortium's (W3C) W3Schools training site (http://w3schools.com/xml/default.asp), XML editors like Microsoft's XML Notepad (http://www.microsoft.com/download/en/details.aspx?id=7973), and web-based validation tools such as DecisionSoft's online XML Schema Validator (http://tools.decisionsoft.com/schemaValidate/).

For more information or to ask specific questions, please email us at

XML Files

Usage Note

Below are descriptions and discussions of the XML documents currently defined by the NAMM standard. Note that, as with any XML implementation, these files merely define the structure of the data and do not require nor support any specific processing agents (i.e., application software). The responsibility for creating, validating, transmitting, receiving, and parsing the files and their content therefore rests solely with the business entities (suppliers and buyers) using them. To facilitate validation, each XML document has an accompanying file that contains the document's specific, clearly defined rules, called an XSD schema; see “XML Schemas”.

XML Tag Reference

Coding Note

Below are tag-by-tag listings of each XML document in the NAMM B2B standard. Each tag is followed by a brief description and a flag indicating whether the tag is required in the particular document. Nested tags are indented to indicate the hierarchical structure of the documents.

Complex (parent) elements are shown here as separate start and end tags (e.g., <Location> ... </Location>), while simple (child) elements are shown as “empty” tags (e.g., <Name/>) for improved readability in this document. These tags would of course be coded in live documents with start tags, data, and end tags (e.g., <Name>MusicMax Corporation</Name>).

While most pertinent metadata in these documents is coded as nested tags (e.g., <Barcode> <ID>4959112079274</ID> <Type>GTIN-13</Type> </Barcode>), some metadata is coded instead as attribute/value pairs (e.g., <Price type="MSRP" Currency="USD">980.00</Price>). Attributes are shown here on separate lines below the tags to which they belong (as nested tags would be, except without enclosing <>s), and their descriptions begin with the notation "Attribute:".

Elements and attributes required by the XSD schemas are marked with an X in the Req column. If a child element or attribute is marked required but its parent element is not, it means that the parent is still optional but, if used, it must contain the required child elements or attributes.



Important Note:
Most of the XML tags used in these files are mixed-case, as in <PartyIdType>; this coding technique is valid XML, and is used by design to improve human readability. However, XML code is case-sensitive, so users must be exceptionally careful to maintain proper tag case when creating and processing these files within their own editors, applications, and systems.

Pricebook

Price Book – pricebook-v2011.0.xml





Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_PRICEBOOK version="2011.0">

File-level Start tag

X

<Timestamp/>

Date/time stamp for this document

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<Items>

Start tag

X

<Item/>

Item info

X

EffectiveDate

Attribute: item effective date/time

 

<BarCodeId/>

Item digital barcode representation

X

<BarCodeType/>

Item barcode type

X

<SupplierItemId/>

Supplier item ID

 

<Levels/>

Start tag

X

<Level/>

Start tag

X

<Price/>

Price

X

Currency

Attribute: price currency code

X

type

Attribute: price type

X

<LevelMin/>

Level minimum

X

<LevelMax/>

Level maximum

X

<LevelUOM/>

Level unit of measure

X

</Level>

End tag

X

</Levels>

End tag

X

</Item>

End tag

X

</Items>

End tag

X

</NAMM_PRICEBOOK>

End tag

X

PO Status Request

PO Status Request – postatusrequest-v2011.0.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_POStatusRequest version="2011.0">

File-level Start tag

X

<Timestamp/>

Date/time stamp for this document

X

<Id/>

Document ID

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

</SoldTo>

End tag

X

<BuyerOrderIds>

Start tag

X

<BuyerOrderId/>

Buyer order ID

X

</BuyerOrderIds>

End tag

X

</NAMM_POStatusRequest>

End tag

X

PO Status / Det Ack

PO Status / Detailed Acknowledgement – postatus-v2011.0.xml





Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_POStatus version="2011.0">

File-level Start tag

X

<POStatusRequestId/>

PO ID of status request

X

<Timestamp/>

Date/time stamp for this document

X

<BuyerOrderId/>

Buyer order ID

X

<DateOrdered/>

Date ordered

X

<BuyerName/>

Buyer name

 

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<StatusCode/>

Status code

X

<PaymentTerms>

Start tag

X

<StatusCode/>

Payment status code (1)

X

<StatusMessage/>

Payment status message

 

<TermsCode/>

Payment terms code (1)

 

<TermsPercent/>

Payment terms percent

 

</PaymentTerms>

End tag

X

<ShipmentTerms>

Start tag

X

<StatusCode/>

Shipment status code (1)

X

</ShipmentTerms>

End tag

X

<Items>

Start tag

X

<Item>

Start tag

X

<POLineNbr/>

Item line number

X

<SequenceNbr/>

Item sequence number

X

<StatusCode/>

Item status code (1)

X

<StatusMessage/>

Item status message

 

<Qty/>

Item quantity

 

<RetailValue/>

Item retail value

 

<UCValue/>

Item UC value

 

<EstimatedShipDate/>

Item estimated ship date

 

<ShipDate/>

Item ship date

 

type

Attribute: item ship date type

 

<SupplierOrderId/>

Item supplier order ID

 

</Item>

End tag

X

</Items>

End tag

X

</NAMM_POStatus>

End tag

X

(1) See Appendix A, "Codes Tables".

Advanced Shipping Notice

Advanced Shipping Notice – asn-v2009.2.xml





Tag

Description

Req

<?xml version="1.0" encoding="UTF-8"?>

XML declaration

X

<NAMM_ASN version="2009.2">

File-level Start tag

X

<Id/>

Document ID

X

<Timestamp/>

Date/time stamp for this document

X

<ShipmentHeader>

Start tag

X

<ShipmentType/>

Shipment type description

 

<ShipmentId/>

Supplier ASN document number

X

<Shipped/>

Shipment date

 

<EstDeliver/>

Estimated delivery date

 

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<ShipFrom>

Start tag

X

<PartyId/>

Shipper GLN/NAMM ID

X

<Name/>

Shipper company name

 

<Address>

Start tag

 

<Attn/>

Shipper contact person

 

<Address1/>

Shipper address line 1

 

<Address2/>

Shipper address line 2

 

<Address3/>

Shipper address line 3

 

<City/>

Shipper city

 

<State/>

Shipper state

 

<PostalCode/>

Shipper postal code

 

<Country/>

Shipper country

 

<CountryCode/>

Shipper country code

 

</Address>

End tag

 

</ShipFrom>

End tag

X

<ShipmentRefs>

Start tag

 

<MasterBOL/>

Shipment master Bill Of Lading number

 

<PRONbr/>

Shipment PRO number

 

<ConfNbr/>

Shipment confirmation number

 

</ShipmentRefs>

End tag

 

<ShipmentQty>

Start tag

X

<ContainerQty/>

Number of units per container

X

<ShipmentItemQty/>

Number of units in shipment

 

</ShipmentQty>

End tag

X

<Volume>

Start tag

 

<VolumeValue/>

Shipment volume value

 

<VolumeUOMCode/>

Volume unit of measure (1)

 

<VolumeUOMDesc/>

Volume unit of measure description (1)

 

</Volume>

End tag

 

<Weight>

Start tag

 

<WeightValue/>

Shipment weight value

 

<WeightUOMCode/>

Weight unit of measure (1)

 

<WeightUOMDesc/>

Weight unit of measure description (1)

 

</Weight>

End tag

 

<TranspCode/>

Transportation code (1)

 

<TranspDesc/>

Transportation description (1)

 

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

 

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<ShipTo>

Start tag

X

<PartyId/>

Receiver GLN/NAMM ID

X

<Name/>

Receiver company name

 

<Address>

Start tag

 

<Attn/>

Receiver contact person

 

<Address1/>

Receiver address line 1

 

<Address2/>

Receiver address line 2

 

<Address3/>

Receiver address line 3

 

<City/>

Receiver city

 

<State/>

Receiver state

 

<PostalCode/>

Receiver postal code

 

<Country/>

Receiver country

 

<CountryCode/>

Receiver country code

 

</Address>

End tag

 

</ShipTo>

End tag

X

<Vehicle>

Start tag

 

<VehicleId/>

Shipper vehicle ID

 

<VehicleType/>

Shipper vehicle type

 

<SealId/>

Shipper container seal ID

 

</Vehicle>

End tag

 

</ShipmentHeader>

End tag

X

<Orders>

Start tag

X

<Order>

Start tag

X

<BuyerOrderId/>

Buyer purchase order ID

X

<Containers>

Start tag

X

<Container>

Start tag

X

<ContainerId/>

Shipper container ID

 

<ShipperTrackingNumber/>

Shipper tracking number

 

<Item>

Start tag

X

<ItemId>

Start tag

X

<BarCodeId/>

Item digital barcode representation

X

<BarCodeType/>

Item barcode type

X

<BuyerItemId/>

Item buyer ID

X

<BuyerItemDesc/>

Item buyer description

 

<SupplierItemId/>

Supplier item ID

X

<SupplierItemDesc/>

Supplier item description

 

</ItemId>

End tag

X

<POLineNbr/>

Purchase Order line number

X

<ItemQty>

Start tag

X

<Qty/>

Item quantity

X

<ItemUOMCode/>

Item unit of measure (1)

 

<ItemUOMDesc/>

Item unit of measure description (1)

 

</ItemQty>

End tag

X

<ItemAttrs>

Start tag

 

<SerialNbrs>

Start tag

 

<SerialNbr/>

Item serial number

 

</SerialNbrs>

End tag

 

<StdPack>

Start tag

 

<ICQtyPerUOM/>

Inner Carton quantity per Unit of Measure

 

<ICOUM/>

Inner Carton Unit of Measure

 

<StdPackType/>

Item package type

 

</StdPack>

End tag

 

<StdContainer>

Start tag

 

<MCQtyPerUOM/>

Master Carton quantity per Unit of Measure

 

<MCUOM/>

Master Carton Unit of Measure

 

<StdContainerType/>

Item container type

 

</StdContainer>

End tag

 

</ItemAttrs>

End tag

 

</Item>

End tag

 

</Container>

End tag

X

</Containers>

End tag

X

</Order>

End tag

X

</Orders>

End tag

X

</NAMM_ASN>

End tag

X

(1) See Appendix A, "Codes Tables".

Sell Through

Sell Through – sellthrough-v2012.1.xml

Tag

Description

Req

<?xml version="1.0" encoding="UTF-8" ?>

XML declaration

X

<NAMM_SELLTHROUGH version="2012.1">

File-level Start tag

X

<Id/>

Document ID

X

<Timestamp/>

Date/time stamp for this document

X

<StartDate/>

Start date

X

<EndDate/>

End date

X

<SoldTo>

Start tag

X

<PartyId/>

Buyer GLN/NAMM ID

X

<Name/>

Buyer company name

<Address>

Start tag

 

<Attn/>

Buyer contact person

 

<Address1/>

Buyer address line 1

 

<Address2/>

Buyer address line 2

 

<Address3/>

Buyer address line 3

 

<City/>

Buyer city

 

<State/>

Buyer state

 

<PostalCode/>

Buyer postal code

 

<Country/>

Buyer country

 

<CountryCode/>

Buyer country code

 

</Address>

End tag

 

</SoldTo>

End tag

X

<Supplier>

Start tag

X

<PartyId/>

Supplier GLN/NAMM ID

X

<Name/>

Supplier company name

 

<Address>

Start tag

 

<Attn/>

Supplier contact person

 

<Address1/>

Supplier address line 1

 

<Address2/>

Supplier address line 2

 

<Address3/>

Supplier address line 3

 

<City/>

Supplier city

 

<State/>

Supplier state

 

<PostalCode/>

Supplier postal code

 

<Country/>

Supplier country

 

<CountryCode/>

Supplier country code

 

</Address>

End tag

 

</Supplier>

End tag

X

<Locations>

Start tag

X

<Location>

Start tag

X

LocationID

Attribute: location ID

X

<Items>

Start tag

X

<Item>

Start tag

X

<BuyerItemId/>

Buyer item ID

X

<SupplierItemId/>

Supplier item ID

X

<BarCodeId/>

Item digital barcode representation

X

<BarCodeType/>

Item barcode type

X

<Qty/>

Item quantity

X

<QtyUOM/>

Item quantity per unit of measure

X

<SalesTotal/>

Sales total amount

X

<SalesTotalCurrencyCode/>

Sales total currency code

X

<QtyOnHand/>

Item quantity on hand

</Item>

End tag

X

</Items>

End tag

X

</Location>

End tag

X

</Locations>

End tag

X

</NAMM_SELLTHROUGH>

End tag

X

XML Schemas

Usage Note

An XML Schema Definition (XSD) describes the valid structure of an XML document. The schema is the successor to the Document Type Definition (DTD), and is the current recommendation of the World Wide Web Consortium (W3C). Below are the XSD files associated with each document type in the NAMM B2B standard. These schemas should be used for validation when creating/modifying, sending, receiving, and reading/importing the XML documents in order to avoid transmitting an invalid document to, or receiving one from, another business partner.

The schemas as presented here do not use the optional targetNamespace attribute on the schema tag; they have only the xmlns:xs attribute, defining the “xs” prefix, like this:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">.

Therefore, when referencing the schemas from a NAMM B2B XML data document, you should use the xsi:noNamespaceSchemaLocation attribute instead of the xsi:schemaLocation attribute on the top-level tag to specify the location of the schema.

For example, assume that the schemas all reside in a folder on the NAMM web site called http://b2b.namm.org/B2B/Schemas. If the schema for the Party document is named party-v2009.1.xsd, then the reference to it in the Party document’s top-level tag would look like this:

  <NAMM_PARTY version="2009.1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:noNamespaceSchemaLocation="http://b2b.namm.org/B2B/Schemas/party-v2009.1.xsd">

Such a reference would allow connection to and validation through the associated schema.

One additional coding note: Because the default value for both the minOccurs and maxOccurs attributes is “1”, minOccurs="0" has been included only when necessary, to indicate optional elements.

Price Book Schema

Price Book

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_PRICEBOOK">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="Supplier">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="SoldTo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Items">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded"
                          name="Item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="BarCodeId"
                                type="xs:decimal" />
                    <xs:element name="BarCodeType"
                                type="xs:string" />
                    <xs:element name="SupplierItemId"
                                type="xs:string" />
                    <xs:element name="Levels">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded"
                                      name="Level">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Price">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:decimal">
                                        <xs:attribute name="Currency"
                                                      type="xs:string" />
                                        <xs:attribute name="type"
                                                      type="xs:string" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="LevelMin"
                                            type="xs:int" />
                                <xs:element name="LevelMax"
                                            type="xs:int" />
                                <xs:element name="LevelUOM">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="type"
                                                      type="xs:string" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="EffectiveDate"
                                type="xs:dateTime" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2011.0" />
    </xs:complexType>
  </xs:element>
</xs:schema> 

PO Status Request Schema

PO Status Request Schema

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_POStatusRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="Supplier">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:decimal" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="SoldTo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:decimal" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="BuyerOrderIds">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded"
                          name="BuyerOrderId"
                          type="xs:int" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2011.0" />
    </xs:complexType>
  </xs:element>
</xs:schema>

PO Status / Det Ack Schema

PO Status / Det Ack

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_POStatus">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Id"
                    type="xs:string" />
        <xs:element name="POStatusRequestId"
                    type="xs:string" />
        <xs:element name="Timestamp"
                    type="xs:dateTime" />
        <xs:element name="BuyerOrderId"
                    type="xs:int" />
        <xs:element name="DateOrdered"
                    type="xs:date" />
        <xs:element name="BuyerName"
                    type="xs:string" />
        <xs:element name="Supplier">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="SoldTo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PartyId"
                          type="xs:string" />
              <xs:element name="Name"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="Address"
                          minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Attn"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address1"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address2"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="Address3"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="City"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="State"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="PostalCode"
                                minOccurs="0"
                                type="xs:int" />
                    <xs:element name="Country"
                                minOccurs="0"
                                type="xs:string" />
                    <xs:element name="CountryCode"
                                minOccurs="0"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="StatusCode"
                    type="xs:string" />
        <xs:element name="PaymentTerms">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StatusCode"
                          type="xs:int" />
              <xs:element name="StatusMessage"
                          type="xs:string"
                          minOccurs="0" />
              <xs:element name="TermsCode"
                          type="xs:string" />
              <xs:element name="TermsPercent"
                          type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ShipmentTerms">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StatusCode"
                          type="xs:int" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Items">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded"
                          name="Item">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="POLineNbr"
                                type="xs:int" />
                    <xs:element name="SequenceNbr"
                                type="xs:int" />
                    <xs:element name="StatusCode"
                                type="xs:string" />
                    <xs:element name="StatusMessage"
                                type="xs:string"
                                minOccurs="0" />
                    <xs:element name="Qty"
                                type="xs:int"
                                minOccurs="0" />
                    <xs:element name="RetailValue"
                                type="xs:decimal"
                                minOccurs="0" />
                    <xs:element name="UCValue"
                                type="xs:decimal"
                                minOccurs="0" />
                    <xs:element name="EstimatedShipDate"
                                type="xs:date"
                                minOccurs="0" />
                    <xs:element name="ShipDate"
                                minOccurs="0">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:date">
                            <xs:attribute name="type"
                                          type="xs:string" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SupplierOrderId"
                                type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2011.0" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Advanced Shipping Notice Schema

Invoice schema

Invoice – invoice-v2009.2.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="NAMM_Invoice">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="InvoiceHeader">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Id">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Timestamp" type="xs:string" />
              <xs:element name="SoldTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="25" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0">
                        <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="InvoiceId">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="32" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="InvoiceType">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:pattern value="C|D" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Supplier">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode"minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="RemitTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name"  minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="BillTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name"  minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3"minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="ShipTo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="PartyId">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="50" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Name"
                                minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="35" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Attn" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address1" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address2"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Address3" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="35" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="City"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="State" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PostalCode"  minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="9" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Country" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="CountryCode"   minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="2" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="TermsCode">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TermsDays"
                          type="xs:integer"  minOccurs="0"></xs:element>
              <xs:element name="TermsDate"
                          type="xs:date"  minOccurs="0"></xs:element>
              <xs:element name="TermsPercent"
                          type="xs:decimal"  minOccurs="0"></xs:element>
              <xs:element name="TermsPercentDays"
                          type="xs:integer"  minOccurs="0"></xs:element>
              <xs:element name="ShipInstructions"  minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="250" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspCode"   minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspDesc" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspCarrier"   minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TranspTime"
                          type="xs:integer"
                          minOccurs="0"></xs:element>
              <xs:element name="TranspTerms"
                          type="xs:string"
                          minOccurs="0"></xs:element>
              <xs:element name="IncoTermsCode"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="3" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="IncoTermsDesc"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="InvoiceDate"
                          type="xs:date"></xs:element>
              <xs:element name="InvoiceDueDate"
                          type="xs:date"></xs:element>
              <xs:element name="BuyerName"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="SalesRep"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="35" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Comments"
                          minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="250" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="InvoiceSummary">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="TotalItemLines"
                          type="xs:integer"></xs:element>
              <xs:element name="TotalItemQty"
                          type="xs:integer"></xs:element>
              <xs:element name="LineTotal"
                          type="xs:decimal"></xs:element>
              <xs:element name="FreightTotal"
                          type="xs:decimal"></xs:element>
              <xs:element name="SalesTax"
                          type="xs:decimal"></xs:element>
              <xs:element name="MiscCharge"
                          type="xs:decimal"></xs:element>
              <xs:element name="InvoiceTotal"
                          type="xs:decimal"></xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="InvoiceDetail">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Items">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Item"
                                maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="BuyerOrderId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SupplierOrderId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="InvoiceLineNbr"
                                      type="xs:integer">
                                      </xs:element>
                          <xs:element name="POLineNbr"
                                      type="xs:integer">
                                      </xs:element>
                          <xs:element name="BuyerItemId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Qty"
                                      type="xs:decimal">
                                      </xs:element>
                          <xs:element name="QtyUOM">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="5" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="UCValue"
                                      type="xs:decimal">
                                      </xs:element>
                          <xs:element name="UCCurrencyCode">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="3" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="ExtendedCostValue"
                                      type="xs:decimal">
                                      </xs:element>
                          <xs:element name="ExtendedCurrencyCode">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="3" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="RetailValue"
                                      type="xs:decimal"
                                      minOccurs="0"></xs:element>
                          <xs:element name="RetailCurrencyCode"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="3" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SupplierItemId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SupplierItemDesc">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="PackListNbr"
                                      minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="25" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="ShipmentIds">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="ShipmentId"
                                            maxOccurs="unbounded">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                      <xs:maxLength value="25" />
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DateShipped"
                                      type="xs:date"></xs:element>
                          <xs:element name="BarCodeId">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="14" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="BarCodeType">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:enumeration value="GTIN-12" />
                                <xs:enumeration value="GTIN-13" />
                                <xs:enumeration value="GTIN-14" />
                                <xs:enumeration value="PartNumber" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="version"
                    use="required"
                    type="xs:decimal"
                    fixed="2009.2" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Sample Documents

Usage Note

Below are samples of each XML document in the NAMM B2B standard, containing correctly coded tags and example data. Note that while these samples may contain some accurate-looking partner information, they are not actual partner documents and should not be construed as such. Use these sample documents as examples of how each document type might be coded. Note that while all required elements are present in these examples, optional elements may or may not be included.

Party Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_PARTY version="2009.1">
  <RevisionDate>2008-08-13T08:32:00</RevisionDate>
  <TradingPartner>
    <PartyId>NAMM000000123999*00000</PartyId>
    <PartyIdType>NAMM</PartyIdType>
    <Name>Roland Corporation U.S.</Name>
    <URL>http://www.rolandus.com</URL>
    <Locations>
      <Location>
        <PartyId>NAMM000000123999*00001</PartyId>
        <PartyIdType>NAMM</PartyIdType>
        <Description>Main</Description>
        <Name>Roland Corporation U.S.</Name>
        <Address>
          <Address1>5100 S. Eastern Ave.</Address1>
          <City>Los Angeles</City>
          <State>CA</State>
          <PostalCode>90040</PostalCode>
          <Country>USA</Country>
          <CountryCode>US</CountryCode>
        </Address>
        <Phone>3238903700</Phone>
        <Fax>3238903701</Fax>
        <Email>sales@rolandus.com</Email>
      </Location>
      <Location>
        <PartyId>NAMM000000123999*00002</PartyId>
        <PartyIdType>NAMM</PartyIdType>
        <Description>Shipping Receiving</Description>
        <Name>Roland Corporation U.S.</Name>
        <Address>
          <Attn />
          <Address1>4901 Alexander Street</Address1>
          <City>Los Angeles</City>
          <State>CA</State>
          <PostalCode>90040</PostalCode>
          <Country>USA</Country>
          <CountryCode>US</CountryCode>
        </Address>
        <Phone>3238903700</Phone>
        <Fax>3238903701</Fax>
        <Email>receiving@rolandus.com</Email>
      </Location>
    </Locations>
  </TradingPartner>
</NAMM_PARTY>

Item Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_ITEM version="2011.1">
  <Timestamp>2011-08-11T05:39:10.887</Timestamp>
  <Id>38A6C25A-2344-4343-B53D-B8706E1A37DA</Id>
  <SupplierId>0670716045609</SupplierId>
  <Items>
    <Item>
      <!--Accessory Example-->
      <SupplierItemId>405789012500</SupplierItemId>
      <SupplierModel>405789012500</SupplierModel>
      <SupplierItemDesc>XA-193 ADAPTER OSCILLATOR</SupplierItemDesc>
      <Kit>N</Kit>
      <Serialized>N</Serialized>
      <BrandName>GORK</BrandName>
      <CountryOrigin>CN</CountryOrigin>
      <Length>3.0000</Length>
      <Width>3.0000</Width>
      <Height>1.7500</Height>
      <DimUOM>IN</DimUOM>
      <Weight>0</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2001-12-13</AnnounceDate>
      <AvailableDate>2001-12-26</AvailableDate>
      <WarrantyPartTerm>90</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Condition>Refurb</Condition>
      <Barcodes>
        <Barcode>
          <ID>4959112030015</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP"
               Currency="USD">12.75</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>3.5000</Length>
          <Width>3.2500</Width>
          <Height>2.0000</Height>
          <DimUOM>IN</DimUOM>
          <Weight>0.7500</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>4959112030015</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
        <Container>
          <Type>Case Pack</Type>
          <Length>17.5000</Length>
          <Width>17.5000</Width>
          <Height>7.2500</Height>
          <DimUOM>IN</DimUOM>
          <Weight>45.000000000000</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>CS</UOM>
          <QtyPerUOM>60</QtyPerUOM>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>1011109520</PrimaryCategory>
        <SecondaryCategories>
          <Category>1011109530</Category>
        </SecondaryCategories>
        <Bullets />
        <Media>
          <Images>
            <Image Audience="Consumer"
                   View="Primary">
                   gork.com/media/prodimage.aspx?img=405012500</Image>
          </Images>
        </Media>
      </MarketingInfo>
      <Availability>
        <Available>YES</Available>
      </Availability>
    </Item>
    <Item>
      <!--Musical Instrument Keyboard Example-->
      <SupplierItemId>PA4XPRO</SupplierItemId>
      <SupplierModel>PA4XPRO</SupplierModel>
      <SupplierItemDesc>Top-Of-The-Line Professional
      Series</SupplierItemDesc>
      <Kit>N</Kit>
      <Serialized>Y</Serialized>
      <BrandName>GORK</BrandName>
      <CountryOrigin>IT</CountryOrigin>
      <Length>30.0000</Length>
      <Width>20.0000</Width>
      <Height>15.0000</Height>
      <DimUOM>IN</DimUOM>
      <Weight>30</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2008-01-17</AnnounceDate>
      <AvailableDate>2008-02-17</AvailableDate>
      <UnavailableDate>2012-01-05</UnavailableDate>
      <WarrantyPartTerm>365</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>4959112057029</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP"
               Currency="USD">4600.00</Price>
        <Price type="MAP"
               Currency="USD">4</Price>
        <Price type="Cost"
               Currency="USD"
               Qty="1">3</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>52.0000</Length>
          <Width>20.0000</Width>
          <Height>11.0000</Height>
          <DimUOM>IN</DimUOM>
          <Weight>54.5000</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>4959112057029</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>4018156706</PrimaryCategory>
        <ProductURL>www.gork.com/pas/pa4xpro</ProductURL>
        <ItemDescLong>The Pa4XPro has it all. The motorized
        TouchView display, phantom-powered XLR mic input, TC
        Helicon vocal processing and harmonies, assignable pads,
        expandable user sampling, MP3 recording and playback, hard
        drive, digital output, and 76 semi-weighted keys (velocity,
        aftertouch) attest to its professional edge. Video output
        displays MIDI scores and lyrics.</ItemDescLong>
        <Bullets>
          <Bullet>RX (Real eXperience) technology includes Defined
          Nuance Control and EDS Synthesis for great sound</Bullet>
          <Bullet>Style engine follows your voice-leading, chording
          and timing for instant, on-the-fly arrangements</Bullet>
          <Bullet>XDS Dual Song Player with crossfader;
          Multi-track, Backing, and Step sequencing; Pad
          Sequencing</Bullet>
          <Bullet>950+ Sounds; 64 Drumkits; 400+ Styles; 4 Stereo
          Multi-effects; 320 Performances, SongBook
          database</Bullet>
          <Bullet>Easy-to use motorized color TouchView display
          with easy and expert modes and contextual help
          screens</Bullet>
        </Bullets>
        <Keywords>
          <Keyword>61 Notes</Keyword>
          <Keyword>Keyboard</Keyword>
        </Keywords>
      </MarketingInfo>
    </Item>
    <Item>
      <!--Musical Instrument Guitar Example-->
      <SupplierItemId>G100ACE</SupplierItemId>
      <SupplierModel>G100ACE</SupplierModel>
      <SupplierItemDesc>G100 Stage Series Auditorium Cutaway
      Electric</SupplierItemDesc>
      <Kit>N</Kit>
      <Serialized>Y</Serialized>
      <BrandName>LAG</BrandName>
      <Length>50.0000</Length>
      <Width>20.0000</Width>
      <Height>10.0000</Height>
      <DimUOM>IN</DimUOM>
      <Weight>10</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2010-01-15</AnnounceDate>
      <AvailableDate>2010-02-15</AvailableDate>
      <WarrantyPartTerm>365</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>3700166330283</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP"
               Currency="USD">675.00</Price>
        <Price type="MAP"
               Currency="USD">4</Price>
        <Price type="Cost"
               Currency="USD"
               Qty="1">3</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>41.3300</Length>
          <Width>18.5000</Width>
          <Height>5.1100</Height>
          <DimUOM>IN</DimUOM>
          <Weight>6.3900</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>3700166330283</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
        <Container>
          <Type>Case Pack</Type>
          <Length>42.3200</Length>
          <Width>42.3200</Width>
          <Height>5.7000</Height>
          <DimUOM>IN</DimUOM>
          <Weight>12.780000000000</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>CS</UOM>
          <QtyPerUOM>2</QtyPerUOM>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>4025131110</PrimaryCategory>
        <ProductURL>
        gorkguitars.com/?page=fp&amp;np=14&amp;sg=1</ProductURL>
        <ItemDescLong>The Stage Range starts with the high-gloss
        G100 Series. Maple, mahogany, and black binding join the
        dark mahogany back and sides to the solid Red Cedar top and
        add character to the Occitan Cross rosette. The
        honey-mahogany neck features a comfortable French satin
        finish and a smooth Indonesian rosewood
        fingerboard.</ItemDescLong>
        <Bullets>
          <Bullet>High-gloss natural finish; Red Cedar top with
          dark mahogany back and sides</Bullet>
          <Bullet>Maple, mahogany, and black colored body binding
          &amp; Occitan Cross rosette pattern</Bullet>
          <Bullet>French satin-finished honey mahogany neck;
          Indonesian rosewood fingerboard</Bullet>
          <Bullet>StudioLuge electronic system; five
          expertly voiced EQ settings, volume control</Bullet>
          <Bullet>Flexible NanoFlex piezo pickup mounted in the
          bridge, under the saddle</Bullet>
        </Bullets>
      </MarketingInfo>
      <RelatedItems>
        <RelatedItem included="Y"
                     type="accessory">
          <SupplierItemId>D8B5518003B</SupplierItemId>
          <Barcode>
            <ID>1234567890123</ID>
            <Type>GTIN-13</Type>
          </Barcode>
        </RelatedItem>
        <RelatedItem included="N"
                     type="ThirdParty">
          <SupplierItemId>ProductX</SupplierItemId>
          <Barcode>
            <ID>1112345678911</ID>
            <Type>GTIN-13</Type>
          </Barcode>
        </RelatedItem>
      </RelatedItems>
    </Item>
    <Item>
      <!--Software Example-->
      <SupplierItemId>GLCDE</SupplierItemId>
      <SupplierModel>GLCDE</SupplierModel>
      <SupplierItemDesc>Digital Classics Reborn as Virtual
      Instruments</SupplierItemDesc>
      <Kit>N</Kit>
      <Serialized>Y</Serialized>
      <BrandName>GORK</BrandName>
      <CountryOrigin>JP</CountryOrigin>
      <Length>0.0000</Length>
      <Width>0.0000</Width>
      <Height>0.0000</Height>
      <DimUOM>IN</DimUOM>
      <Weight>0</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2005-09-13</AnnounceDate>
      <AvailableDate>2005-09-23</AvailableDate>
      <UnavailableDate>2010-11-10</UnavailableDate>
      <WarrantyPartTerm>365</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>4959112041301</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP"
               Currency="USD">199.00</Price>
        <Price type="MAP"
               Currency="USD">4</Price>
        <Price type="Cost"
               Currency="USD"
               Qty="1">3</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>10.5000</Length>
          <Width>7.7500</Width>
          <Height>1.7500</Height>
          <DimUOM>IN</DimUOM>
          <Weight>0.8800</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>4959112041301</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
        <Container>
          <Type>Case Pack</Type>
          <Length>16.0000</Length>
          <Width>16.0000</Width>
          <Height>11.5000</Height>
          <DimUOM>IN</DimUOM>
          <Weight>8.800000000000</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>CS</UOM>
          <QtyPerUOM>10</QtyPerUOM>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>5029115684</PrimaryCategory>
        <ProductURL>www.gork.com/software/glcde</ProductURL>
        <ItemDescLong>The classic sounds of the WAVESTATION and M1
        are reborn in Gork Legacy Collection Digital Edition.
        Gork's inside know-how providing results that are
        completely faithful to the originals - save the expanded
        polyphony. You can even load custom SysEx files created on
        the original M1 and WAVESTATION into the software
        emulation!</ItemDescLong>
        <Bullets>
          <Bullet>Software recreations of the M1 and WAVESTATION,
          with enhanced polyphony and programming</Bullet>
          <Bullet>Use as stand-alone programs, or as VST, AU or
          RTAS plug-ins; Mac and PC compatible</Bullet>
          <Bullet>MDE-X effects suite with 128 classic &amp;
          cutting edge effects</Bullet>
          <Bullet>M1 includes all 19 of the ROM cards, plus all the
          M1EX PCM and T Series libraries</Bullet>
          <Bullet>WAVESTATION includes the entire series Sounds,
          plus all 6 expansion cards</Bullet>
        </Bullets>
      </MarketingInfo>
    </Item>
    <Item>
      <!--Print Item Example-->
      <SupplierItemId>405012500</SupplierItemId>
      <SupplierModel>405012500</SupplierModel>
      <SupplierItemDesc>GORK PLAY GUITAR NOW! STARTER
      SERIES</SupplierItemDesc>
      <Kit>N</Kit>
      <Serialized>N</Serialized>
      <BrandName>GORK</BrandName>
      <CountryOrigin>CN</CountryOrigin>
      <Length>0.5000</Length>
      <Width>8.5000</Width>
      <Height>11.0000</Height>
      <DimUOM>IN</DimUOM>
      <Weight>0</Weight>
      <WeightUOM>LBS</WeightUOM>
      <AnnounceDate>2001-12-26</AnnounceDate>
      <AvailableDate>2001-01-26</AvailableDate>
      <EndOfProductionDate>2002-12-26</EndOfProductionDate>
      <ReplacementID>24352452435</ReplacementID>
      <WarrantyPartTerm>90</WarrantyPartTerm>
      <WarrantyPartUOM>Day</WarrantyPartUOM>
      <WarrantyLabTerm>0</WarrantyLabTerm>
      <WarrantyLabUOM>Day</WarrantyLabUOM>
      <Barcodes>
        <Barcode>
          <ID>4959112030015</ID>
          <Type>GTIN-13</Type>
        </Barcode>
        <Barcode>
          <ID>4959112030015</ID>
          <Type>GTIN-13</Type>
        </Barcode>
        <Barcode>
          <ID>4959112030015</ID>
          <Type>GTIN-13</Type>
        </Barcode>
      </Barcodes>
      <Pricing>
        <Price type="MSRP"
               Currency="USD">12.75</Price>
        <Price type="Cost"
               Currency="USD"
               Qty="1">3</Price>
      </Pricing>
      <Containers>
        <Container>
          <Type>Each</Type>
          <Length>3.5000</Length>
          <Width>3.2500</Width>
          <Height>2.0000</Height>
          <DimUOM>IN</DimUOM>
          <Weight>0.7500</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>EA</UOM>
          <QtyPerUOM>1</QtyPerUOM>
          <Barcodes>
            <Barcode>
              <ID>4959112030016</ID>
              <Type>GTIN-13</Type>
            </Barcode>
            <Barcode>
              <ID>4959112030017</ID>
              <Type>GTIN-13</Type>
            </Barcode>
            <Barcode>
              <ID>4959112030018</ID>
              <Type>GTIN-13</Type>
            </Barcode>
          </Barcodes>
        </Container>
        <Container>
          <Type>Case Pack</Type>
          <Length>17.5000</Length>
          <Width>17.5000</Width>
          <Height>7.2500</Height>
          <DimUOM>IN</DimUOM>
          <Weight>45.000000000000</Weight>
          <WeightUOM>LBS</WeightUOM>
          <UOM>CS</UOM>
          <QtyPerUOM>60</QtyPerUOM>
        </Container>
      </Containers>
      <MarketingInfo>
        <PrimaryCategory>1011109520</PrimaryCategory>
        <SecondaryCategories>
          <Category>1011109521</Category>
          <Category>1011109522</Category>
          <Category>1011109523</Category>
        </SecondaryCategories>
        <Bullets />
        <Media>
          <Images>
            <Image View="Front"
                   Caption="Look how cool this is"
                   CarouselSequence="1">
                   <a href="http://gork.com/images/x999_F.gif</Image>
" title="http://gork.com/images/x999_F.gif</Image>
">http://gork.com/images/x999_F.gif</Image>
</a>            <Image View="Back"
                   Caption="Easy to learn">
                   <a href="http://gork.com/images/x999_B.gif</Image>
" title="http://gork.com/images/x999_B.gif</Image>
">http://gork.com/images/x999_B.gif</Image>
</a>            <Image View="Left"
                   CarouselSequence="3">
                   <a href="http://gork.com/images/x999_L.gif</Image>
" title="http://gork.com/images/x999_L.gif</Image>
">http://gork.com/images/x999_L.gif</Image>
</a>            <Image View="Right">
                   <a href="http://gork.com/images/x999_T.gif</Image>
" title="http://gork.com/images/x999_T.gif</Image>
">http://gork.com/images/x999_T.gif</Image>
</a>            <Image View="Top">
                   <a href="http://gork.com/images/x999_T.gif</Image>
" title="http://gork.com/images/x999_T.gif</Image>
">http://gork.com/images/x999_T.gif</Image>
</a>            <Image View="Bottom"
                   CarouselSequence="2">
                   <a href="http://gork.com/images/x999_BT.gif</Image>
" title="http://gork.com/images/x999_BT.gif</Image>
">http://gork.com/images/x999_BT.gif</Image>
</a>            <Image>http://gork.com/images/x999_General.gif</Image>
          </Images>
        </Media>
      </MarketingInfo>
      <ExtendedAttributes>
        <Data Name="Author">Mel Bay IV</Data>
        <Data Name="Publisher">Awesome Press</Data>
        <Data Name="Pages">225</Data>
        <Data Name="Level" />
        <Data Name="Instrumentation" />
        <Data Name="Voicing" />
        <Data Name="Size" />
        <Data Name="Color" />
        <Data Name="Finish" />
        <Data Name="Contributors">
          <Contributor primary="true"
                       Contribution="ARTIST"
                       ContributorName="The Cheetah Girls"
                       ContributorNameReversed="Cheetah Girls, The" />
          <Contributor primary="false"
                       Contribution="COMPOSER"
                       ContributorName="Jamie Houston"
                       ContributorNameReversed="Houston, Jamie" />
        </Data>
        <Data Name="TOC">
          <Topic>
            <SuperTitle>Gork Presents...</SuperTitle>
            <Title>Play Guitar Now!</Title>
            <SubTitle>(or fairly soon)</SubTitle>
            <Credits>
              <Contributor primary="true"
                           Contribution="Chet Atkins"
                           ContributorName="As Performed By Johan de Meij"
                           ContributorNameReversed="de Meij, Johan As
                                                     Performed By" />
              <Contributor primary="false"
                           Contribution="Johan de Meij"
                           ContributorName="Music By Johan de Meij"
                           ContributorNameReversed="de Meij, Johan As
                                                     Performed By" />
              <Contributor primary="false"
                           Contribution="Paul Lavender"
                           ContributorName="Arranged By Paul Lavender ASCAP"
                           ContributorNameReversed="Lavender ASCAP, Paul
                                                         Arranged By" />
              <Contributor primary="false"
                           Contribution="Paul Simon"
                           ContributorName="Lyrics By Paul Simon"
                           ContributorNameReversed="Simon, Paul Lyrics By" />
            </Credits>
            <Copyright>
              <CopyrightLine>line 1</CopyrightLine>
              <CopyrightLine>line 2</CopyrightLine>
              <CopyrightLine>line 3</CopyrightLine>
              <CopyrightLine>line 4</CopyrightLine>
            </Copyright>
          </Topic>
        </Data>
      </ExtendedAttributes>
    </Item>
  </Items>
</NAMM_ITEM>

Functional Acknowledgement Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_FunctionalAcknowledgement version="2009.1">
  <Timestamp>2008-01-14T10:34:02</Timestamp>
  <Id>S2S3050_PO691630-1</Id>
  <Supplier>
    <PartyId>0761294001004</PartyId>
  </Supplier>
  <SoldTo>
    <PartyId>1100001001675</PartyId>
  </SoldTo>
  <StatusCode>C01</StatusCode>
  <StatusMessage>Received</StatusMessage>
</NAMM_FunctionalAcknowledgement>

Price Book Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_PRICEBOOK version="2011.0">
  <Id>S2S3050_PO691630</Id>
  <Timestamp>2011-07-19T08:23:30</Timestamp>
  <Supplier>
    <PartyId />
    <Name />
    <Address>
      <Address1 />
      <Address2 />
      <Address3 />
      <City />
      <State />
      <PostalCode />
      <Country />
      <CountryCode />
    </Address>
  </Supplier>
  <SoldTo>
    <PartyId />
    <Name />
    <Address>
      <Address1 />
      <Address2 />
      <Address3 />
      <City />
      <State />
      <PostalCode />
      <Country />
      <CountryCode />
    </Address>
  </SoldTo>
  <Items>
    <Item EffectiveDate="2011-07-19T08:23:30">
      <BarCodeId>761294084991</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <SupplierItemId>FantomX6</SupplierItemId>
      <Levels>
        <Level>
          <Price Currency="USD"
                 type="Cost">100.00</Price>
          <LevelMin>1</LevelMin>
          <LevelMax>10</LevelMax>
          <LevelUOM type="Item">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">90.00</Price>
          <LevelMin>11</LevelMin>
          <LevelMax>20</LevelMax>
          <LevelUOM type="Item">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">80.00</Price>
          <LevelMin>21</LevelMin>
          <LevelMax>30</LevelMax>
          <LevelUOM type="Item">EA</LevelUOM>
        </Level>
      </Levels>
    </Item>
    <Item EffectiveDate="2011-07-19T08:23:30">
      <BarCodeId>761294084974</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <SupplierItemId>PhantomEx6</SupplierItemId>
      <Levels>
        <Level>
          <Price Currency="USD"
                 type="Cost">100.00</Price>
          <LevelMin>1</LevelMin>
          <LevelMax>1000</LevelMax>
          <LevelUOM type="Order">USD</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">90.00</Price>
          <LevelMin>1001</LevelMin>
          <LevelMax>5000</LevelMax>
          <LevelUOM type="Order">USD</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">80.00</Price>
          <LevelMin>5001</LevelMin>
          <LevelMax>10001</LevelMax>
          <LevelUOM type="Order">USD</LevelUOM>
        </Level>
      </Levels>
    </Item>
    <Item EffectiveDate="2011-07-19T08:23:30">
      <BarCodeId>761294084821</BarCodeId>
      <BarCodeType>GTIN-12</BarCodeType>
      <SupplierItemId>Fantom TShirt</SupplierItemId>
      <Levels>
        <Level>
          <Price Currency="USD"
                 type="Cost">10.00</Price>
          <LevelMin>1</LevelMin>
          <LevelMax>10</LevelMax>
          <LevelUOM type="Family">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">9.00</Price>
          <LevelMin>11</LevelMin>
          <LevelMax>20</LevelMax>
          <LevelUOM type="Family">EA</LevelUOM>
        </Level>
        <Level>
          <Price Currency="USD"
                 type="Cost">8.00</Price>
          <LevelMin>21</LevelMin>
          <LevelMax>30</LevelMax>
          <LevelUOM type="Family">EA</LevelUOM>
        </Level>
      </Levels>
    </Item>
  </Items>
</NAMM_PRICEBOOK> 

Purchase Order Example

<?xml version="1.0" encoding="UTF-8"?>
<NAMM_PO version="2009.2">
  <Id>S2S3050_PO691630</Id>
  <Timestamp>2008-12-25T08:23:30</Timestamp>
  <POHeader>
    <SoldTo>
        <PartyId>1100001001675</PartyId>
        <Name>Joe's Music Store</Name>
        <Address>
            <Attn>Joe Owner</Attn>
            <Address1>321 Main Street</Address1>
            <City>Music City</City>
            <State>NY</State>
            <PostalCode>12345</PostalCode>
            <Country>USA</Country>
            <CountryCode>US</CountryCode>
        </Address>
    </SoldTo>
    <BillTo>
        <PartyId>1100001001675</PartyId>
        <Name>Joe's Music Store</Name>
        <Address>
            <Attn>Joe Owner</Attn>
            <Address1>321 Main Street</Address1>
            <City>Music City</City>
            <State>NY</State>
            <PostalCode>12345</PostalCode>
            <Country>USA</Country>
            <CountryCode>US</CountryCode>
        </Address>
    </BillTo>
    <BuyerOrderId>123456</BuyerOrderId>
    <Supplier>
        <PartyId>0761294001004</PartyId>
        <Name>Roland Corporation US</Name>
        <Address>
          <Address1>5100 S. Eastern Ave.</Address1>
          <City>Los Angeles</City>
          <State>CA</State>
          <PostalCode>90040</PostalCode>
          <Country>USA</Country>
          <CountryCode>US</CountryCode>
        </Address>
    </Supplier>
    <TermsCode>P024</TermsCode>
    <TermsDays>30</TermsDays>
    <TermsDate>2008-12-21</TermsDate>
    <TermsPercent>1.5</TermsPercent>
    <TermsPercentDays>10</TermsPercentDays>
    <ShipInstructions>Fragile shipment</ShipInstructions>
    <TranspCode>S001</TranspCode>
    <TranspDesc>UPS/Ground</TranspDesc>
    <TranspCarrier>UPS</TranspCarrier>
    <TranspTime>10</TranspTime>
    <IncoTermsCode>FOB</IncoTermsCode>
    <IncoTermsDesc>Free On Board</IncoTermsDesc>
    <POComments>This is an example Purchase Order</POComments>
    <DateOrdered>2008-12-14</DateOrdered>
    <DateBeginShip>2008-12-14</DateBeginShip>
    <DateEndShip>2009-01-31</DateEndShip>
    <DateCancel>2009-01-31</DateCancel>
    <Backorder>Y</Backorder>
    <BuyerName>Joe Buyer</BuyerName>
    <PORevisionNumber>0</PORevisionNumber>
    <POStatusIndicator>N</POStatusIndicator>
    <ASNRequirement>Y</ASNRequirement>
    <POFileType>P</POFileType>
    <ShipTo>
        <PartyId>1100001001675</PartyId>
        <Name>Joe's Music Store</Name>
        <Address>
            <Attn>Joe Owner</Attn>
            <Address1>321 Main Street</Address1>
            <City>Music City</City>
            <State>NY</State>
            <PostalCode>12345</PostalCode>
            <Country>USA</Country>
            <CountryCode>US</CountryCode>
        </Address>
    </ShipTo>
  </POHeader>
  <PODetail>
    <Items>
      <Item>
        <POLineNbr>1</POLineNbr>
        <BuyerItemId>FX6</BuyerItemId>
        <BuyerItemDesc>Workstation Keyboard</BuyerItemDesc>
        <Qty>4</Qty>
        <QtyUOM>EA</QtyUOM>
        <UCValue>1437</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <RetailValue>2395</RetailValue>
        <RetailCurrencyCode>USD</RetailCurrencyCode>
        <SupplierItemId>FantomX6</SupplierItemId>
        <BarCodeId>761294084991</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
      <Item>
        <POLineNbr>2</POLineNbr>
        <BuyerItemId>SD1Roland</BuyerItemId>
        <BuyerItemDesc>Super Overdrive</BuyerItemDesc>
        <Qty>12</Qty>
        <QtyUOM>EA</QtyUOM>
        <UCValue>39.95</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <RetailValue>97.50</RetailValue>
        <RetailCurrencyCode>USD</RetailCurrencyCode>
        <SupplierItemId>SD1C</SupplierItemId>
        <BarCodeId>761294008508</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
      <Item>
        <POLineNbr>3</POLineNbr>
        <BuyerItemId>FXBook</BuyerItemId>
        <BuyerItemDesc>Fantom X Hidden Manual</BuyerItemDesc>
        <Qty>20</Qty>
        <QtyUOM>EA</QtyUOM>
        <UCValue>9.98</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <RetailValue>19.95</RetailValue>
        <RetailCurrencyCode>USD</RetailCurrencyCode>
        <SupplierItemId>FantomXBook</SupplierItemId>
        <BarCodeId>761294001233</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
    </Items>
  </PODetail>
</NAMM_PO>

PO Status Request Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_POStatusRequest version="2011.0">
  <Timestamp>2011-07-19T10:34:02</Timestamp>
  <Id>S2S3050_PO691630-1</Id>
  <Supplier>
    <PartyId>0761294001004</PartyId>
  </Supplier>
  <SoldTo>
    <PartyId>1100001001675</PartyId>
  </SoldTo>
  <BuyerOrderIds>
    <BuyerOrderId>123456</BuyerOrderId>
    <BuyerOrderId>987654</BuyerOrderId>
    <BuyerOrderId>654321</BuyerOrderId>
  </BuyerOrderIds>
</NAMM_POStatusRequest> 

PO Status / Det Ack Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_POStatus version="2011.0">
  <Id>DocumentIDNumber</Id>
  <POStatusRequestId>123456ZZZZ</POStatusRequestId>
  <Timestamp>2011-01-15T08:58:23</Timestamp>
  <BuyerOrderId>432543</BuyerOrderId>
  <DateOrdered>2011-01-15</DateOrdered>
  <BuyerName>Joe Schmoe</BuyerName>
  <Supplier>
    <PartyId>123456789012</PartyId>
    <Name>Korg Inc.</Name>
    <Address>
      <Attn />
      <Address1>123 N Main St</Address1>
      <Address2 />
      <Address3 />
      <City>Anytown</City>
      <State>NY</State>
      <PostalCode>10011</PostalCode>
      <Country>United States</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </Supplier>
  <SoldTo>
    <PartyId>987654321012</PartyId>
    <Name>Joe's Music Company</Name>
    <Address>
      <Attn />
      <Address1>321 S Second St</Address1>
      <Address2 />
      <Address3 />
      <City>MyTown</City>
      <State>CA</State>
      <PostalCode>90456</PostalCode>
      <Country>United States</Country>
      <CountryCode>US</CountryCode>
    </Address>
  </SoldTo>
  <StatusCode>Modified</StatusCode>
  <PaymentTerms>
    <StatusCode>0</StatusCode>
    <StatusMessage />
    <TermsCode />
    <TermsPercent />
  </PaymentTerms>
  <ShipmentTerms>
    <StatusCode>0</StatusCode>
  </ShipmentTerms>
  <Items>
    <Item>
      <POLineNbr>1</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Accepted</StatusCode>
      <ShipDate type="Estimated">2011-11-18</ShipDate>
      <SupplierOrderId>123456789123456789</SupplierOrderId>
    </Item>
    <Item>
      <POLineNbr>2</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Rejected</StatusCode>
      <StatusMessage>Discontinued</StatusMessage>
      <SupplierOrderId>123456789123456789</SupplierOrderId>
    </Item>
    <Item>
      <POLineNbr>3</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Modified</StatusCode>
      <Qty>25</Qty>
      <UCValue>149.94</UCValue>
      <ShipDate type="Actual">2011-07-07</ShipDate>
      <SupplierOrderId>123456789123456789</SupplierOrderId>
    </Item>
    <Item>
      <POLineNbr>3</POLineNbr>
      <SequenceNbr>2</SequenceNbr>
      <StatusCode>Modified</StatusCode>
      <StatusMessage>Backordered</StatusMessage>
      <Qty>25</Qty>
      <UCValue>149.94</UCValue>
      <ShipDate type="Estimated">2011-03-01</ShipDate>
      <SupplierOrderId>123456789123456789-2</SupplierOrderId>
    </Item>
    <Item>
      <POLineNbr>4</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Modified</StatusCode>
      <RetailValue>24.95</RetailValue>
      <UCValue>12.50</UCValue>
      <SupplierOrderId>123456789123456789</SupplierOrderId>
    </Item>
    <Item>
      <POLineNbr>5</POLineNbr>
      <SequenceNbr>1</SequenceNbr>
      <StatusCode>Modified</StatusCode>
      <StatusMessage>Backordered</StatusMessage>
      <EstimatedShipDate>2011-05-01</EstimatedShipDate>
      <SupplierOrderId>123456789123456789</SupplierOrderId>
    </Item>
  </Items>
</NAMM_POStatus>

Advanced Shipping Notice Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_ASN version="2009.2">
  <Id>S2S3050_PO691634</Id>
  <Timestamp>2008-01-15T07:34:00</Timestamp>
  <ShipmentHeader>
    <ShipmentId>345678</ShipmentId>
    <Shipped>2008-01-15</Shipped>
    <EstDeliver>2008-01-22</EstDeliver>
    <Supplier>
      <PartyId>0761294001004</PartyId>
      <Name>Ladron Corporation</Name>
      <Address>
        <Address1>9900 S. Western Ave.</Address1>
        <City>Los Angeles</City>
        <State>CA</State>
        <PostalCode>90040</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </Supplier>
    <ShipFrom>
      <PartyId>0761294001004</PartyId>
      <Name>Ladron Corporation</Name>
      <Address>
        <Address1>9900 S. Western Ave.</Address1>
        <City>Los Angeles</City>
        <State>CA</State>
        <PostalCode>90040</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </ShipFrom>
    <ShipmentRefs>
      <PRONbr>SFO-123456</PRONbr>
    </ShipmentRefs>
    <ShipmentQty>
      <ContainerQty>5</ContainerQty>
      <ShipmentItemQty>36</ShipmentItemQty>
    </ShipmentQty>
    <TranspCode>S001</TranspCode>
    <TranspDesc>UPS Ground</TranspDesc>
    <SoldTo>
      <PartyId>1100001001675</PartyId>
      <Name>Joe's Music Store</Name>
      <Address>
        <Attn>Joe Owner</Attn>
        <Address1>321 Main Street</Address1>
        <City>Music City</City>
        <State>NY</State>
        <PostalCode>12345</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </SoldTo>
    <ShipTo>
      <PartyId>1100001001675</PartyId>
      <Name>Joe's Music Store</Name>
      <Address>
        <Attn>Joe Owner</Attn>
        <Address1>321 Main Street</Address1>
        <City>Music City</City>
        <State>NY</State>
        <PostalCode>12345</PostalCode>
        <Country>USA</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </ShipTo>
  </ShipmentHeader>
  <Orders>
    <Order>
      <BuyerOrderId>345678</BuyerOrderId>
      <Containers>
        <Container>
          <ContainerId>345678-1</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>40761294008508</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>SD1Ladron</BuyerItemId>
              <SupplierItemId>SD1C</SupplierItemId>
            </ItemId>
            <POLineNbr>1</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
        <Container>
          <ContainerId>345678-2</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>761294084991</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>FX6</BuyerItemId>
              <SupplierItemId>OperaX6</SupplierItemId>
            </ItemId>
            <POLineNbr>2</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
        <Container>
          <ContainerId>345678-3</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>761294084991</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>FX6</BuyerItemId>
              <SupplierItemId>OperaX6</SupplierItemId>
            </ItemId>
            <POLineNbr>3</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
        <Container>
          <ContainerId>345678-4</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>761294084991</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>FX6</BuyerItemId>
              <SupplierItemId>OperaX6</SupplierItemId>
            </ItemId>
            <POLineNbr>4</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
        <Container>
          <ContainerId>345678-5</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>761294084991</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>FX6</BuyerItemId>
              <SupplierItemId>OperaX6</SupplierItemId>
            </ItemId>
            <POLineNbr>5</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>EA</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
        <Container>
          <ContainerId>345678-6</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>761294084991</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>FXBook</BuyerItemId>
              <SupplierItemId>OperaXBook</SupplierItemId>
            </ItemId>
            <POLineNbr>6</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>CTN</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
        <Container>
          <ContainerId>345678-7</ContainerId>
          <Item>
            <ItemId>
              <BarCodeId>761294084991</BarCodeId>
              <BarCodeType>GTIN-12</BarCodeType>
              <BuyerItemId>FXBook</BuyerItemId>
              <SupplierItemId>OperaXBook</SupplierItemId>
            </ItemId>
            <POLineNbr>7</POLineNbr>
            <ItemQty>
              <Qty>1</Qty>
              <ItemUOMCode>CTN</ItemUOMCode>
            </ItemQty>
          </Item>
        </Container>
      </Containers>
    </Order>
  </Orders>
</NAMM_ASN>

Invoice Example

<?xml version="1.0" encoding="utf-8"?>
<NAMM_Invoice version="2009.2">
  <InvoiceHeader>
    <Id>S2S3050_PO691634</Id>
    <Timestamp>2008-01-15T08:34:00</Timestamp>
    <SoldTo>
      <PartyId>1100001001675</PartyId>
      <Name>Joe's Music Store</Name>
    </SoldTo>
    <InvoiceId>12345678</InvoiceId>
    <InvoiceType>D</InvoiceType>
    <Supplier>
      <PartyId>0761294001004</PartyId>
      <Name>Roland Corporation U.S.</Name>
      <Address>
        <Address1>5100 S Eastern Ave</Address1>
        <City>Los Angeles</City>
        <State>CA</State>
        <PostalCode>90040</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </Supplier>
    <RemitTo>
      <PartyId>0761294001004</PartyId>
      <Name>Roland Corporation U.S.</Name>
      <Address>
        <Attn>Accounts Receivable</Attn>
        <Address1>5100 S Eastern Ave</Address1>
        <City>Los Angeles</City>
        <State>CA</State>
        <PostalCode>90040</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </RemitTo>
    <BillTo>
      <PartyId>1100001001675</PartyId>
      <Name>Joe's Music Store</Name>
      <Address>
        <Attn>Accounts Payable</Attn>
        <Address1>Box 123</Address1>
        <City>Music City</City>
        <State>NY</State>
        <PostalCode>12345</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </BillTo>
    <ShipTo>
      <PartyId>1100001001676</PartyId>
      <Name>Joe's Music Store</Name>
      <Address>
        <Attn>Receiving Department</Attn>
        <Address1>321 Main Street</Address1>
        <City>Music City</City>
        <State>NY</State>
        <PostalCode>12345</PostalCode>
        <Country>United States</Country>
        <CountryCode>US</CountryCode>
      </Address>
    </ShipTo>
    <TermsCode>P014</TermsCode>
    <TranspCode>S001</TranspCode>
    <InvoiceDate>2008-01-15</InvoiceDate>
    <InvoiceDueDate>2008-02-14</InvoiceDueDate>
    <BuyerName>Joe Buyer</BuyerName>
    <SalesRep>Richard Rep</SalesRep>
  </InvoiceHeader>
  <InvoiceSummary>
    <TotalItemLines>3</TotalItemLines>
    <TotalItemQty>7</TotalItemQty>
    <LineTotal>6626.40</LineTotal>
    <FreightTotal>50.00</FreightTotal>
    <SalesTax>123.45</SalesTax>
    <MiscCharge>0.00</MiscCharge>
    <InvoiceTotal>6676.40</InvoiceTotal>
  </InvoiceSummary>
  <InvoiceDetail>
    <Items>
      <Item>
        <BuyerOrderId>123456</BuyerOrderId>
        <SupplierOrderId>123456</SupplierOrderId>
        <InvoiceLineNbr>1</InvoiceLineNbr>
        <POLineNbr>2</POLineNbr>
        <BuyerItemId>SD1Roland</BuyerItemId>
        <Qty>1</Qty>
        <QtyUOM>CTN</QtyUOM>
        <UCValue>479.40</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <ExtendedCostValue>479.40</ExtendedCostValue>
        <ExtendedCurrencyCode>USD</ExtendedCurrencyCode>
        <SupplierItemId>SD1</SupplierItemId>
        <SupplierItemDesc>Roland SD1</SupplierItemDesc>
        <PackListNbr>345678</PackListNbr>
        <ShipmentIds>
          <ShipmentId>345678</ShipmentId>
        </ShipmentIds>
        <DateShipped>2008-01-15</DateShipped>
        <BarCodeId>761294008508</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
      <Item>
        <BuyerOrderId>123456</BuyerOrderId>
        <SupplierOrderId>123456</SupplierOrderId>
        <InvoiceLineNbr>2</InvoiceLineNbr>
        <POLineNbr>1</POLineNbr>
        <BuyerItemId>FX6</BuyerItemId>
        <Qty>4</Qty>
        <QtyUOM>EA</QtyUOM>
        <UCValue>1437.00</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <ExtendedCostValue>5748.00</ExtendedCostValue>
        <ExtendedCurrencyCode>USD</ExtendedCurrencyCode>
        <SupplierItemId>FantomX6</SupplierItemId>
        <SupplierItemDesc>Fantom X6 Keyboard</SupplierItemDesc>
        <PackListNbr>345678</PackListNbr>
        <ShipmentIds>
          <ShipmentId>345678</ShipmentId>
        </ShipmentIds>
        <DateShipped>2008-01-15</DateShipped>
        <BarCodeId>761294084991</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
      <Item>
        <BuyerOrderId>123456</BuyerOrderId>
        <SupplierOrderId>123456</SupplierOrderId>
        <InvoiceLineNbr>3</InvoiceLineNbr>
        <POLineNbr>3</POLineNbr>
        <BuyerItemId>FXBook</BuyerItemId>
        <Qty>2</Qty>
        <QtyUOM>CTN</QtyUOM>
        <UCValue>199.50</UCValue>
        <UCCurrencyCode>USD</UCCurrencyCode>
        <ExtendedCostValue>399.00</ExtendedCostValue>
        <ExtendedCurrencyCode>USD</ExtendedCurrencyCode>
        <SupplierItemId>FantomXBook</SupplierItemId>
        <SupplierItemDesc>Fantom X Hidden
        Secrets</SupplierItemDesc>
        <PackListNbr>345678</PackListNbr>
        <ShipmentIds>
          <ShipmentId>345678</ShipmentId>
        </ShipmentIds>
        <DateShipped>2008-01-15</DateShipped>
        <BarCodeId>761294001233</BarCodeId>
        <BarCodeType>GTIN-12</BarCodeType>
      </Item>
    </Items>
  </InvoiceDetail>
</NAMM_Invoice>

Codes Tables

Terms Codes

The terms codes reproduced below are used in the Purchase Order and Invoice documents. Further information about the International Chamber of Commerce terms codes (Incoterms) may be found at

http://www.iccwbo.org/incoterms/id3040/index.html

Terms Code

Terms Percent

Terms Percent Days

Terms Days

Description (No Node)

P001

0

 

30D

NET 30 DAYS

P002

0

 

45D

NET 45

P003

0

 

60D

NET 60

P004

0

 

90D

NET 90

P005

0

 

0D

COD

P006

0

 

0D

PREPAID CHECK

P007

0

 

45D

CREDIT CARD

P008

0

 

10D

NET 10

P009

0

 

15D

NET 15

P010

0

 

20D

NET 20

P011

1

10D

30D

1% 10/NET 30

P012

2

10D

30D

2% 10/NET 30

P013

2

15D

30D

2% 15/NET 30

P014

2

20D

30D

2% 20/NET 30

P015

3

10D

30D

3% 10/NET 30

P016

3

21D

30D

3% 21/NET 30

P017

5

20D

30D

5% 20/NET 30

P018

3

30D

31D

3% 30/NET 31

P019

5

30D

31D

5% 30/NET 31

P020

10

30D

31D

10% 30/NET 31

P021

0

 

90D

3 EQUAL PAYMENTS

P022

2

27D

30D

2% 27/NET 30

P023

1

20D

30D

1% 20/NET 30

P024

1.5

20D

30D

1.5% 20/NET 30

P025

3

14D

30D

3% 14/NET 30

P026

2

30D

31D

2% 30/NET 31

P027

1

15D

30D

1% 15/NET 30

P028

1.2

30D

60D

1.2% 30/NET 60

P998

 

 

 

USE DISCOUNT AND DAYS NODES

P999

 

 

 

USE CUSTOMER DEFAULT

Inco Terms Codes

The International Chamber of Commerce (Inco) shipping terms codes reproduced below are used in the Invoice and Purchase Order documents.

Code

Description

Group E: Departure

adsf

EXW

EX Works

Group F: Main carriage unpaid

adsf

FCA

Free Carrier

FAS

Free Alongside Ship

FOB

Free On Board

Group C: Main carriage paid

adsf

CFR

Cost and Freight

CIF

Cost, Insurance and Freight

CPT

Carriage Paid To

CIP

Carriage and Insurance Paid to

Group D: Arrival

adf

DAF

Delivered At Frontier

DES

Delivered Ex Ship

DEQ

Delivered Ex Quay

DDU

Delivered Duty Unpaid

DDP

Delivered Duty Paid

Shipping Codes

The shipping codes reproduced below are used in the Purchase Order and Advanced Shipping Notification documents.

Code

Description

Carrier

Time

S001

UPS/Ground

UPS

Ground

S002

UPS/Next Day Air

UPS

1DayAM

S003

UPS/2nd Day Air

UPS

2Day

S004

UPS/3-Day Select

UPS

3Day

S021

FedEx Ground

FedEx

Ground

S005

FedEx/Next Day Air

FedEx

1DayPM

S006

FedEx/2nd Day Air

FedEx

2Day

S007

FedEx/Next Day Priority Air

FedEx

1DayAM

S008

FedEx/2nd Day Priority Air

FedEx

2Day

S022

FedEx Freight

FedEx

LTL

S024

FEDX/3-Day

FedEx

3Day

S009

Will Call

 

 

S010

Drop Ship/Misc Carrier

 

 

S023

Drop-Ship UPS/Ground Residential

UPS

GroundResidential

S011

Drop-Ship UPS/Ground

UPS

Ground

S012

Drop-Ship UPS/Next Day Air

UPS

1DayAM

S013

Drop-Ship UPS/2nd Day Air

UPS

2Day

S014

Drop-Ship UPS/3 Day Select

UPS

3Day

S015

Drop-Ship FEDX/Next Day Air

FedEx

1DayPM

S016

Drop-Ship FEDX/2nd Day Air

FedEx

2Day

S017

Drop-Ship FEDX/Nxt Day Priority Air

FedEx

1DayAM

S018

Drop-Ship FEDX/2nd Day Priority Air

FedEx

2Day

S019

Drop-Ship FEDX/3-Day

FedEx

3Day

S020

Misc Carrier/Include Remarks

 

 

S031

international AIR shipments

 

 

S032

international LTL shipments

 

 

S033

international OCEAN shipments

 

 

S034

international SMALL PACKAGE shipments

 

 

S035

international TRUCKLOAD shipments

 

 

S998

Use Carrier and Time Codes

 

 

S999

Use Customer Default (Bestway)

 

 

Status Codes

The status codes reproduced below are used in the Functional Acknowledgement document.

Status Code

Description

C01

Received

C02

Error

Unit of Measurement (UOM) Codes

The UOM codes reproduced below are used in the Advanced Shipment Notice, Invoice, Item, and Purchase Order documents.

Code

Description

BAG

Bag

BKT

Bucket

BND

Bundle

BOWL

Bowl

BX

Box

CRD

Card

CM

Centimeters

CS

Case

CTN

Carton

DZ

Dozen

EA

Each

FT

Foot

GAL

Gallon

GROSS

Gross

IN

Inches

KIT

Kit

LOT

Lot

PC

Piece

PK

Pack

PK100

Pack 100

PK50

Pack 50

PR

Pair

RACK

Rack

RL

Roll

SET

Set

SET3

Set of 3

SET4

Set of 4

SET5

Set of 5

SGL

Single

SHT

Sheet

SQFT

Square ft

TUBE

Tube

YD

Yard

Product Category Codes

NAMM maintains a comprehensive list of musical product categories, including category descriptions, level paths, unique code numbers, and inactive dates, for use with the B2B documents. Although the full list of well over 700 categories is too lengthy to publish in this guide, a small sample is shown below.

Code

Level Path

Custom Category Description

Inactive Date

. . .

. . .

. . .

. . .

1011109364

Accessories >> Audio >> Cables/Connectors >> Jacks, Plugs, Connectors

Jacks, Plugs & Connectors

 

1011109520

Accessories >> Audio >> Cables/Connectors >> Power Cables and Cords

Power Cables

 

1011159122

Accessories >> Audio >> Parts >> Amplifier Hardware

Amplifier Parts & Hardware

 

1011159576

Accessories >> Audio >> Parts >> Speakers - Components

Speaker Parts

 

1011167158

Accessories >> Audio >> Power >> Batteries

Batteries

 

. . .

. . .

. . .

. . .

The full list is available online as an HTML page at

http://b2b.namm.net/ItemCategory/Public/ViewCategoryList.aspx

On this page, the list is sortable by column value; click a column header to sort in ascending order, click again to sort in descending order.

The full list is also available online as an XML stream at

http://b2b.namm.net/ItemCategory/XMLCategoryList

On this page, right-click and choose "View Source" to see the full XML source code.

Links to the two pages listed above may be found at http://b2b.namm.net/ItemCategory/Public/

Alphabetical Tag Listing

Any given XML element in the NAMM B2B standard might appear in multiple documents, making consistent element definition, validation, and use across documents critical. It is therefore useful to be able to determine, for any given tag, the documents and context in which it appears.

Below is an alphabetical list of all XML elements used in the B2B standard documents, the documents in which they appear, their data types, lengths, and any pertinent notes about content, range, source, or values.

Document name abbreviations used in the “Appears In” column are:

  • AS = Advanced Shipment Notice

  • FA = Functional Acknowledgement

  • IN = Invoice

  • IT = Item

  • PB = Price Book

  • PO = Purchase Order

  • PR = Purchase Order Status Request

  • PS = Purchase Order Status

  • PY = Party

  • ST = Sell Through

Data type abbreviations used in the “Type” column are:

  • C = Complex/Container

  • D = Date

  • F = Flag (Y/N, C/D, etc.)

  • I = Integer

  • N = Numeric (decimal)

  • S = String

  • U = URL/URI

Tag

Appears In

Type

Len

Notes

<Address>

AS IN PB PO PS PY ST

C

-

 

<Address1>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<Address2>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<Address3>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<AnnounceDate>

IT

D

10

ISO format: YYYY-MM-DD

<ASNRequirement>

PO

F

1

“Y” or “N”

<Attn>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<Audio>

IT

U

 

Audio URL

<Audios>

IT

C

-

 

<Availability>

IT

C

-

 

<Available>

IT

S

 

"YES", "NO", "LOW", "MEDIUM", or "HIGH"

<AvailableDate>

IT

D

10

ISO format: YYYY-MM-DD

<Backorder>

PO

F

1

“Y” or “N”

<Barcode>

IT

C

-

 

<BarCodeId>

AS IN PB PO ST

S

14

GTIN-12 (UPC), GTIN-13 (EAN/JAN), GTIN-14 (GTIN-14), or Vendor Part Number

<Barcodes>

IT

C

-

 

<BarCodeType>

AS IN PB PO ST

S

10

“GTIN-12”, “GTIN-13”, “GTIN-14”, or “PartNumber”

<BillTo>

IN PO

C

-

 

<BrandName>

IT

S

50

Item brand name

<Bullet>

IT

S

 

Item bullet point

<Bullets>

IT

C

-

 

<BuyerItemDesc>

AS PO

S

50

Buyer’s item description

<BuyerItemId>

AS IN PO ST

S

25

Buyer’s item ID

<BuyerName>

IN PO PS

S

35

Buyer company name

<BuyerOrderId>

AS IN PO PR PS

S

25

Buyer’s order ID

<BuyerOrderIds>

PR

C

-

 

<Category>

IT

S

 

Item category

<City>

AS IN PB PO PS PY ST

S

30

Based on UPS fields

<Comments>

IN

S

250

Comments

<Condition>

IT

S

 

Item condition

<ConfNbr>

AS

S

25

Confirmation number

<Container>

AS IT

C

-

 

<ContainerId>

AS

S

25

Container ID

<ContainerQty>

AS

I

6

6 digits, as 999999

<Containers>

AS IT

C

-

 

<Contributor>

IT

S

 

Item contributor

<Copyright>

IT

C

-

 

<CopyrightLine>

IT

S

 

Copyright line (text)

<Country>

AS IN PB PO PS PY ST

S

50

Country name

<CountryCode>

AS IN PB PO PS PY ST

S

2

ISO standard

<CountryOrigin>

IT

S

50

Item country of origin

<Credits>

IT

C

-

 

<Data>

IT

C

-

 

<DateBeginShip>

PO

D

10

ISO format: YYYY-MM-DD

<DateCancel>

PO

D

10

ISO format: YYYY-MM-DD

<DateEndShip>

PO

D

10

ISO format: YYYY-MM-DD

<DateOrdered>

PO PS

D

10

ISO format: YYYY-MM-DD

<DateShipped>

IN

D

10

ISO format: YYYY-MM-DD

<DBA>

PY

S

35

Doing Business As name

<Description>

PY

S

 

Partner location description

<DimUOM>

IT

S

5

From UOM table

<Document>

IT

U

 

Document URL

<Documents>

IT

C

-

 

<Email>

PY

S

100

Email address

<EndDate>

PY ST

D

10

ISO format: YYYY-MM-DD

<EndOfProductionDate>

IT

D

10

ISO format: YYYY-MM-DD

<EstDeliver>

AS

D

10

ISO format: YYYY-MM-DD

<EstimatedShipDate>

PS

D

10

ISO format: YYYY-MM-DD

<ExtendedAttributes>

IT

C

-

 

<ExtendedCostValue>

IN

N

10

5.4, as 12345.6789

<ExtendedCurrencyCode>

IN

S

3

ISO standard currency code

<Fax>

PY

S

24

Fax number

<FreightTotal>

IN

N

10

5.4, as 12345.6789

<Height>

IT

N

10

5.4, as 12345.6789

<ICQtyPerUOM>

AS PO

N

10

5.4, as 12345.6789

<ICUOM>

AS PO

S

5

From UOM table

<Id>

AS FA IN IT PB PO PR PS ST

S

50

Unique document ID

<Image>

IT

U

256

Image URL

<Images>

IT

C

-

 

<IncoTermsCode>

IN PO

S

3

From Inco Terms table

<IncoTermsDesc>

IN PO

S

35

From Inco Terms table

<InvoiceDate>

IN

D

10

ISO format: YYYY-MM-DD

<InvoiceDetail>

IN

C

-

 

<InvoiceDueDate>

IN

D

10

ISO format: YYYY-MM-DD

<InvoiceHeader>

IN

C

-

 

<InvoiceId>

IN

S

32

 

<InvoiceLineNbr>

IN

I

6

6 digits, as 999999

<InvoiceSummary>

IN

C

-

 

<InvoiceTotal>

IN

N

10

5.4, as 12345.6789

<InvoiceType>

IN

F

1

“C” or “D” (Credit/Debit invoice)

<Item>

AS IN IT PB PO PS ST

C

-

 

<ItemAttrs>

AS

C

-

 

<ItemDescLong>

IT

S

 

Long item description

<ItemFamily>

IT

S

 

Item family

<ItemId>

AS

C

-

 

<ItemQty>

AS

C

-

 

<Items>

IN IT PB PO PS ST

C

-

 

<ItemUOMCode>

AS

S

5

From UOM table

<ItemUOMDesc>

AS

S

15

From UOM table

<Keyword>

IT

S

 

Item keyword

<Keywords>

IT

C

-

 

<Kit>

IT

F

1

“Y” or “N”

<Length>

IT

N

10

5.4, as 12345.6789

<Level>

PB

C

-

 

<LevelMax>

PB

I

 

Level maximum

<LevelMin>

PB

I

 

Level minimum

<Levels>

PB

C

-

 

<LevelUOM>

PB

S

 

From UOM table

<LineTotal>

IN

N

10

5.4, as 12345.6789

<Location>

PY ST

C

-

 

<Locations>

PY ST

C

-

 

<MarketingInfo>

IT

C

-

 

<MasterBOL>

AS

S

25

Master Bill Of Lading ID

<MCQtyPerUOM>

AS PO

I

6

6 digits, as 999999

<MCUOM>

AS PO

S

5

From UOM table

<Media>

IT

C

-

 

<MiscCharge>

IN

N

10

5.4, as 12345.6789

<Name>

AS IN PB PO PS PY ST

S

35

Based on UPS fields

<NAMM_ASN>

AS

C

-

Root container/file identifier

<NAMM_FunctionalAcknowledgement>

FA

C

-

Root container/file identifier

<NAMM_Invoice>

IN

C

-

Root container/file identifier

<NAMM_ITEM>

IT

C

-

Root container/file identifier

<NAMM_PARTY>

PY

C

-

Root container/file identifier

<NAMM_POStatusRequest>

PR

C

-

Root container/file identifier

<NAMM_POStatus>

PS

C

-

Root container/file identifier

<NAMM_PO>

PO

C

-

Root container/file identifier

<NAMM_PRICEBOOK>

PB

C

-

Root container/file identifier

<NAMM_SELLTHROUGH>

ST

C

-

Root container/file identifier

<Order>

AS

C

-

 

<Orders>

AS

C

-

 

<PackListNbr>

IN

S

25

Packing list number

<PartyId>

AS FA IN PB PO PR PS PY ST

S

25

GLN or NAMM ID. If using GLN, then 13 digits w/possible leading zeros denoting location. Otherwise, NAMM ID + “*” + five digits denoting location.

<PartyIdType>

PY

S

4

“GLN” or “NAMM”

<PaymentTerms>

PS

C

-

 

<Phone>

PY

S

24

Phone number

<POComments>

PO

S

250

Comments

<PODetail>

PO

C

-

 

<POFileType>

PO

S

1

“P” or “A”, indicating Pre-accepted or Accepted PO

<POHeader>

PO

C

-

 

<POLineNbr>

AS IN PO PS

I

6

6 digits, as 999999

<PORevisionNumber>

PO

I

6

6 digits, as 999999

<PostalCode>

AS IN PB PO PS PY ST

S

9

ZIP 5+4 format w/o dash

<POStatusIndicator>

PO

S

1

“N” or “U”, indicating New or Updated PO

<POStatusRequestId>

PS

S

 

Unique document ID

<Price>

IT PB

N

10

5.4, as 12345.6789

<Pricing>

IT

C

-

 

<PrimaryCategory>

IT

S

 

Item primary category

<ProductURL>

IT

U

500

URL for product information

<PRONbr>

AS

S

25

Shipment PRO number

<Publisher>

IT

S

 

Musical composition publisher

<Qty>

AS IN PO PS ST

N

10

5.4, as 12345.6789

<QtyOnHand>

IT ST

I

 

Quantity on hand

<QtyPerUOM>

IT

I

 

Quantity per UOM

<QtyUOM>

IN PO ST

S

5

From UOM table

<QueryURL>

IT

S

 

Query URL

<RelatedItem>

IT

C

-

 

<RelatedItems>

IT

C

-

 

<RemitTo>

IN

C

-

 

<ReplacementID>

IT

S

25

The SupplierItemID that replaces the item

<RetailCurrencyCode>

IN PO

S

3

ISO standard currency code

<RetailValue>

IN PO PS

N

10

5.4, as 12345.6789

<RevisionDate>

PY

D

10

ISO format: YYYY-MM-DD

<SalesRep>

IN

S

35

Sales rep name

<SalesTax>

IN

N

10

5.4, as 12345.6789

<SalesTotal>

ST

N

10

5.4, as 12345.6789

<SalesTotalCurrencyCode>

ST

S

3

ISO standard currency code

<SealId>

AS

S

25

Container seal ID

<SecondaryCategories>

IT

C

-

 

<SequenceNbr>

PS

I

 

PO item sequence number

<Serialized>

IT

F

1

“Y” or “N”

<SerialNbr>

AS

S

25

Item serial number

<SerialNbrs>

AS

C

-

 

<ShipDate>

PS

D

 

ISO format: YYYY-MM-DD

<ShipFrom>

AS

C

-

 

<ShipInstructions>

IN PO

S

250

Shipping instructions

<ShipmentHeader>

AS

C

-

 

<ShipmentId>

AS IN

S

25

Shipment ID

<ShipmentIds>

IN

C

-

 

<ShipmentItemQty>

AS

I

6

6 digits, as 999999

<ShipmentQty>

AS

C

-

 

<ShipmentRefs>

AS

C

-

 

<ShipmentTerms>

PS

C

-

 

<ShipmentType>

AS

S

25

Shipment type

<Shipped>

AS

D

10

ISO format: YYYY-MM-DD

<ShipperTrackingNumber>

AS

S

25

Tracking number

<ShipTo>

AS IN PO

C

-

 

<SoldTo>

AS FA IN PB PO PR PS ST

C

-

 

<StartDate>

PY ST

D

10

ISO format: YYYY-MM-DD

<State>

AS IN PB PO PS PY ST

S

2

State code

<StatusCode>

FA PS

S

3

Status code

<StatusMessage>

FA PS

S

10

Status message

<StdContainer>

AS

C

-

 

<StdContainerType>

AS

S

 

Container type

<StdPack>

AS

C

-

 

<StdPackType>

AS

S

 

Package type

<SubTitle>

IT

S

 

Item topic subtitle

<SuperTitle>

IT

S

 

Item topic supertitle

<Supplier>

AS FA IN PB PO PR PS ST

C

-

 

<SupplierId>

IT

S

25

GLN or NAMM ID. If using GLN, then 13 digits w/possible leading zeros denoting location. Otherwise, NAMM ID + “*” + five digits denoting location.

<SupplierItemDesc>

AS IN IT

S

50

Supplier item description

<SupplierItemId>

AS IN IT PB PO ST

S

25

Supplier item ID

<SupplierModel>

IT

S

50

Supplier model

<SupplierOrderId>

IN PS

S

25

Supplier’s order ID

<TermsCode>

IN PO PS

S

15

From Terms Code table or partner-specific codes

<TermsDate>

IN PO

D

10

ISO format: YYYY-MM-DD. Required if TermsCode is P998

<TermsDays>

IN PO

I

6

6 digits, as 999999. Required if TermsCode is P998

<TermsPercent>

IN PO PS

N

6

3.2, as 100.00. Required if TermsCode is P998

<TermsPercentDays>

IN PO

I

6

6 digits, as 999999. Required if TermsCode is P998

<Timestamp>

AS FA IN IT PB PO PR PS ST

S

19

YYYY-MM-DD + “T” + HH:MM:SS

<Title>

IT

S

 

Item title

<Topic>

IT

C

-

 

<TotalItemLines>

IN

I

6

6 digits, as 999999

<TotalItemQty>

IN

I

6

6 digits, as 999999

<TradingPartner>

PY

C

-

 

<TranspCarrier>

IN PO

S

15

Required if TranspCode is S998

<TranspCode>

AS IN PO

S

15

From Terms Code table or partner-specific codes

<TranspDesc>

AS IN PO

S

50

Transportation description

<TranspTerms>

IN PO

S

 

Transportation terms

<TranspTime>

IN PO

I

6

6 digits, as 999999

<Type>

IT

S

10

“GTIN-12”, “GTIN-13”, “GTIN-14”, or “PartNumber”

<UCCurrencyCode>

IN PO

S

3

ISO standard currency code

<UCValue>

IN PO PS

N

10

5.4, as 12345.6789

<UnAvailableDate>

IT

D

10

ISO format: YYYY-MM-DD

<UOM>

IT

S

5

From UOM table

<URL>

PY

U

500

Partner company URL

<Vehicle>

AS

C

-

 

<VehicleId>

AS

S

25

Vehicle ID

<VehicleType>

AS

S

 

Vehicle type

<Video>

IT

U

 

Video URL

<Videos>

IT

C

-

 

<Volume>

AS

C

-

 

<VolumeUOMCode>

AS

S

5

From UOM table

<VolumeUOMDesc>

AS

S

15

From UOM table

<VolumeValue>

AS

N

10

5.4, as 12345.6789

<WarrantyLabTerm>

IT

I

6

6 digits, as 999999

<WarrantyLabUOM>

IT

S

5

From UOM table

<WarrantyPartTerm>

IT

I

6

6 digits, as 999999

<WarrantyPartUOM>

IT

S

5

From UOM table

<Weight>

AS IT

N

10

5.4, as 12345.6789

<WeightUOM>

IT

S

5

From UOM table

<WeightUOMCode>

AS

S

5

From UOM table

<WeightUOMDesc>

AS

S

15

From UOM table

<WeightValue>

AS

N

10

5.4, as 12345.6789

<Width>

IT

N

10

5.4, as 12345.6789

XSL Transforms

Although XML is a precise and efficient method for storing and transmitting data, it can be difficult for a person to read and understand. A technology called XSLT (eXtensible Stylesheet Language Transformations) exists that allows you to convert (transform) the data in an XML document into a more readable, browser-renderable format such as HTML.

The basic steps involved in this process are:

  1. Write an XSLT transform for a specific type of XML file (e.g., invoice-v2011.1.xml)

  2. Associate the two files by adding a reference to the XSLT transform inside the XML file

  3. Open the XML file in a browser; the browser executes the transform and displays the HTML

While the creation of XSLT transforms is a decidedly technical task, it is not particularly difficult, and can result in attractive and usable document displays. Your company can create transforms that include your own logo, watermark, fonts, and other information, and that cause the data in the "raw" XML file to be organized and displayed in a visual format of your choice. The screen shot below shows a transformed sample invoice.

[image]

NAMM provides further information and maintains some XSLT transform examples at http://www.namm.org/initiatives/b2b/docs/xslt-transforms-guide. On that page, you can open some XML files that use pre-written XSLT transforms to get an idea of what is possible. Note: You must be logged in to the NAMM site to access this page. If you have an account, you may sign in here: https://www.namm.org/user; if you do not have an account, you may create one here: https://www.namm.org/user/register. NAMM web site accounts are free.

You can learn more about XSLT at the World Wide Web Consortium's (W3C) W3Schools training site (http://w3schools.com/xsl/default.asp).