<?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="xs:string">
          <xs:annotation>
            <xs:documentation>Mokėjimo sutarties ID, suteikiamas pasirašius sutartį su IVPK.</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" type="xs:string" minOccurs="0">
          <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="xs:string">
          <xs:annotation>
            <xs:documentation>Mokėjimo sutarties ID</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="bankCode" type="xs:string" minOccurs="0">
          <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" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Mokėjimo gavėjo sąskaitos numeris</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="receiverName" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Mokėjimo gavėjo pavadinimas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="senderName" type="xs:string" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Mokėtojo vardas pavardė arba pavadinimas</xs:documentation>
          </xs:annotation>
        </xs:element>

        <xs:element name="message" type="xs:string" minOccurs="0">
          <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="xs:string">
          <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="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:enumeration value="USD" />
    </xs:restriction>
  </xs:simpleType>

</xs:schema>