Card Withdrawals

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

Reversal State

12

VISA Withdrawal

Created(232) for Redirect Integration
InitiatedByProvider(3)
for B2B Integration

Cancelled(113)

14

Diners Withdrawal

Created(232) for Redirect Integration
InitiatedByProvider(3)
for B2B Integration

Cancelled(113)

38

ECMC Withdrawal

Created(232) for Redirect Integration
InitiatedByProvider(3)
for B2B Integration

Cancelled(113)

129

PostePayWithdrawal

Created(232) for Redirect Integration
InitiatedByProvider(3)
for B2B Integration

Cancelled(113)

147

MaestroWithdrawal

Created(232) for Redirect Integration
InitiatedByProvider(3)
for B2B Integration

Cancelled(113)

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

Redirect Integration

There are no specific steps for initiating Card Withdrawals with Redirect Integration. Refer to Initiate New Payment (Redirect) for the standard steps.

Backend2Backend Integration

The following table contains the fields to be sent in the initiatePaymentRequest.specificPaymentAccountData xml section for card withdrawals:

key (value type, account type, required)

value

CardNumber
(string,Cards, required)

PAN, e.g. 4111111111111111

HolderName
(string,Cards, required)

Card holder name, e.g. John Doe

ExpiryMonth
(string,Cards, required)

Expiration month of the card, e.g. 12

ExpiryYear
(string,Cards, required)

Expiration year of the card, e.g. 2019

Example initiatePaymentRequest for Card Withdrawal:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <merchantID>KalixaAcceptDEMO</merchantID>
  <shopID>KalixaAcceptDEMO</shopID>
  <merchantTransactionID>0e23b2f1-1d92-4ddd-8d43-9de4e77e279b</merchantTransactionID>
  <paymentMethodID>12</paymentMethodID>
  <amount currencyCode="EUR">10</amount>
  <userID>d48693ca-e96e-4ca1-9e01-035645a79300</userID>
  <userData></userData>
  <userIP>127.0.0.1</userIP>
  <userSessionID>6a956eae-d903-4a01-8170-20dae92673d1</userSessionID>
  <creationTypeID>1</creationTypeID>
  <paymentAccountID>4765ad36-93ea-4327-a82f-767eb6f04e5d</paymentAccountID>
  <paymentAccount>
    <specificPaymentAccountData>
      <data xsi:type="keyStringValuePair">
        <key>CardNumber</key>
        <value>4111111111111111</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>HolderName</key>
        <value>Max B</value>
      </data>
      <data xsi:type="keyIntValuePair">
        <key>ExpiryMonth</key>
        <value>11</value>
      </data>
      <data xsi:type="keyIntValuePair">
        <key>ExpiryYear</key>
        <value>2014</value>
      </data>
    </specificPaymentAccountData>
  </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse for Card Withdrawal:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <payment>
    <merchantID>KalixaAcceptDEMO</merchantID>
    <shopID>KalixaAcceptDEMO</shopID>
    <paymentMethod>
      <key>12</key>
      <value>VISA Withdrawal</value>
    </paymentMethod>
    <merchantTransactionID>0e23b2f1-1d92-4ddd-8d43-9de4e77e279b</merchantTransactionID>
    <paymentID>a5afdad9-91b3-4222-b6c8-e187627639aa</paymentID>
    <userID>d48693ca-e96e-4ca1-9e01-035645a79300</userID>
    <paymentProvider>
      <key>9</key>
      <value>BMS</value>
    </paymentProvider>
    <amount currencyCode="EUR">100</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>c8cd1ccf-a056-411d-b617-58b9f30a1c60</id>
      <definition>
        <key>3</key>
        <value>InitiatedByProvider</value>
      </definition>
      <createdOn>2011-05-18T09:28:28.0867184Z</createdOn>
      <paymentStateDetails xsi:nil="true" ></paymentStateDetails>
    </state>
    <isExecuted>false</isExecuted>
    <baseAmount currencyCode="EUR">100</baseAmount>
    <paymentDetails xsi:nil="true"></paymentDetails>
  </payment>
</initiatePaymentResponse>

Notifications

Example handlePaymentStateChangedNotificationRequest for VISA Withdrawal in Created state:

<?xml version="1.0" encoding="utf-8"?>
<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>KalixaAcceptDEMO</merchantID>
        <shopID>KalixaAcceptDEMO</shopID>
        <paymentMethod>
            <key>12</key>
            <value>VISA Withdrawal</value>
        </paymentMethod>
        <merchantTransactionID>20141215_8</merchantTransactionID>
        <paymentID>34927f83-1ba5-498e-8a88-d98f32448f52</paymentID>
        <userID>KalxiaTestUser_5</userID>
        <paymentProvider>
            <key>92</key>
            <value>CQRUK</value>
        </paymentProvider>
        <amount currencyCode="EUR">30</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>195.72.132.1</userIP>
        <state>
            <id>33fd269d-5700-4a1a-aa81-7d9d7989d9b4</id>
            <definition>
                <key>232</key>
                <value>Created</value>
            </definition>
            <createdOn>2014-12-15T12:30:50.9678178Z</createdOn>
            <paymentStateDetails xsi:nil="true" />
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">30</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>207778</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8d4dd05c-c280-49a5-8588-12e96329c359</paymentAccountID>
        </paymentAccount>
    </payment>
</handlePaymentStateChangedNotificationRequest>

📘

isExecuted = false

Note that when the withdrawal is created but not yet processed the isExecuted flag is equal to false.

Example handlePaymentStateChangedNotificationRequest for VISA Withdrawal in WithdrawnByProvider state:

<?xml version="1.0" encoding="utf-8"?>
<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>KalixaAcceptDEMO</merchantID>
        <shopID>KalixaAcceptDEMO</shopID>
        <paymentMethod>
            <key>12</key>
            <value>VISA Withdrawal</value>
        </paymentMethod>
        <merchantTransactionID>20141215_8</merchantTransactionID>
        <paymentID>34927f83-1ba5-498e-8a88-d98f32448f52</paymentID>
        <userID>KalxiaTestUser_5</userID>
        <paymentProvider>
            <key>92</key>
            <value>CQRUK</value>
        </paymentProvider>
        <amount currencyCode="EUR">30.0000</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>195.72.132.1</userIP>
        <state>
            <id>58b7abf2-8fbd-4817-96ff-01713e139e40</id>
            <definition>
                <key>20</key>
                <value>WithdrawnByProvider</value>
            </definition>
            <createdOn>2014-12-15T12:31:55.663</createdOn>
            <paymentStateDetails xsi:nil="true" />
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">30.0000</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>207778</value>
            </detail>
            <detail xsi:type="keyIntValuePair">
                <key>PaymentScoring</key>
                <value>713452</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>AuthorizationSequenceValue</key>
                <value>112874</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>8d4dd05c-c280-49a5-8588-12e96329c359</paymentAccountID>
        </paymentAccount>
    </payment>
</handlePaymentStateChangedNotificationRequest>

Visa Direct

Visa Direct is the new name of the Visa OCT program.
In Europe, acquirers are mandated to submit Visa Direct transactions to VisaNet through a single-message channel, which means that Visa Direct submissions are authorized and cleared in the same request.

Submitting a transaction through the single message channel is a prerequisite for an acquirer to support Fast Funds credits.

📘

How can Visa Direct benefit you

As a merchant supporting Visa Credit transactions customers will receive their funds credited to their account within seconds, provided that the card issuer is supporting this capability called Fast Funds".

In order to identify if the issuer of a particular card supports Fast Funds we will pass this detail in initiatePaymentResponse, in the section. This will only be returned for Visa payments.

if you would like to receive this additional information, please contact support to have it enabled.

<paymentAccount>
            <paymentAccountID>a6da6b6b-d76c-4f04-908c-27e949b324c0</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>IssuerCountry</key>
                    <value>AT</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountFundingSource</key>
                    <value>Credit</value>
                </detail>
                <detail xsi:type="keyBooleanValuePair">
                    <key>FastFunds</key>
                    <value>true</value>
                </detail>
            </details>
        </paymentAccount>

Example initiatePaymentRequest and Response below:

<?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>KalixaAcceptDemo</merchantID>
    <shopID>KalixaAcceptDemo</shopID>
    <merchantTransactionID>4d0c2437-211111</merchantTransactionID>
    <paymentMethodID>2</paymentMethodID>
    <amount currencyCode="EUR">10</amount>
    <userID>PXPTestUser</userID>
    <userIP>127.0.0.1</userIP>
    <userSessionID>c303dd1b-98d4-42a6-90ad-8615b3847692</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescription</key>
            <value>cb1f1894-cb98-4127-b60b-450b536996c9</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescriptionLanguageCode</key>
            <value>en</value>
        </data>
        <data xsi:type="keyIntValuePair">
            <key>PaymentProviderID</key>
            <value>92</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>CardNumber</key>
                <value>4103642213120451</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>HolderName</key>
                <value>e9d2dea3-adfb-4570-b390-9c1d122ee487</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryMonth</key>
                <value>12</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryYear</key>
                <value>2020</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CardVerificationCode</key>
                <value>111</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>
<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>KalixaAcceptDEMO</merchantID>
        <shopID>KalixaAcceptDEMO</shopID>
        <paymentMethod>
            <key>2</key>
            <value>VISA Deposit</value>
        </paymentMethod>
        <merchantTransactionID>4d0c2437-211111</merchantTransactionID>
        <paymentID>bbd90075-9ec0-4c0c-a003-ace32cb56200</paymentID>
        <userID>PXPTestUser</userID>
        <paymentProvider>
            <key>92</key>
            <value>CQRUK</value>
        </paymentProvider>
        <amount currencyCode="EUR">10</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>47629fe1-65e6-4989-8e62-86a8c62d60d2</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2019-07-23T07:57:44.9859338Z</createdOn>
            <description>Approved or completed successfully</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>0</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>273391</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">10</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ElectronicCommerceIndicator</key>
                <value>07</value>
            </detail>
            <detail xsi:type="keyIntValuePair">
                <key>PaymentProviderID</key>
                <value>92</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>688795</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>e4d948d2-7cbc-4ad8-aed3-64dda6c32fb2</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>IssuerCountry</key>
                    <value>AT</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>AccountFundingSource</key>
                    <value>Credit</value>
                </detail>
                <detail xsi:type="keyBooleanValuePair">
                    <key>FastFunds</key>
                    <value>false</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>IssuerName</key>
                    <value>UNKNOWN</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Payment States for Card Withdrawal

State

Description

WithdrawnByProvider

Success state; payment has been executed

RefusedByProvider

Refusal state, payment was not accepted by provider

RefusedByPaymentScoring

Refusal state, Declined by PXP risk engine during risk checks

ValidationFailed

Error state, Technical validation failed. Example: Mandatory parameters not available

ProviderCommunicationErrorOccurred

Error state; a communication error has occured. Please note that the payment can still be moved to a success state through the reconciliation

NotifyPaymentStateErrorReportedByMerchant

Error state; error reported by merchant during withdrawal approval.

DuplicatePaymentValidationFailed

Unsuccessful state; Duplication of payment.