<?xml version="1.0" encoding="UTF-8"?>
	<!--
	This schema describes RESTful bindings for Parlay X Web Services, Payment 
   	version - 1.0
   	date    - 23 November 2010

	FILE INFORMATION

  	OMA Permanent Document
    	File: OMA-SUP-XSD_rest_payment-V1_0-20101123-C
    	Type: Text - Schema Description

  	Public Reachable Information
    	Path: http://www.openmobilealliance.org/tech/profiles
    	Name: rest_payment-v1_0.xsd

	NORMATIVE INFORMATION

  	Information about this file can be found in the specification

    	OMA-TS-ParlayREST_Payment-V1_0

  	available at http://www.openmobilealliance.org/

  	Send comments to technical-comments@mail.openmobilealliance.org

	LEGAL DISCLAIMER

  	Use of this document is subject to all of the terms and conditions
  	of the Use Agreement located at
  	http://www.openmobilealliance.org/UseAgreement.html,
  	provided, however, that section (d) under "Documents - Terms 
  	of Use" which states, "no modifications are made to such 
  	Documents" does not apply to your use.

  	The Open Mobile Alliance authorizes you to copy this document, 
  	provided that you retain all copyright and other proprietary  
  	notices contained in the original materials on any copies of the 
  	materials and  that you comply strictly with these terms. This 
  	copyright permission does not constitute an endorsement of the 
  	products or services. The Open Mobile Alliance assumes no 
  	responsibility for errors or omissions in this document.


  	Each Open Mobile Alliance member has agreed to use reasonable
  	endeavors to inform the Open Mobile Alliance in a timely manner of
  	Essential IPR as it becomes aware that the Essential IPR is related
  	to the prepared or published specification.  However, the members
  	do not have an obligation to conduct IPR searches.  The declared
  	Essential IPR is publicly available to members and non-members of
  	the Open Mobile Alliance and may be found on the "OMA IPR
  	Declarations" list at http://www.openmobilealliance.org/ipr.html.
  	The Open Mobile Alliance has not conducted an independent IPR review
  	of this document and the information contained herein, and makes no
  	representations or warranties regarding third party IPR, including
  	without limitation patents, copyrights or trade secret rights.  This
  	document may contain inventions for which you must obtain licenses
  	from third parties before making, using or selling the inventions.
  	Defined terms above are set forth in the schedule to the Open Mobile
  	Alliance Application Form.

  	NO REPRESENTATIONS OR WARRANTIES (WHETHER EXPRESS OR IMPLIED) ARE
  	MADE BY THE OPEN MOBILE ALLIANCE OR ANY OPEN MOBILE ALLIANCE MEMBER
  	OR ITS AFFILIATES REGARDING ANY OF THE IPR'S REPRESENTED ON THE "OMA
  	IPR DECLARATIONS" LIST, INCLUDING, BUT NOT LIMITED TO THE ACCURACY,
  	COMPLETENESS, VALIDITY OR RELEVANCE OF THE INFORMATION OR WHETHER OR
  	NOT SUCH RIGHTS ARE ESSENTIAL OR NON-ESSENTIAL.

  	THE OPEN MOBILE ALLIANCE IS NOT LIABLE FOR AND HEREBY DISCLAIMS ANY
  	DIRECT, INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR
  	EXEMPLARY DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE OF
  	DOCUMENTS AND THE INFORMATION CONTAINED IN THE DOCUMENTS.

  	Copyright 2010 Open Mobile Alliance Ltd.  All Rights Reserved.
  	Used with the permission of the Open Mobile Alliance Ltd. under the
  	terms set forth above.

	-->
	<!--
		CHANGE HISTORY 
		20091127 File created by Sune Jakobsson, Telenor ASA
		20091201 Replaced the disclaimer, and added a description
		20091203 Corrected a few typos
		20091204 Released version after Vienna meeting
		20091211 Final alignment with all TS's
		20100112 Fixed errors to align with OMA-TS-ParlayREST_Payment-V1_0-20091216-D  
				during CONR (see CR OMA-ARC-REST-2009-0178R01)
		20100201 Changed type names to lower case 
		20100203 Changed name space and fixed element naming
		20100228 Updates from 82R02 and 99
		20100527 Added serverReferenceCode element as per CR 0241-R01
		20100616 Fixed position of serverReferenceCode / originalServerReferenceCode to align with OMA-TS-ParlayREST-Payment-V1_0-20100616-D.doc
		20100629 Editorial: Fixing import declaration 
		20100701 CR OMA-ARC-REST-2010-0340-CR_Aligning_Payment_XSD_with_CRs_337_and_292R01 implemented
		20100930 CR OMA-ARC-REST-2010-0555R02-CR_Close_89_for_xsd_disclaimer_Payment
		20101123 Candidate
	-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:common="urn:oma:xml:rest:common:1"
   xmlns="urn:oma:xml:rest:payment:1" targetNamespace="urn:oma:xml:rest:payment:1" version="1.0">
   
   <xsd:annotation>
      <xsd:documentation>This schema defines the XML for validating data used in the payment
         enabler.</xsd:documentation>
   </xsd:annotation>
   
   <xsd:import namespace="urn:oma:xml:rest:common:1"
      schemaLocation="http://www.openmobilealliance.org/tech/profiles/rest_common-v1_0.xsd"/>
   
   <xsd:element name="paymentTransactionList" type="PaymentTransactionList"/>
   
   <xsd:complexType name="PaymentTransactionList">
      <xsd:sequence>
         <xsd:element name="amountTransaction" type="AmountTransaction" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="amountSplitTransaction" type="AmountSplitTransaction" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="volumeTransaction" type="VolumeTransaction" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="volumeSplitTransaction" type="VolumeSplitTransaction" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="volumeReservationTransaction" type="VolumeReservationTransaction" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="amountReservationTransaction" type="AmountReservationTransaction" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:element name="amountTransaction" type="AmountTransaction"/>
   
   <xsd:complexType name="AmountTransaction">
      <xsd:sequence>
         <xsd:element name="endUserId" type="xsd:anyURI" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="paymentAmount" type="PaymentAmount" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="transactionOperationStatus" type="TransactionOperationStatus" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceCode" type="xsd:string" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="serverReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="originalServerReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="clientCorrelator" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:element name="amountSplitTransaction" type="AmountSplitTransaction"/>
   
   <xsd:complexType name="AmountSplitTransaction">
      <xsd:sequence>
         <xsd:element name="endUserShare" type="EndUserShare" maxOccurs="unbounded" minOccurs="1"/>
         <xsd:element name="paymentAmount" type="PaymentAmount" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="transactionOperationStatus" type="TransactionOperationStatus" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceCode" type="xsd:string" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="serverReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="originalServerReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="clientCorrelator" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:element name="volumeTransaction" type="VolumeTransaction"/>
   
   <xsd:complexType name="VolumeTransaction">
      <xsd:sequence>
         <xsd:element name="endUserId" type="xsd:anyURI" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="paymentVolume" type="PaymentVolume" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="transactionOperationStatus" type="TransactionOperationStatus" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceCode" type="xsd:string" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="serverReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="originalServerReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="clientCorrelator" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:element name="volumeSplitTransaction" type="VolumeSplitTransaction"/>
   
   <xsd:complexType name="VolumeSplitTransaction">
      <xsd:sequence>
         <xsd:element name="endUserShare" type="EndUserShare" maxOccurs="unbounded" minOccurs="1"/>
         <xsd:element name="paymentVolume" type="PaymentVolume" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="transactionOperationStatus" type="TransactionOperationStatus" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceCode" type="xsd:string" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="serverReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="originalServerReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="clientCorrelator" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:element name="amountReservationTransaction" type="AmountReservationTransaction"/>
   
   <xsd:complexType name="AmountReservationTransaction">
      <xsd:sequence>
         <xsd:element name="endUserId" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="paymentAmount" type="PaymentAmount" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="transactionOperationStatus" type="TransactionOperationStatus" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceSequence" type="xsd:int" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="serverReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="originalServerReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="clientCorrelator" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:element name="volumeReservationTransaction" type="VolumeReservationTransaction"/>
   
   <xsd:complexType name="VolumeReservationTransaction">
      <xsd:sequence>
         <xsd:element name="endUserId" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="paymentVolume" type="PaymentVolume" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="transactionOperationStatus" type="TransactionOperationStatus" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceSequence" type="xsd:int" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="referenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="serverReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="originalServerReferenceCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="clientCorrelator" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="resourceURL" type="xsd:anyURI" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="link" type="common:Link" maxOccurs="unbounded" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:simpleType name="TransactionOperationStatus">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Charged"/>
         <xsd:enumeration value="Refunded"/>
         <xsd:enumeration value="Reserved"/>
         <xsd:enumeration value="Released"/>
         <xsd:enumeration value="Denied"/>
         <xsd:enumeration value="Refused"/>
      </xsd:restriction>
   </xsd:simpleType>
   
   <xsd:element name="paymentAmount" type="PaymentAmount"/>
   
   <xsd:complexType name="PaymentAmount">
      <xsd:sequence>
         <xsd:element name="chargingInformation" type="common:ChargingInformation" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="totalAmountCharged" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="totalAmountRefunded" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="amountReserved" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="chargingMetaData" type="ChargingMetaData" maxOccurs="1" minOccurs="0"
         />
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:complexType name="PaymentVolume">
      <xsd:sequence>
         <xsd:element name="billingText" type="xsd:string" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="volume" type="xsd:decimal" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="ratingParameter" type="RatingParameter" maxOccurs="unbounded" minOccurs="0"/>
         <xsd:element name="totalVolumeCharged" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="totalVolumeRefunded" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="volumeReserved" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="chargingMetaData" type="ChargingMetaData" maxOccurs="1" minOccurs="0"
         />
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:complexType name="ChargingMetaData">
      <xsd:sequence>
         <xsd:element name="onBehalfOf" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="purchaseCategoryCode" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="channel" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="taxAmount" type="xsd:decimal" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="mandateId" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="serviceId" type="xsd:string" maxOccurs="1" minOccurs="0"/>
         <xsd:element name="productId" type="xsd:string" maxOccurs="1" minOccurs="0"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:complexType name="EndUserShare">
      <xsd:sequence>
         <xsd:element name="endUserId" type="xsd:anyURI" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="percent" type="xsd:int" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
   </xsd:complexType>
   
   <xsd:complexType name="RatingParameter">
      <xsd:sequence>
         <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="1"/>
         <xsd:element name="value" type="xsd:string" maxOccurs="1" minOccurs="1"/>
      </xsd:sequence>
   </xsd:complexType>
   
   
</xsd:schema>