<?xml version="1.0" encoding="UTF-8"?>
<!-- Account Transactions class event notification -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
    <xs:element name="apf2doc">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="request" />
                <xs:element ref="account" />
                <xs:element ref="financial_transaction_groups" maxOccurs="unbounded" minOccurs="0" />
                <xs:element ref="financial_transactions" />
                <xs:element ref="service_credit_details" minOccurs="0" />
                <xs:element ref="posting_info" minOccurs="0" />
                <xs:element ref="invoice" minOccurs="0" />
                <xs:element ref="event_data" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="request">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="version" />
                <xs:element ref="sender" />
                <xs:element ref="transaction_id" />
                <xs:element ref="action" />
                <xs:element ref="class" />
                <xs:element ref="auth_key" minOccurs="0" />
                <xs:element ref="client_receipt_id" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- Aria-assigned version number of this provisioning request's document format.  Value in this version of the XML document is fixed at "3.6". -->
    <xs:element name="version" type="xs:decimal" fixed="3.6"/>
    <!-- Identifies the sender of the provisioning request.  Valid values are "A"=Aria or "C"=Client.  Currently only outbound requests from Aria-to-clients are supported, so the value of this field is effectively currently fixed as "A". -->
    <xs:element name="sender" nillable="false">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="A" />
                <xs:enumeration value="C" />
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <!-- Aria-assigned provisioning request ID. -->
    <xs:element name="transaction_id" type="xs:int" />
    <!--Identifies which action caused the provisioning request. "A"=add,"M"=modify-->
    <xs:element name="action" nillable="false">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="A" />
                <xs:enumeration value="M" />
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <!--Identifies the type of data being sent. "A"=account and MPI, "O"=order, "T"=financial transaction, "N"=account and MPI notification, "U"=usage monitoring. -->
    <xs:element name="class">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="T" />
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <!-- Client-specific authentication key -->
    <xs:element name="auth_key" type="xs:string" />
    <!-- Client receipt id -->
    <xs:element name="client_receipt_id" type="xs:string" />
    <xs:element name="account">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="xs:int" name="client_no" />
                <xs:element type="xs:int" name="acct_no" />
                <xs:element type="xs:string" name="client_acct_id" minOccurs="0" />
                <xs:element type="xs:string" name="userid" />
                <xs:element type="xs:string" name="senior_acct_no" minOccurs="0" />
                <xs:element name="master_plan_instances" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="master_plan_instance_data" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element type="xs:string" name="plan_instance_no" />
                                        <xs:element type="xs:string" name="client_plan_instance_id" />
                                        <xs:element type="xs:string" name="resp_level_cd" />
                                        <xs:element type="xs:string" name="resp_plan_instance_no" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="financial_transaction_groups">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="financial_transaction_group">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element type="xs:string" name="object_type" />
                            <xs:element type="xs:int" name="object_no" />
                            <xs:element type="xs:string" name="billing_group_no" />
                            <xs:element type="xs:string" name="billing_group_name" minOccurs="0" />
                            <xs:element type="xs:string" name="client_billing_group_id" />
                            <xs:element type="xs:float" name="total_amount" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="financial_transactions">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="financial_transaction">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element type="xs:int" name="financial_trans_id" minOccurs="0" />
                            <xs:element type="xs:int" name="financial_trans_granular_id" />
                            <xs:element type="xs:int" name="financial_trans_type_no" minOccurs="0" />
                            <xs:element type="xs:string" name="financial_trans_type_label" />
                            <xs:element type="xs:string" name="financial_trans_gl_type" />
                            <xs:element type="xs:string" name="financial_trans_date" minOccurs="0" />
                            <xs:element type="xs:string" name="financial_trans_user" minOccurs="0" />
                            <xs:element type="xs:float" name="financial_trans_amount" />
                            <xs:element type="xs:string" minOccurs="0" name="financial_trans_status_label" />
                            <xs:element type="xs:string" minOccurs="0" name="financial_trans_status_desc" />
                            <xs:element type="xs:string" minOccurs="0" name="financial_trans_client_notes" />
                            <xs:element type="xs:float" minOccurs="0" name="financial_trans_applied_amount" />
                            <xs:element type="xs:string" name="financial_trans_inv_type_cd" minOccurs="0" />
                            <xs:element name="failed_payment_charge_data" maxOccurs="1" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="failed_payment_charge_events" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element type="xs:int" name="charge_event_no" />
                                                    <xs:element type="xs:int" name="invoice_no" minOccurs="0" />
                                                    <xs:element type="xs:int" name="statement_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="sequential_statement_id" minOccurs="0" />
                                                    <xs:element type="xs:int" name="installment_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="client_installment_term_id" minOccurs="0" />
                                                    <xs:element type="xs:int" name="payment_plan_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="client_payment_plan_id" minOccurs="0" />
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="financial_trans_appln_data" maxOccurs="1" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="financial_trans_application" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element type="xs:int" name="charge_trans_id" />
                                                    <xs:element type="xs:int" name="payment_trans_id" minOccurs="0" />
                                                    <xs:element type="xs:float" name="applied_amount" />
                                                    <xs:element type="xs:int" name="applied_trans_id" minOccurs="0" />
                                                    <xs:element type="xs:int" name="applied_trans_type_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="applied_trans_type_label" minOccurs="0" />
                                                    <xs:element type="xs:int" name="charge_trans_type_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="charge_trans_type_label" minOccurs="0" />
                                                    <xs:element type="xs:int" name="invoice_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="sequential_statement_id" minOccurs="0" />
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="financial_trans_unappln_data" maxOccurs="1" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="financial_trans_unapplication" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element type="xs:int" name="charge_trans_id" />
                                                    <xs:element type="xs:float" name="unapplied_amount" />
                                                    <xs:element type="xs:int" name="charge_trans_type_no" />
                                                    <xs:element type="xs:string" name="charge_trans_type_label" />
                                                    <xs:element type="xs:int" name="invoice_no" minOccurs="0" />
                                                    <xs:element type="xs:string" name="sequential_statement_id" minOccurs="0" />
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element type="xs:string" name="future_manual_allocation" minOccurs="0" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="service_credit_details">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="xs:int" name="credit_id" />
                <xs:element type="xs:float" name="amount" />
                <xs:element type="xs:float" name="amount_left_to_apply" />
                <xs:element type="xs:float" name="amount_reserved_for_anniversary" minOccurs="0" />
                <xs:element type="xs:int" name="reason_cd" minOccurs="0" />
                <xs:element type="xs:string" name="reason_text" minOccurs="0" />
                <xs:element type="xs:string" name="comments" minOccurs="0" />
                <xs:element type="xs:string" name="currency_cd" />
                <xs:element type="xs:int" name="service_no_to_apply" minOccurs="0" />
                <xs:element type="xs:string" name="service_name_to_apply" minOccurs="0" />
                <xs:element type="xs:string" name="client_service_id_to_apply" minOccurs="0" />
                <xs:element type="xs:int" name="applicable_mpi_no" minOccurs="0" />
                <xs:element type="xs:string" name="applicable_mpi_cdid" minOccurs="0" />
                <xs:element type="xs:string" name="create_date" />
                <xs:element type="xs:string" name="create_user" minOccurs="0" />
                <xs:element name="service_credit_applications" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="service_credit_application" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element type="xs:int" name="invoice_no" minOccurs="0" />
                                        <xs:element type="xs:int" name="invoice_charge_line_no" minOccurs="0" />
                                        <xs:element type="xs:float" name="applied_amount" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="service_credit_unapplications" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="service_credit_unapplication" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element type="xs:int" name="invoice_no" minOccurs="0" />
                                        <xs:element type="xs:int" name="invoice_charge_line_no" minOccurs="0" />
                                        <xs:element type="xs:float" name="unapplied_amount" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="invoice">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="xs:int" name="invoice_no" />
                <xs:element type="xs:string" name="invoice_type_cd" />
                <xs:element name="threshold_billing_rule" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element type="xs:int" name="threshold_billing_rule_no" />
                            <xs:element type="xs:string" minOccurs="0" name="client_threshold_billing_rule_id" />
                            <xs:element type="xs:float" minOccurs="0" name="currency_amount" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="posting_info">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="xs:short" name="posting_status_cd" minOccurs="0" />
                <xs:element type="xs:string" name="posting_user" minOccurs="0" />
                <xs:element type="xs:string" name="posting_date" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="event_data">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="event" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element type="xs:short" name="event_id" />
                            <xs:element type="xs:string" name="event_label" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
