ContractBilling
<xs:element name="ContractBilling"> <xs:complexType> <xs:sequence> <xs:element name="CustomerInfo" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="CustomerNo" type="Identifier15" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Unique identifier of customer, Customer number</xs:documentation> </xs:annotation> </xs:element> <xs:element name="BillingInfo" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="PaymentInfo" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:choice> <xs:element name="Clear" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Erases previously set payment info on customer</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Set" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Sets differing payment info on customer, fully replaces earlier settings</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="RecurringCardInfo" type="Card" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Info about token and expiry date</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CustomerInfo" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="NameAddressString72" minOccurs="1" maxOccurs="1"/> <xs:element name="RegNo" type="RegNo" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Customer Social Security No</xs:documentation> </xs:annotation> </xs:element> <xs:element name="LegalAddressInfo" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="LegalAddress" type="Address" minOccurs="1" maxOccurs="1"/> <xs:element name="E-MailAddress" type="Email" minOccurs="0" maxOccurs="1"/> <xs:element name="Cellphone" type="String15" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="LegalEntity" type="LegalEntity" use="optional"/> </xs:complexType> </xs:element> <xs:element name="BillingAddress" type="Address" minOccurs="0" maxOccurs="1"/> <xs:element name="BillingByPayEx" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element name="Clear" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Deactivate automatically billing/dunning process by PayEx</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ContractId" type="xs:unsignedInt" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Unique identifier of each contract in the ledger</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Set" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Activate automatically billing/dunning process by PayEx</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="ContractId" type="xs:unsignedInt" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Unique identifier of each contract in the ledger</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="BillInfo" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="ContractId" type="xs:unsignedInt" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Unique identifier of each contract in the ledger</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ReferenceInfo" type="ReferenceInfo" minOccurs="1" maxOccurs="1"/> <xs:element name="DistributionType" type="eDistributionType" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>If a specific distribution is desired this is used to affect the default for this billing instruction.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="OffContractDebitAmount" type="Money" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Total sum of off contract debits, must be a positive amount</xs:documentation> </xs:annotation> </xs:element> <xs:element name="OffContractCreditAmount" type="Money" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Total sum of off contract credits, must be a negative amount</xs:documentation> </xs:annotation> </xs:element> <xs:element name="VatInfo" type="VatInfo" minOccurs="0" maxOccurs="5"> <xs:annotation> <xs:documentation>Aggregated amount per VATRate</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Product" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="AmountInclVat" type="Amount" minOccurs="1" maxOccurs="1"/> <xs:element name="ProductDescription" type="String90" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Textual description of the product</xs:documentation> </xs:annotation> </xs:element> <xs:element name="BillingPeriod" type="String35" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Product billing period</xs:documentation> </xs:annotation> </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" type="Version" use="required"> <xs:annotation> <xs:documentation>Versions supported by this schema</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="CreatedDateTime" type="xs:dateTime" use="required"> <xs:annotation> <xs:documentation>Date and time when the file was created</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="CompanyNo" type="CompanyNumber" use="required"/> <xs:attribute name="CompanyName" type="xs:string" use="required"/> </xs:complexType> </xs:element>
Money
<xs:simpleType name="Money">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
<xs:minInclusive value="-100000000"/>
<xs:maxInclusive
value="100000000"/>
</xs:restriction>
</xs:simpleType>
Amount
<xs:complexType name="Amount"> <xs:sequence> <xs:element name="AmountInclVat" type="Money" nillable="false" minOccurs="1" maxOccurs="1"/> </xs:sequence> <xs:attribute name="Currency" type="eCurrencyType" use="required"/> </xs:complexType>
Card
<xs:complexType name="Card"> <xs:sequence> <xs:element name="CardReference" type="String50" minOccurs="1" maxOccurs="1"/> <xs:element name="ExpiryDate" type="PXExpiryDate" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType>
PXExpiryDate
<xs:simpleType name="PXExpiryDate">
<xs:restriction base="xs:string">
<xs:length value="5"/>
<xs:pattern value="(0[1-9]|1[012])/(\d{2})"/>
</xs:restriction>
</xs:simpleType>
Version
<xs:simpleType name="Version">
<xs:restriction base="xs:string">
<xs:enumeration value="1.0">
<xs:annotation>
<xs:documentation>Original version</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="1.1">
<xs:annotation>
<xs:documentation>PaymentInfo</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="1.2">
<xs:annotation>
<xs:documentation>
Added support for OffContract.
DistributionType that alters the default distribution for the billing instruction
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="1.3">
<xs:annotation>
<xs:documentation>Added new eCurrencyTypes USD and GBP</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="1.4">
<xs:annotation>
<xs:documentation>Updated length of CoAddress and StreetAddress. Extended PXNameAddressString to include diacritics.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="1.5">
<xs:annotation>
<xs:documentation>New element BillingByPayEx</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
eCurrencyType
<xs:simpleType name="eCurrencyType">
<xs:restriction base="xs:string">
<xs:enumeration value="SEK"/>
<xs:enumeration value="NOK"/>
<xs:enumeration value="DKK"/>
<xs:enumeration value="EUR"/>
<xs:enumeration value="GBP"/>
<xs:enumeration value="USD"/>
</xs:restriction>
</xs:simpleType>
Identifier15
<xs:simpleType name="Identifier15">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="15"/>
<xs:pattern value="[a-zA-Z0-9\-]*"/>
</xs:restriction>
</xs:simpleType>
ISO3166
<xs:simpleType name="ISO3166">
<xs:restriction base="xs:string">
<xs:minLength value="2"/>
<xs:maxLength value="2"/>
<xs:pattern value="[A-Z]*"/>
</xs:restriction>
</xs:simpleType>
CompanyNumber
<xs:simpleType name="CompanyNumber">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="15"/>
<xs:pattern value="[0-9]*"/>
</xs:restriction>
</xs:simpleType>
String35
<xs:simpleType name="String35"> <xs:restriction base="PXString"> <xs:maxLength value="35"/> </xs:restriction> </xs:simpleType>
String90
<xs:simpleType name="String90"> <xs:restriction base="PXString"> <xs:minLength value="1"/> <xs:maxLength value="90"/> </xs:restriction> </xs:simpleType>
<xs:simpleType name="Email"> <xs:restriction base="PXString"> <xs:maxLength value="60"/> <xs:pattern value="[^@]+@[^\.]+\..+"/> </xs:restriction> </xs:simpleType>
String15
<xs:simpleType name="String15"> <xs:restriction base="PXString"> <xs:maxLength value="15"/> </xs:restriction> </xs:simpleType>
ZipCode
<xs:simpleType name="ZipCode">
<xs:restriction base="xs:string">
<xs:maxLength value="9"/>
<xs:pattern value="[A-Z0-9\-]+"/>
</xs:restriction>
</xs:simpleType>
String50
<xs:simpleType name="String50"> <xs:restriction base="PXString"> <xs:minLength value="1"/> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType>
VatRate
<xs:simpleType name="VatRate">
<xs:restriction base="xs:decimal">
<xs:enumeration value="0.00"/>
<xs:enumeration value="6.00"/>
<xs:enumeration value="8.00"/>
<xs:enumeration value="12.00"/>
<xs:enumeration value="13.00"/>
<xs:enumeration value="14.00"/>
<xs:enumeration
value="22.00"/>
<xs:enumeration
value="23.00"/>
<xs:enumeration
value="24.00"/>
<xs:enumeration
value="25.00"/>
</xs:restriction>
</xs:simpleType>
String20
<xs:simpleType name="String20"> <xs:restriction base="PXString"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType>
NameAddressString36
<xs:simpleType name="NameAddressString36"> <xs:restriction base="PXNameAddressString"> <xs:minLength value="1"/> <xs:maxLength value="36"/> </xs:restriction> </xs:simpleType>
NameAddressString27
<xs:simpleType name="NameAddressString27"> <xs:restriction base="PXNameAddressString"> <xs:minLength value="1"/> <xs:maxLength value="27"/> </xs:restriction> </xs:simpleType>
PXString
<xs:simpleType name="PXString">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9_:!;"#<>=?\[\]@{}´ %'-0À-ÖØ-öø-ú&]*"/>
</xs:restriction>
</xs:simpleType>
PXNameAddressString
<xs:simpleType name="PXNameAddressString">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9À-ɏЀ-ӿḀ-ỿ_:!;"#<>=?\[\]@{}´ %'-/&]*"/>
</xs:restriction>
</xs:simpleType>
String74
<xs:simpleType name="String74">
<xs:restriction base="xs:string">
<xs:maxLength
value="74"/>
</xs:restriction>
</xs:simpleType>
ReferenceInfo
<xs:complexType name="ReferenceInfo"> <xs:sequence> <xs:element name="ExternalBillId" type="String20" nillable="false" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType>
LegalEntity
<xs:simpleType name="LegalEntity">
<xs:restriction base="xs:string">
<xs:enumeration value="Private"/>
</xs:restriction>
</xs:simpleType>
eDistributionType
<xs:simpleType name="eDistributionType">
<xs:restriction base="xs:string">
<xs:enumeration value="PostalService">
<xs:annotation>
<xs:documentation>Distribution is made by postal service</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="EMail">
<xs:annotation>
<xs:documentation>Distribution is made by E-mail</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
NameAddressString72
<xs:simpleType name="NameAddressString72"> <xs:restriction base="PXNameAddressString"> <xs:minLength value="1"/> <xs:maxLength value="72"/> </xs:restriction> </xs:simpleType>
Address
<xs:complexType name="Address"> <xs:sequence> <xs:element name="Addressee" type="NameAddressString72" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Full name of addressee</xs:documentation> </xs:annotation> </xs:element> <xs:element name="StreetAddress" type="NameAddressString72" nillable="false" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Street address</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ZipCode" type="ZipCode" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Zipcode conforming to country standard</xs:documentation> </xs:annotation> </xs:element> <xs:element name="City" type="NameAddressString27" nillable="false" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>City</xs:documentation> </xs:annotation> </xs:element> <xs:element name="CoAddress" type="NameAddressString72" nillable="false" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Care of address</xs:documentation> </xs:annotation> </xs:element> <xs:element name="CountryCode" type="ISO3166" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Country code according to ISO 3166</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType>