<!ELEMENT ASSUREBUY.ECOMREQUEST (Mode, GatewayVersion, SchemaVersion?, P3Ppolicy?, P3Pagent?, ResponseType, PostURL?, TransactionComplete?, TestAction?, Order)>
<!ATTLIST ASSUREBUY.ECOMREQUEST USERID CDATA #REQUIRED PASSWORD CDATA #REQUIRED>

    <!ELEMENT Mode (#PCDATA)>

    <!ELEMENT GatewayVersion (#PCDATA)>

    <!ELEMENT SchemaVersion (#PCDATA)>

    <!ELEMENT P3Ppolicy (#PCDATA)>

    <!ELEMENT P3Pagent (#PCDATA)>

    <!ELEMENT ResponseType (#PCDATA)>

    <!ELEMENT PostURL (#PCDATA)>

    <!ELEMENT TransactionComplete (#PCDATA)>

    <!ELEMENT TestAction (#PCDATA)>

    <!ELEMENT Order (SellerOrderID?, Date?, CustomerID?, PONumber?, ShipMethod?, ShippingInstructions?, Comments?, Source?, Language?, TaxJurisdiction?, TaxCountry?, VATTaxRate?, VATTaxID?, AlternateTaxRate?, AlternateTaxID?, CurrencyCode?, CurrencyRule?, IPAddress, BrowserType?, Invoice?, BillTo?, ShipTo?, ShipFrom?, Cost?, UserDefined?, Payment, Products?, Recurring?)>

        <!ELEMENT SellerOrderID (#PCDATA)>

        <!ELEMENT Date (#PCDATA)>

        <!ELEMENT CustomerID (#PCDATA)>

        <!ELEMENT PONumber (#PCDATA)>

        <!ELEMENT ShipMethod (#PCDATA)>

        <!ELEMENT ShippingInstructions (#PCDATA)>

        <!ELEMENT Comments (#PCDATA)>

        <!ELEMENT Source (#PCDATA)>

        <!ELEMENT Language (#PCDATA)>

        <!ELEMENT TaxJurisdiction (#PCDATA)>

        <!ELEMENT TaxCountry (#PCDATA)>

        <!ELEMENT VATTaxRate (#PCDATA)>

        <!ELEMENT VATTaxID (#PCDATA)>

        <!ELEMENT AlternateTaxRate (#PCDATA)>

        <!ELEMENT AlternateTaxID (#PCDATA)>

        <!ELEMENT CurrencyCode (#PCDATA)>

        <!ELEMENT CurrencyRule (#PCDATA)>

        <!ELEMENT IPAddress (#PCDATA)>

        <!ELEMENT BrowserType (#PCDATA)>

        <!ELEMENT Invoice (PeriodStart?, PeriodEnd?, PreviousBillingDate?, PreviousInvoiceBalance?, DueDate?, NotificationFlag?, InvoiceType?, Template?)>

			<!ELEMENT PeriodStart (#PCDATA)>
			
			<!ELEMENT PeriodEnd (#PCDATA)>
			
			<!ELEMENT PreviousBillingDate (#PCDATA)>
			
			<!ELEMENT PreviousInvoiceBalance (#PCDATA)>
			
			<!ELEMENT DueDate (#PCDATA)>
			
			<!ELEMENT NotificationFlag (#PCDATA)>
			
			<!ELEMENT InvoiceType (#PCDATA)>
			
			<!ELEMENT Template (#PCDATA)>
			
        <!ELEMENT BillTo (Postal?, Telecom?, Online?)>

            <!ELEMENT Postal (Name?, Street?, City?, StateProv?, PostalCode?, CountryCode?)>

                <!ELEMENT Name (First?, Middle?, Last?, Prefix?, Company?)>

                    <!ELEMENT First (#PCDATA)>

                    <!ELEMENT Middle (#PCDATA)>

                    <!ELEMENT Last (#PCDATA)>

                    <!ELEMENT Prefix (#PCDATA)>

                    <!ELEMENT Company (#PCDATA)>

                <!ELEMENT Street (Line1, Line2?, Line3?)>

                    <!ELEMENT Line1 (#PCDATA)>

                    <!ELEMENT Line2 (#PCDATA)>

                    <!ELEMENT Line3 (#PCDATA)>

                <!ELEMENT City (#PCDATA)>

                <!ELEMENT StateProv (#PCDATA)>

                <!ELEMENT PostalCode (#PCDATA)>

                <!ELEMENT CountryCode (#PCDATA)>

            <!ELEMENT Telecom (DayPhone?, EvePhone?, Fax?)>

                <!ELEMENT DayPhone (#PCDATA)>

                <!ELEMENT EvePhone (#PCDATA)>

                <!ELEMENT Fax (#PCDATA)>

            <!ELEMENT Online (Email)>

                <!ELEMENT Email (#PCDATA)>

        <!ELEMENT ShipTo (Postal?, Telecom?, Online?)>

        <!ELEMENT ShipFrom (Location?)>
        
            <!ELEMENT Location (ID?, Company?, Street?, City?, StateProv?, PostalCode?, CountryCode?)>

                <!ELEMENT ID (#PCDATA)>

        <!ELEMENT Cost (SubTotal?, Tax?, VATTax?, AlternateTax?, Duty?, Discount?, DiscountPercent?, Shipping?, Tip?, Total?, AmountPaid?)>

            <!ELEMENT SubTotal (#PCDATA)>

            <!ELEMENT Tax (#PCDATA)>

            <!ELEMENT VATTax (#PCDATA)>

            <!ELEMENT AlternateTax (#PCDATA)>

            <!ELEMENT Duty (#PCDATA)>

            <!ELEMENT Discount (#PCDATA)>

            <!ELEMENT DiscountPercent (#PCDATA)>

            <!ELEMENT Shipping (#PCDATA)>

            <!ELEMENT Tip (#PCDATA)>

            <!ELEMENT Total (#PCDATA)>

            <!ELEMENT AmountPaid (#PCDATA)>

        <!ELEMENT UserDefined (MaxCount?, UserDataItem+)>

            <!ELEMENT MaxCount (#PCDATA)>

            <!ELEMENT UserDataItem (RefID, UserData)>

                <!ELEMENT RefID (#PCDATA)>

                <!ELEMENT UserData (#PCDATA)>

        <!ELEMENT Payment (Action, Type, CardType?, Number?, Verification?, PIN?, CardPresent?, CustomerPresent?, ExpDate?, PayerName?, BankCode?, POS?, ACH?, RetrievalNumber?, OriginalTransaction?, ApprovalCode?, ConfirmPhone?, ConfirmValue?, VPASTransID?, CAVV?)>

            <!ELEMENT Action (#PCDATA)>

            <!ELEMENT Type (#PCDATA)>

            <!ELEMENT CardType (#PCDATA)>

            <!ELEMENT Number (#PCDATA)>

            <!ELEMENT PayerName (#PCDATA)>

            <!ELEMENT Verification (#PCDATA)>

            <!ELEMENT PIN (#PCDATA)>

            <!ELEMENT CardPresent (#PCDATA)>

            <!ELEMENT CustomerPresent (#PCDATA)>

            <!ELEMENT ExpDate (Day?, Month, Year)>

                <!ELEMENT Day (#PCDATA)>

                <!ELEMENT Month (#PCDATA)>

                <!ELEMENT Year (#PCDATA)>

            <!ELEMENT BankCode (#PCDATA)>
            
            <!ELEMENT POS (EntryMode?, TerminalType?, SwipeCapability?, Track1?, Track2?)>

                <!ELEMENT EntryMode (#PCDATA)>

                <!ELEMENT TerminalType (#PCDATA)>

                <!ELEMENT SwipeCapability (#PCDATA)>

                <!ELEMENT Track1 (#PCDATA)>

                <!ELEMENT Track2 (#PCDATA)>

            <!ELEMENT ACH (AccountIndicator?, AccountType?)>

                <!ELEMENT AccountIndicator (#PCDATA)>

                <!ELEMENT AccountType (#PCDATA)>

            <!ELEMENT RetrievalNumber (#PCDATA)>

            <!ELEMENT OriginalTransaction (#PCDATA)>

            <!ELEMENT ApprovalCode (#PCDATA)>

            <!ELEMENT ConfirmPhone (#PCDATA)>

            <!ELEMENT ConfirmValue (#PCDATA)>

            <!ELEMENT VPASTransID (#PCDATA)>

            <!ELEMENT CAVV (#PCDATA)>

        <!ELEMENT Products (Product+)>

            <!ELEMENT Product (LineNum, ItemID?, SKU, ItemDesc?, ItemCategory?, Quantity, UOM?, TaxAmount?, TaxRate?, TaxCode?, DiscountAmount?, MinQuantity?, ItemWeight?, TaxFlag?, TaxExemptFlag?, ReturnedItemFlag?, ShipFlag?, ReferenceFlag?, RecurringFlag?, DownloadFlag?, DownloadFile?, DownloadDesc?, UserDefined?)>

                <!ELEMENT LineNum (#PCDATA)>

                <!ELEMENT ItemID (#PCDATA)>

                <!ELEMENT SKU (#PCDATA)>

                <!ELEMENT ItemDesc (#PCDATA)>

                <!ELEMENT ItemCategory (#PCDATA)>

                <!ELEMENT Quantity (#PCDATA)>

                <!ELEMENT UOM (#PCDATA)>

                <!ELEMENT TaxAmount (#PCDATA)>

                <!ELEMENT TaxRate (#PCDATA)>

                <!ELEMENT TaxCode (#PCDATA)>

                <!ELEMENT DiscountAmount (#PCDATA)>

                <!ELEMENT MinQuantity (#PCDATA)>

                <!ELEMENT ItemWeight (#PCDATA)>

                <!ELEMENT TaxFlag (#PCDATA)>

                <!ELEMENT TaxExemptFlag (#PCDATA)>

                <!ELEMENT ReturnedItemFlag (#PCDATA)>

                <!ELEMENT ShipFlag (#PCDATA)>

                <!ELEMENT ReferenceFlag (#PCDATA)>

                <!ELEMENT RecurringFlag (#PCDATA)>

                <!ELEMENT DownloadFlag (#PCDATA)>

                <!ELEMENT DownloadFile (#PCDATA)>

                <!ELEMENT DownloadDesc (#PCDATA)>

        <!ELEMENT Recurring (Amount?, Cycle?, Period?, Termination?)>

            <!ELEMENT Amount (#PCDATA)>

            <!ELEMENT Cycle (#PCDATA)>

            <!ELEMENT Period (#PCDATA)>

            <!ELEMENT Termination (#PCDATA)>


