VIP Preferred Withdrawal

VIP Cashline / VIP Preferred Withdrawal allows to make payments to US bank accounts.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

253

VIPPreferredWithdrawal

WithdrawnByProvider (20)

Payment method interaction type: Synchronous execution (see Interaction Types).

📘

VIP Preferred Withdrawal Returns

Refer to VIP Preferred Withdrawal Return for information on how to correctly handle the notifications for VIP Preferred Withdrawal Returns

Redirect Integration

Payment Method VIPPreferredWithdrawal is also available in the Checkout.

Example getRedirectData request, redirection to the Selection page (=directly to PXP Checkout selection page):

<getRedirectDataRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <merchantID>{{merchant}}</merchantID>
    <redirectParameters xsi:type="paymentMethodSelectionWithDetailsRedirectParameters">
        <shopID>{{shop}}</shopID>
        <httpMethod>GET</httpMethod>
        <returnUrl>http://return</returnUrl>
        <languageCode>en</languageCode>
        <currencyCode>usd</currencyCode>
        <countryCode>us</countryCode>
        <additionalDetails>
            <detail xsi:type="keyStringValuePair">
                <key>Description</key>
                <value>some description</value>
            </detail>
        </additionalDetails>
        <user>
            <id>hc20220202154907</id>
         </user>
        <merchantTransactionID>{{checkoutMerchantTransactionID}}</merchantTransactionID>
        <grossAmount>100.00</grossAmount>
        <minPaymentLimitAmount>10</minPaymentLimitAmount>
        <maxPaymentLimitAmount>3000</maxPaymentLimitAmount>
        <expirationTimeSpanInSeconds>3600</expirationTimeSpanInSeconds>
        <successUrl>http://success</successUrl>
        <pendingUrl>http://pending</pendingUrl>
        <errorUrl>http://error</errorUrl>
        <cancelUrl>http://cancel</cancelUrl>
        <refusedUrl>http://refused</refusedUrl>
        <paymentDirection>Withdrawal</paymentDirection>
    </redirectParameters>
</getRedirectDataRequest>

Example getRedirectData request, redirection to the Detail page (=directly to PXP Checkout detail page):

<getRedirectDataRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <merchantID>{{merchant}}</merchantID>
    <redirectParameters xsi:type="paymentMethodDetailsRedirectParameters">
        <shopID>{{shop}}</shopID>
        <httpMethod>GET</httpMethod>
        <returnUrl>http://return</returnUrl>
        <languageCode>en</languageCode>
        <currencyCode>usd</currencyCode>
        <countryCode>us</countryCode>
        <additionalDetails>
             <detail xsi:type="keyStringValuePair">
                <key>Description</key>
                <value>my payment description</value>
            </detail>
        </additionalDetails>
         <user>
            <id>hc20220202154907</id>
         </user>
        <merchantTransactionID>{{checkoutMerchantTransactionID}}</merchantTransactionID>
        <grossAmount>100.00</grossAmount>
        <minPaymentLimitAmount>10</minPaymentLimitAmount>
        <maxPaymentLimitAmount>3000</maxPaymentLimitAmount>
        <expirationTimeSpanInSeconds>3600</expirationTimeSpanInSeconds>
       <successUrl>http://www.google.com/result?param1=success?status=success</successUrl>
        <pendingUrl>http://www.google.com/result?param1=pending?status=pending</pendingUrl>
        <errorUrl>http://www.google.com/result?param1=error?status=error</errorUrl>
        <cancelUrl>http://www.google.com/result?param1=cancel?status=cancel</cancelUrl>
        <refusedUrl>http://www.google.com/result?param1=refuse?status=refuse</refusedUrl>
        <paymentMethodID>253</paymentMethodID>
        <isPaymentMethodChangeAllowed>false</isPaymentMethodChangeAllowed>
    </redirectParameters>
</getRedirectDataRequest>

Example getRedirectData response:

<getRedirectDataResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <redirectData>
        <redirectUrl>https://payments.test.kalixa.com/Checkout/PaymentMethods/253?requestData=2faif3jjdnxcl5ohpfpoqfwo_e8d221dd-c9fe-482c-8ef1-78e380c42971</redirectUrl>
    </redirectData>
</getRedirectDataResponse>

Customer using VIP Preferred payment method to Withdraw funds

  • Customer is redirected to the PXP Checkout. The bank account used by customer for deposit is displayed to the customer.
  • Customer selects the bank account and initiates a payment using the Refund Now button available on the PXP Checkout screen.
  • PXP backend will send a notification to the merchant to approve the Withdrawal transaction. It is a synchronous callback to check with the merchant if the withdrawal is allowed or not.
  • To reject, Merchant needs to respond with ResultCode other than 0. Customer is redirected to the error url provided in the GetRedirectDataRequest.
  • To approve, Merchant needs to respond with ResultCode=0. Once the confirmation with ResultCode=0 is received from the merchant then PXP checkout sends the payment information to Mazooma.
  • Customer is redirected to the Pending page url which was provided by the merchant in the GetRedirectDataRequest. Payment status will be "PendingOnProvider"
  • VIP Preferred processes the payment and send a notification to the PXP backend when processing is completed
  • On Successful transaction, payment status will be WithdrawnByProvider and PXP will initiate a PaymentStateChangedNotification. Merchant can display the success information to the customer.
  • On failed transaction, payment status will be RefusedByProvider and and PXP will initiate a PaymentStateChangedNotification. Merchant can display the failure information to the customer.

The below screenshot shows an example of the payment selection page with VIP Preferred listed as one of the payment method.

10381038

The below screenshot shows an example of the payment details page with already previously used payment account by the customer.

997997

Example handlePaymentStateChangedNotificationRequest:

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
  <payment xmlns:q1=http://www.cqrpayments.com/PaymentProcessing xsi:type="q1:paymentWithPaymentAccount">
    <q1:merchantID>TargetCashier</q1:merchantID>
    <q1:shopID>TargetCashierShop1</q1:shopID>
    <q1:paymentMethod>
      <q1:key>253</q1:key>
      <q1:value>VIPPreferredWithdrawal</q1:value>
    </q1:paymentMethod>
    <q1:merchantTransactionID>hc-checkout-20220204-102444</q1:merchantTransactionID>
    <q1:paymentID>ae6fd69d-6b19-4720-a133-fcba48f58fe8</q1:paymentID>
    <q1:userID>hc20211207110438</q1:userID>
    <q1:paymentProvider>
      <q1:key>155</q1:key>
      <q1:value>GlobalPayments</q1:value>
    </q1:paymentProvider>
    <q1:amount currencyCode="USD">100.0000</q1:amount>
    <q1:creationType>
      <q1:key>1</q1:key>
      <q1:value>User</q1:value>
    </q1:creationType>
    <q1:userIP>10.155.19.251</q1:userIP>
    <q1:state>
      <q1:id>93c0fa95-05d1-4761-885d-69cd21eb2b4c</q1:id>
      <q1:definition>
        <q1:key>20</q1:key>
        <q1:value>WithdrawnByProvider</q1:value>
      </q1:definition>
      <q1:createdOn>2022-02-04T09:24:53.113</q1:createdOn>
      <q1:paymentStateDetails>
        <q1:detail xsi:type="q1:keyStringValuePair">
          <q1:key>ProviderResponseCode</q1:key>
          <q1:value>00</q1:value>
        </q1:detail>
        <q1:detail xsi:type="q1:keyStringValuePair">
          <q1:key>ProviderErrorMessage</q1:key>
          <q1:value>Error happened.</q1:value>
        </q1:detail>
      </q1:paymentStateDetails>
    </q1:state>
    <q1:isExecuted>true</q1:isExecuted>
    <q1:baseAmount currencyCode="EUR">75.1400</q1:baseAmount>
    <q1:paymentDetails>
      <q1:detail xsi:type="q1:keyStringValuePair">
        <q1:key>ProviderExternalID</q1:key>
        <q1:value>66524</q1:value>
      </q1:detail>
    </q1:paymentDetails>
    <q1:paymentAccount>
      <q1:paymentAccountID>c986222f-e05a-41ee-986c-11cfa93b0ede</q1:paymentAccountID>
    </q1:paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationResponse:

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<resultCode>
<key xmlns="http://www.cqrpayments.com/PaymentProcessing">0
<value xmlns="http://www.cqrpayments.com/PaymentProcessing" />
</resultCode>
<resultMessage />
<details xsi:nil="true" />
</handlePaymentStateChangedNotificationResponse>

Backend2BackendIntegration

Before doing a deposit or withdrawal with the VIP Preferred product, the merchant should - when the customer selects the payment option - perform an Account Inquiry by calling getPaymentInputDataList as described below.

📘

User enrolled

If the user is enrolled, PXP Financial returns the VIP Preferred Account Number, the available balance and 1 or more bank accounts (with bank name, routing number and account number).

Display then the available balance and the bank account with masked account number and ask the user to enter an amount for the withdrawal.

Initiate the payment with the selected bank account and the entered amount as a withdrawal transaction.

An Accountinquiry - through getPaymentInputDataListRequest - has always to be sent before a withdrawal request. The card number, VIPPreferredAccountNumber, will be returned in this step. The merchant does not need to store this number.

The customer will have to disburse (withdraw) into a banking account they have used for deposits. They cannot add an account during this process.

📘

User not enrolled

If the user is not enrolled, the merchant should display the enrollment screen and ask the user to enroll with the VIP Preferred Network.

Enrollment happens right on the merchants page: Ask for various user data including ID details and banking details. Check that the user accepts provider´s terms and conditions, then call PXP Financial for the enrollment.

Backend2BackendIntegration - Account Inquiry

getPaymentInputDataList will return the details of the VIP Preferred Account, including the cardholder information, and the account balance.

The following table contains the fields to be sent in the details collection of getPaymentInputDataListRequest xml section:

key (value type, account type, required)

value

VIPPreferredAccountNumber
(String, conditional)

The customer account number at GlobalPayments provider.

VIPPreferredAccountNumber or IDNumber is required.

Max Length: 16 digits

IDType (String, conditional)

Required if IDNumber is used.
Max Length: 2 characters.

Possible values:
DL = Driver’s License
ST = State ID
ML = Military ID
SS = Social Security Number (SSN)

IDNumber (String, conditional)

The number associated with IDType.
IDType is required if IDNumber is used.
Min Length: 6 characters or digits.
Max Length: 30 characters or digits.

IDState (String, conditional)

Two letter state code.
Required only if IDType is DL.
Max Length: 2 characters.

Example getPaymentInputDataListRequest:

<getPaymentInputDataListRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <user>
        <id>422c62c8-9b60-40f8-a9fa-75c027b180df</id>
    </user>
    <paymentMethodID>253</paymentMethodID>
    <details>
        <data xsi:type="keyStringValuePair">
            <key>IDNumber</key>
            <value>662-05-1234</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>IDType</key>
            <value>SS</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>IDState</key>
            <value>IL</value>
        </data>
    </details>
</getPaymentInputDataListRequest>

Possible keys in getPaymentInputDataListResponse in case of success:

key

description

VIPPreferredAccountNumber

Last 10 digits of customer’s account number at Global Payments provider.

AvailableAmount

Customer’s available amount for transactions.
Range: 1.00 – 999999.99

NumberOfBankAccounts

Number of bank accounts associated with this customer. From 0 up to 4 bank accounts.

CheckBankName

The name of the bank on the check.
Max Length: 30 characters

CheckRoutingNumber

The routing number of the bank.
Max Length: 9 digits

CheckAccountNumber

The customer’s bank account number. Not masked. Max Length: 18 digits

UserID

The User ID.

Example getPaymentInputDataListResponse:

<getPaymentInputDataListResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <paymentInputDataList>
        <paymentInputData>
            <data xsi:type="keyStringValuePair">
                <key>VIPPreferredAccountNumber</key>
                <value>7770001070</value>
            </data>
            <data xsi:type="keyDecimalValuePair">
                <key>AvailableAmount</key>
                <value>29797.00</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>NumberOfBankAccounts</key>
                <value>2</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CheckBankName</key>
                <value>Bank Of Global US 1</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CheckRoutingNumber</key>
                <value>559012131</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CheckAccountNumber</key>
                <value>815564641309</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>UserID</key>
                <value>422c62c8-9b60-40f8-a9fa-75c027b180df</value>
            </data>
        </paymentInputData>
        <paymentInputData>
            <data xsi:type="keyStringValuePair">
                <key>VIPPreferredAccountNumber</key>
                <value>7770001070</value>
            </data>
            <data xsi:type="keyDecimalValuePair">
                <key>AvailableAmount</key>
                <value>29797.00</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>NumberOfBankAccounts</key>
                <value>2</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CheckBankName</key>
                <value>Bank Of Global US 2</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CheckRoutingNumber</key>
                <value>559012132</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CheckAccountNumber</key>
                <value>815564641308</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>UserID</key>
                <value>422c62c8-9b60-40f8-a9fa-75c027b180df</value>
            </data>
        </paymentInputData>
    </paymentInputDataList>
</getPaymentInputDataListResponse>
<getPaymentInputDataListResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <paymentInputDataList>
        <paymentInputData>
            <data xsi:type="keyStringValuePair">
                <key>ErrorCode</key>
                <value>UserNotEnrolled</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>ErrorMessage</key>
                <value>No Account on File</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>UserID</key>
                <value>422c62c8-9b60-40f8-a9fa-75c027b180df</value>
            </data>
        </paymentInputData>
    </paymentInputDataList>
</getPaymentInputDataListResponse>
<getPaymentInputDataListResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<paymentInputDataList>
<paymentInputData>
<data xsi:type="keyStringValuePair">
<key>VIPPreferredAccountNumber</key>
<value>7774650431</value>
</data>
<data xsi:type="keyDecimalValuePair">
<key>AvailableAmount</key>
<value>4500.00</value>
</data>
<data xsi:type="keyIntValuePair">
<key>NumberOfBankAccounts</key>
<value>0</value>
</data>
<data xsi:type="keyStringValuePair">
<key>UserID</key>
<value>2342342344</value>
</data>
</paymentInputData>
</paymentInputDataList>
</getPaymentInputDataListResponse>

Possible keys in getPaymentInputDataListResponse in case of failure:

key

description

ErrorCode

Possible ErrorCodes:

  • ValidationError
  • UserNotEnrolled (The Merchant should proceed to enrollment)
  • UserEnrollmentDeclined (The Customer should contact Customer support)
  • ProviderTechnicalError

ErrorMessage

Error Description.

UserID

The User ID.

Withdrawal initiation

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

VIPPreferredAccountNumber
(string, required)

VIP Preferred Account Number

The following parameters a required for the bank account to be passed within
initiatePaymentRequest.specificPaymentAccountData:

key (value type, account type, required)

value

AccountNumber (string)

The customer´s bank account number.

BankSortCode (string)

The routing number of the bank.

BankCountryCode2 (string, required)

Country code of the bank.

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-16"?>
<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>YourMerchant</merchantID>
    <shopID>YourShop</shopID>
    <merchantTransactionID>60dca1eb-a2dd-46fb-be5b-10446447685d</merchantTransactionID>
    <paymentMethodID>253</paymentMethodID>
    <amount currencyCode="USD">10.01</amount>
    <userID>3d297d2c-754b-4946-ae02-5addaf7b75d3</userID>
    <userIP>127.0.0.1</userIP>
    <userSessionID>b7427ae2-082f-485f-b52b-a8d3f33c97cd</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>VIPPreferredAccountNumber</key>
            <value>7770001069</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>BankCountryCode2</key>
                <value>US</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>AccountNumber</key>
                <value>815564641309</value>
            </data> 
            <data xsi:type="keyStringValuePair">
                <key>BankSortCode</key>
                <value>559012138</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentRequest (with userData to pass necessary userData Firstname, LastName and telephoneNumber):

<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>YourMerchant</merchantID>
    <shopID>YourShop</shopID>
    <merchantTransactionID>60dca1eb-a2dd-46fb-be5b-10446447685d-0111</merchantTransactionID>
    <paymentMethodID>253</paymentMethodID>
    <amount currencyCode="USD">20.00</amount>
    <userID>2342342345</userID>
    <userData>
    <username>c3ba0665-68ef-4daf-a3e6-8e70a1</username>
    <firstname>John</firstname>
    <lastname>Doe</lastname>
    <email>[email protected]</email>
    <address>
      <street>1225 Bonavita St.</street>
      <postalCode>11300</postalCode>
      <city>Vienna</city>
      <state>NJ</state>
      <countryCode2>US</countryCode2>
      <telephoneNumber>5627562233</telephoneNumber>
    </address>
  </userData>
    <userIP>185.39.174.220</userIP>
    <userSessionID>b7427ae2-082f-485f-b52b-a8d3f33c97cd</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>VIPPreferredAccountNumber</key>
            <value>7210340043</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>BankCountryCode2</key>
                <value>US</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>AccountNumber</key>
                <value>9991979791</value>
            </data> 
            <data xsi:type="keyStringValuePair">
                <key>BankSortCode</key>
                <value>103112976</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<?xml version="1.0" encoding="utf-16"?>
<initiatePaymentResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourMerchant</merchantID>
        <shopID>YourShop</shopID>
        <paymentMethod>
            <key>253</key>
            <value>VIPPreferredWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>60dca1eb-a2dd-46fb-be5b-10446447685d</merchantTransactionID>
        <paymentID>fbf07024-570b-4742-8984-8fdf176ce642</paymentID>
        <userID>3d297d2c-754b-4946-ae02-5addaf7b75d3</userID>
        <paymentProvider>
            <key>155</key>
            <value>GlobalPayments</value>
        </paymentProvider>
        <amount currencyCode="USD">10.01</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>2e159dfb-be91-40a8-9a8d-fcd34d1860dd</id>
            <definition>
                <key>20</key>
                <value>WithdrawnByProvider</value>
            </definition>
            <createdOn>2017-06-22T09:20:55.5027985Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>00</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">7.52</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>00000199</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>199</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>650c3435-f133-4187-86ef-259bbdc53d2b</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Notifications

The provider notifies PXP Financial on payments that are either Successful (state WithdrawnByProvider), Declined (state RefusedByProvider) and Failed (state WithdrawErrorReportedByProvider).

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.

PaymentStates

Description

WithdrawnByProvider

Success state (sample notification see below).

RefusedByProvider

Payment has been rejected by the provider.

WithdrawErrorReportedByProvider

Error happened during payment processing on provider side.

ProviderCommunicationErrorOccurred

Communication error while processing payment.

Example handlePaymentStateChangedNotificationRequest:

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <payment xsi:type="paymentWithPaymentAccount">
    <merchantID>YourMerchant</merchantID>
    <shopID>YourShop</shopID>
    <paymentMethod>
      <key>253</key>
      <value>VIPPreferredWithdrawal</value>
    </paymentMethod>
    <merchantTransactionID>60dca1eb-a2dd-46fb-be5b-10446447685d</merchantTransactionID>
    <paymentID>fbf07024-570b-4742-8984-8fdf176ce642</paymentID>
    <userID>3d297d2c-754b-4946-ae02-5addaf7b75d3</userID>
    <paymentProvider>
      <key>155</key>
      <value>GlobalPayments</value>
    </paymentProvider>
    <amount currencyCode="USD">10.0100</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>2e159dfb-be91-40a8-9a8d-fcd34d1860dd</id>
      <definition>
        <key>20</key>
        <value>WithdrawnByProvider</value>
      </definition>
      <createdOn>2017-06-22T09:20:55.503</createdOn>
      <description />
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderResponseCode</key>
          <value>00</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">7.5200</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>199</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderTransactionID</key>
        <value>00000199</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>650c3435-f133-4187-86ef-259bbdc53d2b</paymentAccountID>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>