Venmo Deposit

Venmo is a mobile payment service owned by PayPal. Venmo account holders can transfer funds to others via a mobile phone app; both the sender and receiver have to live in the U.S.
The following method IDs are covered in this section:

IDNameCredit/Debit State
417VenmoDepositDepositedByProvider (29)

Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).

Payment flow

Please find the full diagram here.

13001300

Redirect Integration

Currently not supported.

Backend2Backend Integration

User enrollment - Payment Service V5 API

When a player does the first deposit on a merchant´s website, the Braintree JS SDK should be used to render the Venmo button in desktop / mobile web flows for the player to continue with the deposit/payment.

When the player clicks on the Venmo button, the merchant will run any validations and then initiate the Venmo checkout flow, where the player selects the payment source in their Venmo wallet and consents to the vault/payment. Nonce, first and last name, phone number, eMail will be returned to the merchant, upon which the merchant should pass the nonce and other data in the enrollment call below.

For the enrollment request see here.

... with the following JSON request data parameters:

Sample EnrollmentRequest:

Example EnrollmentResponse:

{
    "id":"0d652af0-c838-48e1-aa0d-9ab3cb9b03f5",
    "state":" AccountTokenized",
    "details":{
        "PaymentAccountID":"8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616",
        "WalletUserName":"venmojoe",
        "WalletUserID":"Venmo-Joe-1",
        "ProviderCustomerID": "Y3VzdG9tZXJfODIwMDY1MjYy"
    }
}
{
    "code": "UserEnrollmentDeclined",
    "details": {
        "error": "The user enrollment request for [Type=account.venmo, UserExternalID=5678432, ClientSystemUserEnrollmentId=1234556, MerchantExternalID=YourTestMerchant] requires an AccountNumber detail."
    }
}
{
    "code": "SchemaValidationError",
    "details": {
        "validationErrors": "The UserID field is required."
    }
}

JSON Response Data Parameters:

NameDescription
PaymentAccountIDThe payment account ID registered at PXP. It is used in all subsequent payment initiation requests.
WalletUserNameUser's current Venmo username. Can be changed by the user.
WalletUserIDUser's immutable Venmo user id. Can never be changed by the user.
ProviderCustomerIDThe Customer ID generated by BrainTreeat at the time of customer creation.

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)value
CollectedDeviceData (string, required)The collected device data by the Venmo Client Side SDK

After a user has been successfully enrolled a payment has to initiated.

Sample initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>YourTestMerchant</merchantID>
    <shopID>YourTestShop</shopID>
    <merchantTransactionID>afd894dc7-69da-4dd9-94bf-3d42f63481</merchantTransactionID>
    <paymentMethodID>417</paymentMethodID>
    <amount currencyCode="USD">10.00</amount>
    <userID>5678432</userID>
    <userIP>127.0.0.1</userIP>
    <userSessionID>7495c35f-3c55-4a08-a0a0-03f3ed917fbc</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>CollectedDeviceData</key>
            <value>....</value>
        </data>
    </specificPaymentData>
    <paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616</paymentAccountID>
</initiatePaymentRequest>

Sample response:

<initiatePaymentResponse
    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>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>417</key>
            <value>VenmoDeposit</value>
        </paymentMethod>
        <merchantTransactionID>afd234dc7-69da-4dd9-94bf-3d42f63481</merchantTransactionID>
        <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
        <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
        <paymentProvider>
            <key>191</key>
            <value>Braintree</value>
        </paymentProvider>
        <amount currencyCode="USD">10.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>eb5bc886-cdcd-452d-a462-16d3c73d8b18</id>
            <definition>
                <key>3</key>
                <value>InitiatedByProvider</value>
            </definition>
            <createdOn>2021-09-02T14:19:03.9334241Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>PB190R</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>10000</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Approved</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">8.62</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>429137496</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1726656</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountNumber</key>
                    <value>fake-venmo-account-nonce</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentAccountToken</key>
                    <value>A362Ibci1H9CgaB7dFG4e85EDhfF38e</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserID</key>
                    <value>Venmo-Joe-1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserName</key>
                    <value>venmojoe</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>
<initiatePaymentResponse 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>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>417</key>
            <value>VenmoDeposit</value>
        </paymentMethod>
        <merchantTransactionID>afd234dc7-69da-4dd9-94bf-3d42f63481</merchantTransactionID>
        <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
        <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
        <paymentProvider>
            <key>191</key>
            <value>Braintree</value>
        </paymentProvider>
        <amount currencyCode="USD">2002</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>eb5bc886-cdcd-452d-a462-16d3c21d8b18</id>
            <definition>
                <key>550</key>
                <value>InitiateRefusedByProvider</value>
            </definition>
            <createdOn>2021-10-18T14:00:02.0974021Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>2002</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Limit Exceeded</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">1504.25</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>dHJhbnNhY3Rpb25fYjg5ZnR4NHE</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>38959195</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountNumber</key>
                    <value>fake-venmo-account-nonce</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentAccountToken</key>
                    <value>A362Ibci1H9CgaB7dFG4e85EDhfF38e</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserID</key>
                    <value>Venmo-Joe-1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserName</key>
                    <value>venmojoe</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>
<initiatePaymentResponse
    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>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>417</key>
            <value>VenmoDeposit</value>
        </paymentMethod>
        <merchantTransactionID>afd234dc7-69da-4dd9-94bf-3d42f63481</merchantTransactionID>
        <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
        <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
        <paymentProvider>
            <key>191</key>
            <value>Braintree</value>
        </paymentProvider>
        <amount currencyCode="USD">10.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>eb5bc886-34cd-452d-a462-16d3c73d8b18</id>
            <definition>
                <key>4</key>
                <value>InitiateErrorReportedByProvider</value>
            </definition>
            <createdOn>2021-09-02T14:19:03.9334241Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyIntValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderErrorResponseMessage</key>
                    <value>Unknown or expired single-use payment method.</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">8.62</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>429137496</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1726656</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountNumber</key>
                    <value>fake-venmo-account-nonce</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentAccountToken</key>
                    <value>A362Ibci1H9CgaB7dFG4e85EDhfF38e</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserID</key>
                    <value>Venmo-Joe-1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserName</key>
                    <value>venmojoe</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>
<initiatePaymentResponse
    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>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>417</key>
            <value>VenmoDeposit</value>
        </paymentMethod>
        <merchantTransactionID>afd234dc7-69da-4dd9-94bf-3d42f63481</merchantTransactionID>
        <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
        <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
        <paymentProvider>
            <key>191</key>
            <value>Braintree</value>
        </paymentProvider>
        <amount currencyCode="USD">10.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>eb5bc846-34cd-452d-a462-16d3c73d8b18</id>
            <definition>
                <key>325</key>
                <value>InitiateRequestProviderCommunicationErrorOccurred</value>
            </definition>
            <createdOn>2021-09-02T14:19:03.9334241Z</createdOn>
            <description>Connection timeout.</description>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">8.62</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1726656</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountNumber</key>
                    <value>fake-venmo-account-nonce</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentAccountToken</key>
                    <value>A362Ibci1H9CgaB7dFG4e85EDhfF38e</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserID</key>
                    <value>Venmo-Joe-1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserName</key>
                    <value>venmojoe</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Once a payment has been successfully initiated it can be either Captured or Cancelled by the merchant via an executePaymentAction call.

Sample executePaymentActionRequest:

<?xml version="1.0" encoding="utf-8"?>
<executePaymentActionRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <merchantID>YourTestMerchant</merchantID>
  <shopID>YourTestShop</shopID>
  <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
  <actionID>97</actionID>
  <remark>Capture payment TEST</remark>
</executePaymentActionRequest>
<?xml version="1.0" encoding="utf-8"?>
<executePaymentActionRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <merchantID>YourTestMerchant</merchantID>
  <shopID>YourTestShop</shopID>
  <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
  <actionID>1</actionID>
  <remark>Cancel payment TEST</remark>
</executePaymentActionRequest>

Sample executePaymentActionResponse:

<executePaymentActionResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>0</statusCode>
    <actionResults>
        <result xsi:type="keyStringValuePair">
            <key>lastStateDefinition</key>
            <value>29</value>
        </result>
        <result xsi:type="keyIntValuePair">
            <key>merchantSettlementCurrencyID</key>
            <value>2</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>providerTransactionID</key>
            <value>429137496</value>
        </result>
    </actionResults>
</executePaymentActionResponse>
<executePaymentActionResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>0</statusCode>
    <actionResults>
        <result xsi:type="keyStringValuePair">
            <key>lastStateDefinition</key>
            <value>152</value>
        </result>
        <result xsi:type="keyIntValuePair">
            <key>merchantSettlementCurrencyID</key>
            <value>2</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>providerTransactionID</key>
            <value>429137496</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>providerErrorResponseMessage</key>
            <value>Cannot capture unless the transaction status is AUTHORIZED.</value>
        </result>
    </actionResults>
</executePaymentActionResponse>
<executePaymentActionResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>0</statusCode>
    <actionResults>
        <result xsi:type="keyStringValuePair">
            <key>lastStateDefinition</key>
            <value>113</value>
        </result>
        <result xsi:type="keyIntValuePair">
            <key>merchantSettlementCurrencyID</key>
            <value>2</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>providerTransactionID</key>
            <value>429137496</value>
        </result>
    </actionResults>
</executePaymentActionResponse>
<executePaymentActionResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>0</statusCode>
    <actionResults>
        <result xsi:type="keyStringValuePair">
            <key>lastStateDefinition</key>
            <value>114</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>ProviderTransactionID</key>
            <value>429137496</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>ProviderErrorResponseMessage</key>
            <value>Cannot refund or reverse unless the transaction status is SETTLING or SETTLED.</value>
        </result>
    </actionResults>
</executePaymentActionResponse>

Notifications

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

Sample 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">
        <merchantID>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>417</key>
            <value>VenmoDeposit</value>
        </paymentMethod>
        <merchantTransactionID>afd234dc7-69da-4dd9-94bf-3d42f63481</merchantTransactionID>
        <paymentID>8089d4cf-7ad4-4730-a3ca-b44bc125685a</paymentID>
        <userID>5678432</userID>
        <paymentProvider>
            <key>191</key>
            <value>Braintree</value>
        </paymentProvider>
        <amount currencyCode="USD">10.0000</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>7879cae2-fdf9-44e9-9505-218f4d3832d1</id>
            <definition>
                <key>29</key>
                <value>DepositedByProvider</value>
            </definition>
            <createdOn>2021-09-21T09:14:44.817</createdOn>
            <paymentStateDetails xsi:nil="true" />
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">8.6200</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1726656</value>
            </detail>
            <detail xsi:type="keyIntValuePair">
                <key>MerchantSettlementCurrencyID</key>
                <value>2</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>429137496</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8fa1f57f-f5b1-4d82-a1c2-53a0b6cc616</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountNumber</key>
                    <value>fake-venmo-account-nonce</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentAccountToken</key>
                    <value>A362Ibci1H9CgaB7dFG4e85EDhfF38e</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserID</key>
                    <value>Venmo-Joe-1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserName</key>
                    <value>venmojoe</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</handlePaymentStateChangedNotificationRequest>

Payment Account Change Notifications

A Venmo customer can delete the merchant connection from within their Venmo app or Venmo account any time. This will remove the Venmo payment method from the merchant´s vault.
In such a case, the merchant should no longer show this Venmo account/token as stored payment method in the merchant profile for that customer.

PXP system receives a notification from Braintree with the information that the customer has deleted the merchant connection. The information is processed and the regarding Payment Account is set to isActive = false and isVisible = false.

A handlePaymentAccountChangedNotification is sent to the merchant system by PXP to inform about the change of the payment account.
Also see PaymentAccountChangedNotification.

Example handlePaymentAccountChangedNotificationRequest sent to merchant:

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentAccountChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <paymentAccount>
        <merchantID xmlns="http://www.cqrpayments.com/PaymentProcessing">29101992</merchantID>
        <userID xmlns="http://www.cqrpayments.com/PaymentProcessing">e45ed472-dd52-443b-b1a7-76e39b</userID>
        <paymentAccountID xmlns="http://www.cqrpayments.com/PaymentProcessing">2aa37f1e-abec-4fc7-83b3-19a48ae9f47c</paymentAccountID>
        <paymentAccountTypeID xmlns="http://www.cqrpayments.com/PaymentProcessing">26</paymentAccountTypeID>
        <isActive xmlns="http://www.cqrpayments.com/PaymentProcessing">false</isActive>
        <isVisible xmlns="http://www.cqrpayments.com/PaymentProcessing">false</isVisible>
        <specificPaymentAccountData xmlns="http://www.cqrpayments.com/PaymentProcessing">
            <data xsi:type="keyStringValuePair">
                <key>WalletUserID</key>
                <value>Venmo-Joe-1BB</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>WalletUserName</key>
                <value>venmojoe</value>
            </data>
        </specificPaymentAccountData>
        <state xmlns="http://www.cqrpayments.com/PaymentProcessing">
            <id>9138e23e-9ba6-42e0-9726-01b81265715d</id>
            <definition>2</definition>
            <createdOn>2022-01-20T16:57:54.4580883Z</createdOn>
            <paymentAccountStateDetails />
        </state>
    </paymentAccount>
</handlePaymentAccountChangedNotificationRequest>

Example handlePaymentAccountChangedNotificationResponse to be sent back by the merchant:

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentAccountChangedNotificationResponse
         xmlns="http://www.cqrpayments.com/PaymentProcessing"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
</handlePaymentAccountChangedNotificationResponse>

Negative testing in Sandbox

On provider testing in sandbox, the merchant can run test transactions with the following amounts and it should trigger declines.

AmountResponse
2000.00 - 2999.99Processor Decline with processor response equal to the amount
3000.00-3000.99Failed with a 3000 processor response

Account migration

This option - if enabled by PXP - allows copying a user´s payment account one merchant on to another - provided that both merchants utilize the same MID.

In below example, replace SourceMerchantID and SourceUser with the respective merchant and userID.

initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<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>DemoMerchant</merchantID>
    <shopID>DemoShop</shopID>
    <merchantTransactionID>311</merchantTransactionID>
   <paymentMethodID>417</paymentMethodID>
    <amount currencyCode="USD">10.00</amount>
    <userID>1</userID>
    <userIP>127.0.0.1</userIP>
    <userSessionID>7495c35f-3c55-4a08-a0a0-03f3ed917fbc</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>CollectedDeviceData</key>
            <value>Samsung</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentAccountReferenceMerchantID</key>
            <value>SourceMerchantID</value>
            </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentAccountReferenceUserID</key>
            <value>SourceUserID</value>
        </data>
    </specificPaymentData>
    <paymentAccountID>6f77fa88-fc55-4a6d-b2bd-b45aa526e59a</paymentAccountID>
</initiatePaymentRequest>

initiatePaymentResponse:

<initiatePaymentResponse 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>DemoMerchant</merchantID>
        <shopID>DemoShop</shopID>
        <paymentMethod>
            <key>417</key>
            <value>VenmoDeposit</value>
        </paymentMethod>
        <merchantTransactionID>311</merchantTransactionID>
        <paymentID>d54cb3f6-fd8b-4d95-9a49-37924d6aa3bc</paymentID>
        <userID>1</userID>
        <paymentProvider>
            <key>191</key>
            <value>Braintree</value>
        </paymentProvider>
        <amount currencyCode="USD">10.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>c1b949be-be26-4161-a463-e603c88a5dec</id>
            <definition>
                <key>3</key>
                <value>InitiatedByProvider</value>
            </definition>
            <createdOn>2022-10-17T14:04:11.0619053Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>NJ31</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>1000</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Approved</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">7.33</baseAmount>
        <paymentDetails></paymentDetails>
        <paymentAccount>
            <paymentAccountID>6f77fa88-fc55-4a6d-b2bd-b45aa526e59a</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>accountNumber</key>
                    <value>fake-venmo-account-nonce1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentAccountToken</key>
                    <value>1b5Cc74ghH3BDIA9EFG8ia6ed2fFgE</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserID</key>
                    <value>Venmo-Joe-11</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>WalletUserName</key>
                    <value>newVenmoJoe</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>