<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:mule="http://www.mulesoft.org/schema/mule/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://www.mulesoft.org/schema/mule/paypal">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"></xs:import>
  <xs:import schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" namespace="http://www.springframework.org/schema/beans"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/core/current/mule.xsd" namespace="http://www.mulesoft.org/schema/mule/core"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/devkit/current/mule-devkit.xsd" namespace="http://www.mulesoft.org/schema/mule/devkit"></xs:import>
  <xs:simpleType name="integerType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:integer"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="decimalType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:decimal"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="floatType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:float"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="doubleType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:double"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="dateTimeType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:dateTime"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="longType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:long"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="byteType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:byte"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="booleanType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:boolean"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="anyUriType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:anyURI"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="charType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="1"></xs:minLength>
          <xs:maxLength value="1"></xs:maxLength>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:complexType name="XmlType">
    <xs:sequence>
      <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
    </xs:sequence>
    <xs:attribute name="ref" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation>The reference object for this parameter</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:element xmlns:devkit="http://www.mulesoft.org/schema/mule/devkit" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="config" substitutionGroup="mule:abstract-extension" devkit:javaClass="org.mule.module.paypal.config.PaypalCloudConnectorLifecycleAdapter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>Cloud connector for Paypal.

&lt;p&gt;
PayPal is a service that enables you to pay, send
money, and accept payments without revealing your financial information.
&lt;/p&gt;
&lt;p&gt;
PayPal acts like a digital wallet where you can securely store all your payment
options, such as your bank account and credit card. When you want to make a
payment, you don't have to pull out your credit card or type your billing info
every time. Simply click on the PayPal checkout button, log in to your PayPal
account, and select your preferred payment method. We'll complete the payment
process���without sharing your info with merchants and sellers.
&lt;/p&gt;
&lt;p&gt;
This connector lets mule users to perform
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_dcc_hub-outside"&gt;Direct Payments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&amp;content_ID=developer/howto_admin_authcapture"&gt;Authorization and capture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Void transactions&lt;/li&gt;
&lt;li&gt;Reauthorize transactions&lt;/li&gt;
&lt;li&gt;Address validation&lt;/li&gt;
&lt;li&gt;Balance check&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;</xs:documentation>
          </xs:annotation>
          <xs:attribute name="name" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>Give a name to this configuration so it can be later referenced by config-ref.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="username" use="required" type="xs:string">
            <xs:annotation>
              <xs:documentation>Paypal username</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="password" use="required" type="xs:string">
            <xs:annotation>
              <xs:documentation>Paypal password</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="defaultCurrency" use="optional" type="CurrencyCodeEnumType">
            <xs:annotation>
              <xs:documentation>Default currency used if none is specified in the operation</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="signature" use="required" type="xs:string">
            <xs:annotation>
              <xs:documentation>PayPal-generated unique digital signature.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="subject" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>An indicator in an API call of the account for whom the call is being made</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-balance" substitutionGroup="mule:abstract-message-processor" type="GetBalanceType">
    <xs:annotation>
      <xs:documentation>Obtain the available balance for a PayPal account.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetBalanceType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="returnAllCurrencies" default="true" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If true, returns the balance for each currency holding, otherwise only the balance for the primary currency holding</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="address-verify" substitutionGroup="mule:abstract-message-processor" type="AddressVerifyType">
    <xs:annotation>
      <xs:documentation>Confirms whether a postal address and postal code match those of the specified
PayPal account holder.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="AddressVerifyType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="email" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the email of the account's holder</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="street" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the street to verify</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="zip" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the zip address to verify</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="capture" substitutionGroup="mule:abstract-message-processor" type="CaptureType">
    <xs:annotation>
      <xs:documentation>Capture an authorized payment.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CaptureType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authorizationId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The authorization identification number of the payment you want to capture. This is the transaction id returned from DoExpressCheckoutPayment or DoDirectPayment. Character length and limits: 19 single-byte characters maximum.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="complete" use="required" type="booleanType">
          <xs:annotation>
            <xs:documentation>The value Complete indicates that this the last capture you intend to make. The value NotComplete indicates that you intend to make additional captures</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="amount" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Amount to capture. Limitations: Value is a positive number which cannot exceed $10,000 USD in any currency. No currency symbol. Must have two decimal places, decimal separator must be a period (.), and the optional thousands separator must be a comma (,). @param amountCurrency The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="amountCurrency" use="optional" type="CurrencyCodeEnumType">
          <xs:annotation>
            <xs:documentation>The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="invoiceId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Your invoice number or other identification number that is displayed to the merchant and customer in his transaction history. NOTE: This value on DoCapture will overwrite a value previously set on DoAuthorization. NOTE: The value is recorded only if the authorization you are capturing is an order authorization, not a basic authorization. Character length and limits: 127 single-byte alphanumeric characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="note" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An informational note about this settlement that is displayed to the payer in email and in his transaction history. Character length and limits: 255 single-byte characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="softDescriptor" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The soft descriptor is a per transaction description of the payment that is passed to the consumer's credit card statement.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="authorize" substitutionGroup="mule:abstract-message-processor" type="AuthorizeType">
    <xs:annotation>
      <xs:documentation>Authorize a payment</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="AuthorizeType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of the order's transaction identification number returned by PayPal. Character length and limits: 19 single-byte characters maximum.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="amount" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Amount to authorize. Limitations: Value is a positive number which cannot exceed $10,000 USD in any currency. No currency symbol. Must have two decimal places, decimal separator must be a period (.), and the optional thousands separator must be a comma (,). @param amountCurrency The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="amountCurrency" use="optional" type="CurrencyCodeEnumType">
          <xs:annotation>
            <xs:documentation>The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="transactionEntity" use="optional" type="TransactionEntityEnumType">
          <xs:annotation>
            <xs:documentation>Type of transaction to authorize. The only allowable value is Order, which means that the transaction represents a customer order that can be fulfilled over 29 days.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-pal-details" substitutionGroup="mule:abstract-message-processor" type="GetPalDetailsType">
    <xs:annotation>
      <xs:documentation>Obtain your Pal ID, which is the PayPal-assigned merchant account number,
and other information about your account. You need the account number when
working with dynamic versions of PayPal buttons and logos.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetPalDetailsType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="re-authorize" substitutionGroup="mule:abstract-message-processor" type="ReAuthorizeType">
    <xs:annotation>
      <xs:documentation>Reauthorize an amount for a previously authorized transaction.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ReAuthorizeType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authorizationId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The value of a previously authorized transaction identification number returned by PayPal. Character length and limits: 19 single-byte characters maximum.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="amount" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Amount to reauthorize. Limitations: Value is a positive number which cannot exceed $10,000 USD in any currency. No currency symbol. Must have two decimal places, decimal separator must be a period (.), and the optional thousands separator must be a comma (,). @param amountCurrency The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="amountCurrency" use="optional" type="CurrencyCodeEnumType">
          <xs:annotation>
            <xs:documentation>The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="do-void" substitutionGroup="mule:abstract-message-processor" type="DoVoidType">
    <xs:annotation>
      <xs:documentation>Void an order or an authorization.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DoVoidType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authorizationId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The original authorization ID specifying the authorization to void or, to void an order, the order ID. IMPORTANT: If you are voiding a transaction that has been reauthorized, use the ID from the original authorization, and not the reauthorization. Character length and limits: 19 single-byte characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="note" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An informational note about this void that is displayed to the payer in email and in his transaction history. Character length and limits: 255 single-byte characters</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-transaction-details" substitutionGroup="mule:abstract-message-processor" type="GetTransactionDetailsType">
    <xs:annotation>
      <xs:documentation>Obtain information about a specific transaction.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetTransactionDetailsType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Unique identifier of a transaction. NOTE: The details for some kinds of transactions cannot be retrieved with GetTransactionDetails. You cannot obtain details of bank transfer withdrawals, for example. Character length and limitations: 17 single-byte alphanumeric characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="manage-pending-transaction-status" substitutionGroup="mule:abstract-message-processor" type="ManagePendingTransactionStatusType">
    <xs:annotation>
      <xs:documentation>Accept or deny a pending transaction held by Fraud Management Filters.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ManagePendingTransactionStatusType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The transaction ID of the payment transaction.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="action" use="required" type="FMFPendingTransactionActionEnumType">
          <xs:annotation>
            <xs:documentation>The operation you want to perform on the transaction, which is one of the following actions: () Accept - accepts the payment () Deny - rejects the payment</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="refund-transaction" substitutionGroup="mule:abstract-message-processor" type="RefundTransactionType">
    <xs:annotation>
      <xs:documentation>Issue a refund to the PayPal account holder associated with a transaction.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="RefundTransactionType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Unique identifier of a transaction. Character length and limitations: 17 single-byte alphanumeric characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="invoiceId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Your own invoice or tracking number. Character length and limitations: 127 single-byte alphanumeric characters</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="refundType" use="required" type="RefundEnumType">
          <xs:annotation>
            <xs:documentation>Type of refund you are making: () Full - default () Partial</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="amount" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Refund amount. Amount is required if RefundType is Partial. NOTE: If RefundType is not specified, do not set the Amount. @param amountCurrency The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="amountCurrency" use="optional" type="CurrencyCodeEnumType">
          <xs:annotation>
            <xs:documentation>The currency in which amount is expressed. If it is null, then the defaultCurrency is used.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="memo" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Custom memo about the refund. Character length and limitations: 255 single-byte alphanumeric characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="mass-pay" substitutionGroup="mule:abstract-message-processor" type="MassPayType">
    <xs:annotation>
      <xs:documentation>Make a payment to one or more PayPal account holders.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="MassPayType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="mass-pay-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Details of each payment. NOTE: A single request can include up to 250 MassPayItems.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="mass-pay-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:attribute name="value-ref" use="required" type="xs:string"></xs:attribute>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="emailSubject" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The subject line of the email that PayPal sends when the transaction is completed. The subject line is the same for all recipients. Character length and limitations: 255 single-byte alphanumeric characters.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="receiverType" use="required" type="ReceiverInfoCodeEnumType">
          <xs:annotation>
            <xs:documentation>Indicates how you identify the recipients of payments in this call to MassPay. Must be EmailAddress or UserID.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/paypal" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="do-direct-payment" substitutionGroup="mule:abstract-message-processor" type="DoDirectPaymentType">
    <xs:annotation>
      <xs:documentation>Process a credit card payment.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DoDirectPaymentType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="card-details" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Credit card details</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="card-detail" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
          <xs:element name="payment-details" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Payment details</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="payment-detail" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ipAddress" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>IP address of the payer's browser. NOTE: PayPal records this IP addresses as a means to detect possible fraud. Character length and limitations: 15 single-byte characters, including periods, for example: 255.255.255.255.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="paymentAction" use="optional" type="PaymentActionCodeEnumType">
          <xs:annotation>
            <xs:documentation>How you want to obtain payment: () "Authorization" indicates that this payment is a basic authorization subject to settlement with PayPal Authorization &amp; Capture. () "Sale" indicates that this is a final sale for which you are requesting payment.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/paypal" name="setReturnFMFDetails" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Flag to indicate whether you want the results returned by Fraud Management Filters. By default, you do not receive this information.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="CurrencyCodeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="AFA"></xs:enumeration>
          <xs:enumeration value="ALL"></xs:enumeration>
          <xs:enumeration value="DZD"></xs:enumeration>
          <xs:enumeration value="ADP"></xs:enumeration>
          <xs:enumeration value="AOA"></xs:enumeration>
          <xs:enumeration value="ARS"></xs:enumeration>
          <xs:enumeration value="AMD"></xs:enumeration>
          <xs:enumeration value="AWG"></xs:enumeration>
          <xs:enumeration value="AZM"></xs:enumeration>
          <xs:enumeration value="BSD"></xs:enumeration>
          <xs:enumeration value="BHD"></xs:enumeration>
          <xs:enumeration value="BDT"></xs:enumeration>
          <xs:enumeration value="BBD"></xs:enumeration>
          <xs:enumeration value="BYR"></xs:enumeration>
          <xs:enumeration value="BZD"></xs:enumeration>
          <xs:enumeration value="BMD"></xs:enumeration>
          <xs:enumeration value="BTN"></xs:enumeration>
          <xs:enumeration value="INR"></xs:enumeration>
          <xs:enumeration value="BOV"></xs:enumeration>
          <xs:enumeration value="BOB"></xs:enumeration>
          <xs:enumeration value="BAM"></xs:enumeration>
          <xs:enumeration value="BWP"></xs:enumeration>
          <xs:enumeration value="BRL"></xs:enumeration>
          <xs:enumeration value="BND"></xs:enumeration>
          <xs:enumeration value="BGL"></xs:enumeration>
          <xs:enumeration value="BGN"></xs:enumeration>
          <xs:enumeration value="BIF"></xs:enumeration>
          <xs:enumeration value="KHR"></xs:enumeration>
          <xs:enumeration value="CAD"></xs:enumeration>
          <xs:enumeration value="CVE"></xs:enumeration>
          <xs:enumeration value="KYD"></xs:enumeration>
          <xs:enumeration value="XAF"></xs:enumeration>
          <xs:enumeration value="CLF"></xs:enumeration>
          <xs:enumeration value="CLP"></xs:enumeration>
          <xs:enumeration value="CNY"></xs:enumeration>
          <xs:enumeration value="COP"></xs:enumeration>
          <xs:enumeration value="KMF"></xs:enumeration>
          <xs:enumeration value="CDF"></xs:enumeration>
          <xs:enumeration value="CRC"></xs:enumeration>
          <xs:enumeration value="HRK"></xs:enumeration>
          <xs:enumeration value="CUP"></xs:enumeration>
          <xs:enumeration value="CYP"></xs:enumeration>
          <xs:enumeration value="CZK"></xs:enumeration>
          <xs:enumeration value="DKK"></xs:enumeration>
          <xs:enumeration value="DJF"></xs:enumeration>
          <xs:enumeration value="DOP"></xs:enumeration>
          <xs:enumeration value="TPE"></xs:enumeration>
          <xs:enumeration value="ECV"></xs:enumeration>
          <xs:enumeration value="ECS"></xs:enumeration>
          <xs:enumeration value="EGP"></xs:enumeration>
          <xs:enumeration value="SVC"></xs:enumeration>
          <xs:enumeration value="ERN"></xs:enumeration>
          <xs:enumeration value="EEK"></xs:enumeration>
          <xs:enumeration value="ETB"></xs:enumeration>
          <xs:enumeration value="FKP"></xs:enumeration>
          <xs:enumeration value="FJD"></xs:enumeration>
          <xs:enumeration value="GMD"></xs:enumeration>
          <xs:enumeration value="GEL"></xs:enumeration>
          <xs:enumeration value="GHC"></xs:enumeration>
          <xs:enumeration value="GIP"></xs:enumeration>
          <xs:enumeration value="GTQ"></xs:enumeration>
          <xs:enumeration value="GNF"></xs:enumeration>
          <xs:enumeration value="GWP"></xs:enumeration>
          <xs:enumeration value="GYD"></xs:enumeration>
          <xs:enumeration value="HTG"></xs:enumeration>
          <xs:enumeration value="HNL"></xs:enumeration>
          <xs:enumeration value="HKD"></xs:enumeration>
          <xs:enumeration value="HUF"></xs:enumeration>
          <xs:enumeration value="ISK"></xs:enumeration>
          <xs:enumeration value="IDR"></xs:enumeration>
          <xs:enumeration value="IRR"></xs:enumeration>
          <xs:enumeration value="IQD"></xs:enumeration>
          <xs:enumeration value="ILS"></xs:enumeration>
          <xs:enumeration value="JMD"></xs:enumeration>
          <xs:enumeration value="JPY"></xs:enumeration>
          <xs:enumeration value="JOD"></xs:enumeration>
          <xs:enumeration value="KZT"></xs:enumeration>
          <xs:enumeration value="KES"></xs:enumeration>
          <xs:enumeration value="AUD"></xs:enumeration>
          <xs:enumeration value="KPW"></xs:enumeration>
          <xs:enumeration value="KRW"></xs:enumeration>
          <xs:enumeration value="KWD"></xs:enumeration>
          <xs:enumeration value="KGS"></xs:enumeration>
          <xs:enumeration value="LAK"></xs:enumeration>
          <xs:enumeration value="LVL"></xs:enumeration>
          <xs:enumeration value="LBP"></xs:enumeration>
          <xs:enumeration value="LSL"></xs:enumeration>
          <xs:enumeration value="LRD"></xs:enumeration>
          <xs:enumeration value="LYD"></xs:enumeration>
          <xs:enumeration value="CHF"></xs:enumeration>
          <xs:enumeration value="LTL"></xs:enumeration>
          <xs:enumeration value="MOP"></xs:enumeration>
          <xs:enumeration value="MKD"></xs:enumeration>
          <xs:enumeration value="MGF"></xs:enumeration>
          <xs:enumeration value="MWK"></xs:enumeration>
          <xs:enumeration value="MYR"></xs:enumeration>
          <xs:enumeration value="MVR"></xs:enumeration>
          <xs:enumeration value="MTL"></xs:enumeration>
          <xs:enumeration value="EUR"></xs:enumeration>
          <xs:enumeration value="MRO"></xs:enumeration>
          <xs:enumeration value="MUR"></xs:enumeration>
          <xs:enumeration value="MXN"></xs:enumeration>
          <xs:enumeration value="MXV"></xs:enumeration>
          <xs:enumeration value="MDL"></xs:enumeration>
          <xs:enumeration value="MNT"></xs:enumeration>
          <xs:enumeration value="XCD"></xs:enumeration>
          <xs:enumeration value="MZM"></xs:enumeration>
          <xs:enumeration value="MMK"></xs:enumeration>
          <xs:enumeration value="ZAR"></xs:enumeration>
          <xs:enumeration value="NAD"></xs:enumeration>
          <xs:enumeration value="NPR"></xs:enumeration>
          <xs:enumeration value="ANG"></xs:enumeration>
          <xs:enumeration value="XPF"></xs:enumeration>
          <xs:enumeration value="NZD"></xs:enumeration>
          <xs:enumeration value="NIO"></xs:enumeration>
          <xs:enumeration value="NGN"></xs:enumeration>
          <xs:enumeration value="NOK"></xs:enumeration>
          <xs:enumeration value="OMR"></xs:enumeration>
          <xs:enumeration value="PKR"></xs:enumeration>
          <xs:enumeration value="PAB"></xs:enumeration>
          <xs:enumeration value="PGK"></xs:enumeration>
          <xs:enumeration value="PYG"></xs:enumeration>
          <xs:enumeration value="PEN"></xs:enumeration>
          <xs:enumeration value="PHP"></xs:enumeration>
          <xs:enumeration value="PLN"></xs:enumeration>
          <xs:enumeration value="USD"></xs:enumeration>
          <xs:enumeration value="QAR"></xs:enumeration>
          <xs:enumeration value="ROL"></xs:enumeration>
          <xs:enumeration value="RUB"></xs:enumeration>
          <xs:enumeration value="RUR"></xs:enumeration>
          <xs:enumeration value="RWF"></xs:enumeration>
          <xs:enumeration value="SHP"></xs:enumeration>
          <xs:enumeration value="WST"></xs:enumeration>
          <xs:enumeration value="STD"></xs:enumeration>
          <xs:enumeration value="SAR"></xs:enumeration>
          <xs:enumeration value="SCR"></xs:enumeration>
          <xs:enumeration value="SLL"></xs:enumeration>
          <xs:enumeration value="SGD"></xs:enumeration>
          <xs:enumeration value="SKK"></xs:enumeration>
          <xs:enumeration value="SIT"></xs:enumeration>
          <xs:enumeration value="SBD"></xs:enumeration>
          <xs:enumeration value="SOS"></xs:enumeration>
          <xs:enumeration value="LKR"></xs:enumeration>
          <xs:enumeration value="SDD"></xs:enumeration>
          <xs:enumeration value="SRG"></xs:enumeration>
          <xs:enumeration value="SZL"></xs:enumeration>
          <xs:enumeration value="SEK"></xs:enumeration>
          <xs:enumeration value="SYP"></xs:enumeration>
          <xs:enumeration value="TWD"></xs:enumeration>
          <xs:enumeration value="TJS"></xs:enumeration>
          <xs:enumeration value="TZS"></xs:enumeration>
          <xs:enumeration value="THB"></xs:enumeration>
          <xs:enumeration value="XOF"></xs:enumeration>
          <xs:enumeration value="TOP"></xs:enumeration>
          <xs:enumeration value="TTD"></xs:enumeration>
          <xs:enumeration value="TND"></xs:enumeration>
          <xs:enumeration value="TRL"></xs:enumeration>
          <xs:enumeration value="TMM"></xs:enumeration>
          <xs:enumeration value="UGX"></xs:enumeration>
          <xs:enumeration value="UAH"></xs:enumeration>
          <xs:enumeration value="AED"></xs:enumeration>
          <xs:enumeration value="GBP"></xs:enumeration>
          <xs:enumeration value="USS"></xs:enumeration>
          <xs:enumeration value="USN"></xs:enumeration>
          <xs:enumeration value="UYU"></xs:enumeration>
          <xs:enumeration value="UZS"></xs:enumeration>
          <xs:enumeration value="VUV"></xs:enumeration>
          <xs:enumeration value="VEB"></xs:enumeration>
          <xs:enumeration value="VND"></xs:enumeration>
          <xs:enumeration value="MAD"></xs:enumeration>
          <xs:enumeration value="YER"></xs:enumeration>
          <xs:enumeration value="YUM"></xs:enumeration>
          <xs:enumeration value="ZMK"></xs:enumeration>
          <xs:enumeration value="ZWD"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="TransactionEntityEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="NONE"></xs:enumeration>
          <xs:enumeration value="AUTH"></xs:enumeration>
          <xs:enumeration value="REAUTH"></xs:enumeration>
          <xs:enumeration value="ORDER"></xs:enumeration>
          <xs:enumeration value="PAYMENT"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="FMFPendingTransactionActionEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ACCEPT"></xs:enumeration>
          <xs:enumeration value="DENY"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="RefundEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="OTHER"></xs:enumeration>
          <xs:enumeration value="FULL"></xs:enumeration>
          <xs:enumeration value="PARTIAL"></xs:enumeration>
          <xs:enumeration value="EXTERNAL_DISPUTE"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="ReceiverInfoCodeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EMAIL_ADDRESS"></xs:enumeration>
          <xs:enumeration value="USER_ID"></xs:enumeration>
          <xs:enumeration value="PHONE_NUMBER"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="PaymentActionCodeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="NONE"></xs:enumeration>
          <xs:enumeration value="AUTHORIZATION"></xs:enumeration>
          <xs:enumeration value="SALE"></xs:enumeration>
          <xs:enumeration value="ORDER"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
</xs:schema>