4.4 Balance Report XML Schema
Below is a copy of the latest Balance Report XML schema.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
id="Balances">
<xs:complexType name="CARD">
<xs:sequence>
<xs:element name="PAN" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="14"/>
<xs:maxLength value="19"/>
<xs:pattern value="^\d+$"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MaskedPAN" minOccurs="0" maxOccurs="1" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="16"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="VIRTUAL" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PRIMARY" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="MVC" minOccurs="0" maxOccurs="1" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Y"/>
<xs:enumeration value="N"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CRDPRODUCT" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PROGRAMID" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CUSTCODE" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="STATCODE" type="STATCODE" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="EXPDATE" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
<xs:pattern value="^(20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="GPSEXPDATE" minOccurs="0" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
<xs:pattern value="^$|^(20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CRDACCNO" type="ACCNO" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="PRIMARYTOKEN" minOccurs="0" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="15"/>
<xs:maxLength value="19"/>
<xs:pattern value="^\d+$"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CRDCURRCODE" type="CRDCURRCODE" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="LINKEDTOKEN" type="xs:decimal" minOccurs="0" maxOccurs="1" nillable="false"/>
<xs:element name="PRODUCTID" minOccurs="0" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LASTUPDATED" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value=""/>
<xs:maxLength value="14"/>
<xs:pattern
value="([2-9]\d{3}((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])(29|30)|(0[13578]|1[02])31)|(([2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00))0229)([0-1][0-9]|[2][0-3])([0-5][0-9])([0-5][0-9])"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ACCOUNT">
<xs:sequence>
<xs:element name="ACCNO" type="ACCNO" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="CURRCODE" type="CRDCURRCODE" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="ACCTYPE" minOccurs="1" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="00"/>
<xs:enumeration value="01"/>
<xs:enumeration value="02"/>
<xs:enumeration value="07"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SORTCODE" type="SORTCODE" minOccurs="0" maxOccurs="1" nillable="false"/>
<xs:element name="BANKACC" type="BANKACC" minOccurs="0" maxOccurs="1" nillable="false"/>
<xs:element name="FEEBAND" minOccurs="0" maxOccurs="1" nillable="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PAYMENT" type="PAYMENT" minOccurs="0" maxOccurs="1" nillable="false"/>
<xs:element name="FINAMT" type="xs:decimal" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="BLKAMT" type="xs:decimal" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="AMTAVL" type="xs:decimal" minOccurs="1" maxOccurs="1" nillable="false"/>
<xs:element name="LINKEDTOKEN" type="xs:decimal" minOccurs="0" maxOccurs="1" nillable="false"/>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="CARD" type="CARD"/>
</xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SCHEME">
<xs:sequence maxOccurs="unbounded">
<xs:element name="ACCOUNT" type="ACCOUNT"/>
</xs:sequence>
<xs:attribute name="ID" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
<xs:pattern value="^(([A-Za-z0-9]|\s){3})$"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="ACCNO">
<xs:restriction base="xs:string">
<xs:maxLength value="28"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="STATCODE">
<xs:restriction base="xs:string">
<xs:enumeration value="00"/>
<xs:enumeration value="01"/>
<xs:enumeration value="02"/>
<xs:enumeration value="03"/>
<xs:enumeration value="04"/>
<xs:enumeration value="05"/>
<xs:enumeration value="06"/>
<xs:enumeration value="08"/>
<xs:enumeration value="10"/>
<xs:enumeration value="12"/>
<xs:enumeration value="13"/>
<xs:enumeration value="14"/>
<xs:enumeration value="15"/>
<xs:enumeration value="17"/>
<xs:enumeration value="30"/>
<xs:enumeration value="31"/>
<xs:enumeration value="32"/>
<xs:enumeration value="33"/>
<xs:enumeration value="36"/>
<xs:enumeration value="37"/>
<xs:enumeration value="38"/>
<xs:enumeration value="41"/>
<xs:enumeration value="43"/>
<xs:enumeration value="46"/>
<xs:enumeration value="51"/>
<xs:enumeration value="54"/>
<xs:enumeration value="55"/>
<xs:enumeration value="57"/>
<xs:enumeration value="58"/>
<xs:enumeration value="59"/>
<xs:enumeration value="61"/>
<xs:enumeration value="62"/>
<xs:enumeration value="63"/>
<xs:enumeration value="64"/>
<xs:enumeration value="65"/>
<xs:enumeration value="66"/>
<xs:enumeration value="67"/>
<xs:enumeration value="68"/>
<xs:enumeration value="6P"/>
<xs:enumeration value="70"/>
<xs:enumeration value="71"/>
<xs:enumeration value="75"/>
<xs:enumeration value="76"/>
<xs:enumeration value="77"/>
<xs:enumeration value="78"/>
<xs:enumeration value="79"/>
<xs:enumeration value="80"/>
<xs:enumeration value="81"/>
<xs:enumeration value="82"/>
<xs:enumeration value="83"/>
<xs:enumeration value="85"/>
<xs:enumeration value="86"/>
<xs:enumeration value="87"/>
<xs:enumeration value="88"/>
<xs:enumeration value="89"/>
<xs:enumeration value="90"/>
<xs:enumeration value="91"/>
<xs:enumeration value="92"/>
<xs:enumeration value="93"/>
<xs:enumeration value="94"/>
<xs:enumeration value="95"/>
<xs:enumeration value="96"/>
<xs:enumeration value="98"/>
<xs:enumeration value="99"/>
<xs:enumeration value="C0"/>
<xs:enumeration value="C1"/>
<xs:enumeration value="N0"/>
<xs:enumeration value="N7"/>
<xs:enumeration value="P5"/>
<xs:enumeration value="P6"/>
<xs:enumeration value="G1"/>
<xs:enumeration value="G2"/>
<xs:enumeration value="G3"/>
<xs:enumeration value="G4"/>
<xs:enumeration value="G5"/>
<xs:enumeration value="G6"/>
<xs:enumeration value="G7"/>
<xs:enumeration value="G8"/>
<xs:enumeration value="G9"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CRDCURRCODE">
<xs:restriction base="xs:string">
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SORTCODE">
<xs:restriction base="xs:string">
<xs:minLength value="6"/>
<xs:maxLength value="6"/>
<xs:pattern value="^(\d){6}$"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BANKACC">
<xs:restriction base="xs:string">
<xs:minLength value="8"/>
<xs:maxLength value="8"/>
<xs:pattern value="^(\d){8}$"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PAYMENT">
<xs:restriction base="xs:string">
<xs:maxLength value="4"/>
<xs:pattern value="(R0|R1|R2|R5)?(P0|P1|P2|P5)?"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="SCHEME" type="SCHEME"/>
</xs:schema>
4.4.1 Schema Changes for Balance XML Reporting
Refer to the list of changes below.
Version |
Description |
---|---|
V1.14 |
ISO currency codes and ISO country codes removed. |
V1.13 |
Added the following codes to the schema: CUW, SXM, XCG. |
V1.12 |
Added Discover card type to the ACCTYPE element. Added new ISO currency code: 924 |
V1.11 |
Added missing STATCODE values: G1,G2,G3,G4,G5,G6,G7,G8,G9,93,6P,59 & 46. |
V1.10 |
Added the ability to accept empty strings in the GPSEXPDATE. |
V1.09 |
Added a new field PRIMARYTOKEN. |
V1.08 |
Added a new field GPSEXPDATE. |
V1.07 |
Spaces added as SchemeID are allowed. |
V1.06 |
Thredd Balance XML Schema for normal balance file |