<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.epaslaugos.lt/services/payment" elementFormDefault="qualified"
        xmlns="http://www.epaslaugos.lt/services/payment">

  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
  <xs:import namespace="http://www.w3.org/2001/10/xml-exc-c14n#" schemaLocation="exc-c14n.xsd" />

  <xs:element name="paymentRequest">
    <xs:complexType>
      <xs:annotation>
        <xs:documentation>Mokėjimo inicijavimo užklausa</xs:documentation>
      </xs:annotation>
      <xs:sequence>

        <xs:element name="pid" type="pidType">
          <xs:annotation>
            <xs:documentation>Mokėjimo sutarties ID, suteikiamas pasirašius sutartį su IVPK.</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="merchantIdOverride" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Reikšmė nurodoma, jeigu mokėjimui reikia panaudoti tam tikrą merchantID vietoje to, kuris yra nurodytas mokėjimo paslaugos sutartyje. Jeigu mokėjimui turi būti naudojamas MerchantID, kuris yra nurodytas mokėjimo paslaugos sutartyje, tuomet ši reikšmė turi būti tuščia</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="senderId" type="xs:string">
          <xs:annotation>
            <xs:documentation>Siuntėjo identifikatorius, pvz juridinio asmens kodas.</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="returnUrl" type="xs:anyURI">
          <xs:annotation>
            <xs:documentation>Url naudotojo nukreipimui po mokėjimo</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="webServiceUrl" type="xs:anyURI" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Url mokėjimo patvirtinimo priėmimo webservice. Jei parametras nenurodomas - duomenys perduodami HTTP postu į "returnUrl"</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="amount" type="money">
          <xs:annotation>
            <xs:documentation>Suma</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="currency" type="currency" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Valiutos kodas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="language" type="language" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Kalba, kuria atvaizduoti informaciją mokėtojui</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="message" minOccurs="0" type="message">
          <xs:annotation>
            <xs:documentation>Mokėjimo paskirtis</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="paymentCode" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Įmokos kodas</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="50" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="date" type="xs:dateTime">
          <xs:annotation>
            <xs:documentation>Užklausos suformavimo data</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="correlation" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Koreliaciniai duomenys. Nenaudojami VIISP sistemoje, perduodami į išorinę sistemą informuojant apie mokėjimą.</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="thirdParty" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="payerCode" minOccurs="0" type="xs:string" />
              <xs:element name="personFirstName" minOccurs="0" type="xs:string" />
              <xs:element name="personLastName" minOccurs="0" type="xs:string" />
              <xs:element name="companyName" minOccurs="0" type="xs:string" />
              <xs:element name="companyCode" minOccurs="0" type="xs:string" />
              <xs:element name="vendorRegNo" minOccurs="0" type="xs:string" />
              <xs:element name="companyVatCode" minOccurs="0" type="xs:string" />
              <xs:element name="paymentCode" minOccurs="0" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element ref="dsig:Signature" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="optional" />
    </xs:complexType>
  </xs:element>

  <xs:element name="paymentSuccess">
    <xs:annotation>
      <xs:documentation>Sėkmingai atlikto mokėjimo duomenys</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="pid" type="pidType">
          <xs:annotation>
            <xs:documentation>Mokėjimo sutarties ID</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="bankCode" type="xs:string">
          <xs:annotation>
            <xs:documentation>Banko kodas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="amount" type="money">
          <xs:annotation>
            <xs:documentation>Suma</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="currency" type="currency">
          <xs:annotation>
            <xs:documentation>Valiutos kodas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="receiverAccount" type="xs:string">
          <xs:annotation>
            <xs:documentation>Mokėjimo gavėjo sąskaitos numeris</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="receiverName" type="xs:string">
          <xs:annotation>
            <xs:documentation>Mokėjimo gavėjo pavadinimas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="senderName" type="xs:string">
          <xs:annotation>
            <xs:documentation>Mokėtojo vardas pavardė arba pavadinimas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="message" type="message">
          <xs:annotation>
            <xs:documentation>Mokėjimo paskirtis</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="date" type="xs:dateTime">
          <xs:annotation>
            <xs:documentation>Mokėjimo data</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="correlation" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Koreliaciniai duomenys. Perduodama nepakeista informacija gauta su mokėjimo inicijavimo užklausa.</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="approved" type="xs:boolean">
          <xs:annotation>
            <xs:documentation>Požymis nusakantis ar tai naudotojo nukreipimas po mokėjimo (approved == false), ar sisteminis mokėjimo patvirtinimas (approved == true)</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element ref="dsig:Signature" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="optional" />
    </xs:complexType>
  </xs:element>

  <xs:element name="paymentCanceled">
    <xs:complexType>
      <xs:annotation>
        <xs:documentation>Atšaukto mokėjimo duomenys</xs:documentation>
      </xs:annotation>
      <xs:sequence>
        <xs:element name="pid" type="pidType">
          <xs:annotation>
            <xs:documentation>Mokėjimo sutarties ID</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="correlation" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Koreliaciniai duomenys. Perduodama nepakeista informacija gauta su mokėjimo inicijavimo užklausa.</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element ref="dsig:Signature" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID" use="optional" />
    </xs:complexType>
  </xs:element>

  <xs:element name="callbackResponse" type="callbackResponse">
    <xs:annotation>
      <xs:documentation>Mokėjimo duomenų priėmimo požymis</xs:documentation>
    </xs:annotation>
  </xs:element>

  <xs:simpleType name="pidType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="money">
    <xs:restriction base="xs:decimal">
      <xs:fractionDigits value="2" />
      <xs:totalDigits value="10" />
      <xs:minExclusive value="0" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="callbackResponse">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SUCCESS" />
      <xs:enumeration value="FAILURE" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="language">
    <xs:restriction base="xs:string">
      <xs:enumeration value="LT" />
      <xs:enumeration value="EN" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="currency">
    <xs:restriction base="xs:string">
      <xs:enumeration value="LTL" />
      <xs:enumeration value="EUR" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="message">
    <xs:restriction base="xs:string">
      <xs:maxLength value="300" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>