poc-reports/es_elt/xsd/auditData/rpe/PaymentRequest.xsd
2026-01-27 14:48:39 +01:00

238 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) Revenue Collection Systems France S.A.S. - 2018-2025 ALL RIGHTS RESERVED
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:head="http://www.thales.dc/Headers"
xmlns:pay="http://www.thales.dc/PaymentRequestType"
xmlns:cpt="http://www.thales.dc/CustomerPaymentType"
xmlns:debt="http://www.thales.dc/PaymentTriggerSource"
xmlns="http://www.thales.dc/PaymentRequest"
targetNamespace="http://www.thales.dc/PaymentRequest"
version="1.2.1">
<!-- Import of xsd file -->
<xs:import namespace="http://www.thales.dc/Headers" schemaLocation="../../common/Headers.xsd"/>
<xs:import namespace="http://www.thales.dc/PaymentRequestType" schemaLocation="../../common/PaymentRequestType.xsd"/>
<xs:import namespace="http://www.thales.dc/PaymentTriggerSource" schemaLocation="../../common/PaymentTriggerSource.xsd"/>
<xs:import namespace="http://www.thales.dc/CustomerPaymentType" schemaLocation="../../common/CustomerPaymentType.xsd"/>
<!-- Annotate all modification of the xsd file according to version -->
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>Version List</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>04/11/2021 - Version 1.0.0</xs:documentation>
<xs:documentation>
1st part: Add the AuditMessages, AuditMessage, Headers and Payload element for the XML validation
2nd part: Add version to xsd schema
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>02/08/2022 - Version 1.1.0</xs:documentation>
<xs:documentation>
Add field PaymentSchemeIdentification
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>23/08/2023 - Version 1.2.0</xs:documentation>
<xs:documentation>
Add field SequenceNumber
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>09/12/2024 - Version 1.2.1</xs:documentation>
<xs:documentation>
Add customer id field when a payment mean is used
</xs:documentation>
</xs:annotation>
<!-- Description of the AuditMessages structure -->
<xs:element name="AuditMessages" type="AuditMessagesType"/>
<xs:complexType name="AuditMessagesType">
<xs:sequence>
<!-- List of AuditMessage -->
<xs:element name="AuditMessage" type="AuditMessageType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<!-- version of AuditMessages structure -->
<xs:attribute name="PaymentRequestXsdVersion" type="xs:string" fixed="1.1"/>
</xs:complexType>
<!-- Description of the AuditMessage structure -->
<xs:complexType name="AuditMessageType">
<xs:sequence>
<!-- Headers structure -->
<xs:element name="Headers" type="head:HeadersType" minOccurs="0"/>
<!-- Payload is a PaymentRequestAuditExchange structure -->
<xs:element name="Payload" type="PaymentRequestAuditExchange"/>
</xs:sequence>
</xs:complexType>
<!-- Description of the PaymentRequestAuditExchange structure -->
<xs:complexType name="PaymentRequestAuditExchange">
<xs:annotation>
<xs:documentation>rpe_media_payment_request: sent after each Payment Request (Nominal/Settlement/DebtRecovery)</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="Amount" type="xs:decimal"/>
<xs:element name="MediaSerialNumber" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
In case of PaymentRequest linked to travel, there will always be the MediaSerialNumber of the corresponding card.
The MediaSerialNumber can be empty if the PaymentRequest is linked to autorenew/autoreload or online shopping with a payment means.
In this case, the paymentMeansId will be specified.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MediaId" type="xs:string" minOccurs="0"/>
<xs:element name="MediaType" type="xs:string" minOccurs="0"/>
<xs:element name="MessageId" type="xs:string" minOccurs="0"/>
<xs:element name="MerchantId" type="xs:string" minOccurs="0"/>
<xs:element name="CurrencyCode" type="xs:string" minOccurs="0"/>
<xs:element name="SecurityToken" type="xs:string" minOccurs="0"/>
<xs:element name="OperationType" type="xs:string" minOccurs="0"/>
<xs:element name="Mode" type="xs:string" minOccurs="0"/>
<xs:element name="FirstTravelEventDateTime" type="xs:dateTime" minOccurs="0"/>
<xs:element name="LastTravelEventDateTime" type="xs:dateTime" minOccurs="0"/>
<xs:element name="AuthorizationCode" type="xs:string" minOccurs="0"/>
<xs:element name="SettlementLabel" type="xs:string" minOccurs="0"/>
<xs:element name="PaymentGatewayBlob" type="xs:string" minOccurs="0"/>
<xs:element name="OccurrenceDate" type="xs:dateTime"/>
<xs:element name="PaymentSchemeIdentification" type="xs:string" minOccurs="0"/>
<xs:element name="PaymentId" type="xs:string"/>
<xs:element name="DebtReferenceId" type="xs:string" minOccurs="0"/>
<xs:element name="PaymentType" type="cpt:CustomerPaymentType"/>
<xs:element name="PaymentMeansId" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
If a payment means was used for this settlement, the paymentMeansId related.
This can happen for autorenew/autoreload or online shopping with a payment means.
This can also happen for PayAsYouGo traveling with a payment agreement.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentMeansType" type="xs:string" minOccurs="0"/>
<xs:element name="CustomerId" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Customer id linked to the payment mean used for the payment
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IsDebtRecovery" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Specifies if the payment request was a debt recovery or not.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IsLastAttempt" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Specifies if the payment request was a last MIT debt recovery.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IsFirstDebitAttempt" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Specifies if the payment request is the first debt recovery before plan debt recovery.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentTriggerSource" type="debt:PaymentTriggerSource" minOccurs="0">
<xs:annotation>
<xs:documentation>
Payment trigger source : can be trigger by job, api call, a emv card tap or first ride risk
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PaymentRequestType" type="pay:PaymentRequestType">
<xs:annotation>
<xs:documentation>
The type of payment request:
-AUTHORIZATION_ONLY: there will only be an authorization.
-AUTHORIZATION_AND_SETTLEMENT: there will be an authorization and then a settlement (if the authorization is approved).
-SETTLEMENT_ONLY: there will only be a settlement.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SequenceNumber" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>Sequence number for each request for tracking and mapping purposes</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InvolvedDailyMediaConsumptions" minOccurs="0">
<xs:annotation>
<xs:documentation>Daily media consumptions involved in payment request</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="InvolvedDailyMediaConsumption" type="DailyMediaConsumption" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RetryCount" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>retry count for payment request</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="DailyMediaConsumption">
<xs:all>
<xs:element name="DailyMediaConsumptionId" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the daily media consumption that was involved in this payment request</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ModifiedLegs" minOccurs="0">
<xs:complexType>
<xs:all>
<xs:element name="AddedLegs" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="AddedLeg" type="Leg" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RemovedLegs" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="RemovedLeg" type="Leg" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Leg">
<xs:all>
<xs:element name="LegId" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the leg</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>