Card Deposits

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

Reversal State

1

ECMC Deposit

AuthorisedByProvider (13)
CapturedByProvider (27)

Cancelled (113)

2

VISA Deposit

AuthorisedByProvider (13)
CapturedByProvider (27)

Cancelled (113)

3

Diners Deposit

AuthorisedByProvider (13)
CapturedByProvider (27)

Cancelled (113)

47

Postepay Deposit

AuthorisedByProvider (13)
CapturedByProvider (27)

Cancelled (113)

73

Maestro Deposit

AuthorisedByProvider (13)
CapturedByProvider (27)

Cancelled (113)

113

AMEX Deposit

AuthorisedByProvider (13)

Cancelled (113)

187

JCB Deposit

AuthorisedByProvider (13)

Cancelled (113)

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

Redirect Integration

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

Backend2Backend Integration

To initiate a card deposit the initiatePayment web method should be invoked. The following table contains the fields to be sent in the specificPaymentAccountData xml section for card deposits:

key (value type, account type, required)

value

CardNumber
(string,Cards, required)

PAN, e.g. 4111111111111111

CardVerificationCode
(string,Cards, conditional)

CVC, 3 or 4-digit number, e.g. 333

HolderName
(string,Cards, required)

Cardholder 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

🚧

Conditional CVC

CVC can be configured to be optional or mandatory based on the payment creation type. By default, PaymentService will treat CVC as mandatory.

🚧

Dynamic Billing Descriptor

Card Deposits can also be configured to support Dynamic Descriptors in order to display specific information on the cardholder's statement. Once this has been configured, the key-value PaymentDescription must be provided in the intiatePaymentRequest.specificPaymentData collection up to a length of no more than 25 characters.

Please contact PXP Financial Support in order to set this up.

🚧

Downgraded payments - MasterCard

Successfully authenticated payments are chargeback protected by Issuer and have ECI = 02. However, it is possible during authorization the Issuer to downgrade the payments from authenticated to unauthenticated and the liability is shifted back to the merchant. When this happens, we return the following two fields in initiatePayment/ executeAction response:
ElectronicCommerceIndicator = 07
ECIAfterAuthentication = 02

🚧

Deferred authorisations - Visa

Deferred authorisations occur when a merchant cannot complete an authorisation at the time of transaction with the cardholder because of connectivity problems, systems issues or other limitations, and then later completes the authorization when they are able. A connectivity issue may occur for example when airlines or train operators make sales in transit.
Merchants should collect the transaction information and send a deferred authorisation request at the earliest possible opportunity.
IndustrySpecificMITType = 5 should be sent in initiatePayment request to indicate deferred authorisation.

Example initiatePaymentRequest:

<?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>Order99999</merchantTransactionID>
    <paymentMethodID>2</paymentMethodID>
    <amount currencyCode="EUR">100</amount>
    <userID>u12312312</userID>
    <userData>
        <username>johndoe</username>
        <firstname>John</firstname>
        <lastname>Doe</lastname>
        <currencyCode>EUR</currencyCode>
        <languageCode>EN</languageCode>
        <email>[email protected]</email>
        <address>
            <street>Marxergasse</street>
            <houseNumber>1b</houseNumber>
            <postalCode>1030</postalCode>
            <city>Vienna</city>
            <countryCode2>AT</countryCode2>
            <telephoneNumber>00437778889999</telephoneNumber>
        </address>
        <dateOfBirth>1980-10-10T00:00:00</dateOfBirth>
        <gender>Male</gender>
    </userData>

    <userIP>127.0.0.1</userIP>
    <userSessionID>123</userSessionID>
    <creationTypeID>1</creationTypeID>

    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescription</key>
            <value>some description</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescriptionLanguageCode</key>
            <value>en</value>
        </data>
    </specificPaymentData>

    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>CardNumber</key>
                <value>4111111111111111</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CardVerificationCode</key>
                <value>111</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>HolderName</key>
                <value>John Doe</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryMonth</key>
                <value>1</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryYear</key>
                <value>2099</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>

</initiatePaymentRequest>

Example initiatePaymentResponse:

<?xml version="1.0" encoding="utf-8"?>
<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>Order99999</merchantTransactionID>
    <paymentID>47026705-e9e2-44c1-8f50-2b3676d60075</paymentID>
    <userID>u12312312</userID>
    <paymentProvider>
      <key>92</key>
      <value>CQRUK</value>
    </paymentProvider>
    <amount currencyCode="EUR">100.00</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
        <state>
            <id>462890c3-2803-4b9f-b741-484ee8f73db3</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2014-12-11T11:45:16.7360552Z</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>442653</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">100</baseAmount>
        <paymentDetails xsi:nil="true"/>
        <paymentAccount>
            <paymentAccountID>3e27c7d9-e3d5-45df-8033-a78e66ab319e</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Notifications

Example handlePaymentStateChangedNotificationRequest for Visa Deposit in state AuthorisedByProvider:

<?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="q1:paymentWithPaymentAccount">
        <merchantID>KalixaAcceptDEMO</merchantID>
        <shopID>KalixaAcceptDEMO</shopID>
        <paymentMethod>
            <key>2</key>
            <value>VISA Deposit</value>
        </paymentMethod>
        <merchantTransactionID>20141211_1</merchantTransactionID>
        <paymentID>616129bf-3ee0-4e63-9998-2fed6e85b7b7</paymentID>
        <userID>KalxiaTestUser_3</userID>
        <paymentProvider>
            <key>92</key>
            <value>CQRUK</value>
        </paymentProvider>
        <amount currencyCode="GBP">100.0000</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>195.72.132.1</userIP>
        <state>
            <id>3560adf3-6dd2-40f9-a6db-3a52ffa6ce90</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2014-12-11T15:06:56.66</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>0</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>452237</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">126.5300</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>206969</value>
            </detail>
            <detail xsi:type="keyIntValuePair">
                <key>PaymentScoring</key>
                <value>711201</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingName</key>
                <value>Christiane Zepeda</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingStreet</key>
                <value>Marxergasse 1B</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingCity</key>
                <value>Vienna</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingState</key>
                <value>Vienna</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingPostalCode</key>
                <value>1030</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingCountryCode2</key>
                <value>AT</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingTelephoneNumber</key>
                <value> 123456789</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>c8650e17-89ff-4566-a4de-835d8818b3f3</paymentAccountID>
        </paymentAccount>
    </payment>
</handlePaymentStateChangedNotificationRequest>

📘

ProviderResponseCode and ApprovalCode key-values

In the above sample the handlePaymentStateChangedNotificationRequest.payment.state.paymentStateDetails key-values are:

  • ProviderResponseCode containing the issuer response code (see Card Deposit Provider Response Codes)
  • ApprovalCode generated by the issuer, serving as a proof for the authorization and used for some post-authorization operations.

Example handlePaymentStateChangedNotificationRequest for Amex Deposit in state AuthorisedByProvider:

<?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>113</key>
      <value>AMEXDeposit</value>
    </paymentMethod>
    <merchantTransactionID>05012015_1</merchantTransactionID>
    <paymentID>9d52f550-7316-4a40-8f94-f3648a2009a7</paymentID>
    <userID>KalixaTestUser_5</userID>
    <paymentProvider>
      <key>81</key>
      <value>AmericanExpress</value>
    </paymentProvider>
    <amount currencyCode="EUR">100.0000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>195.72.132.1</userIP>
    <state>
      <id>0f4d6cb5-6826-431c-8936-008378435dc7</id>
      <definition>
        <key>13</key>
        <value>AuthorisedByProvider</value>
      </definition>
      <createdOn>2015-01-05T13:56:26.233</createdOn>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderResponseCode</key>
          <value>0</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>ApprovalCode</key>
          <value>46</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">100.0000</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>724612</value>
      </detail>
      <detail xsi:type="keyIntValuePair">
        <key>PaymentScoring</key>
        <value>724612</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingName</key>
        <value>Christiane Zepeda</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingStreet</key>
        <value>Marxergasse 1B</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingCity</key>
        <value>Vienna</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingState</key>
        <value>Vienna</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingPostalCode</key>
        <value>1030</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingCountryCode2</key>
        <value>AT</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ShippingTelephoneNumber</key>
        <value> 123456789</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>906004830</paymentAccountID>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationRequest for ECMC Debit Deposit in state AuthorisedByProvider:

<?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>168</key>
            <value>ECMC Debit Deposit</value>
        </paymentMethod>
        <merchantTransactionID>05012015_2</merchantTransactionID>
        <paymentID>fac0a901-2240-4a94-99ef-d6a36e4bcf27</paymentID>
        <userID>KalixaTestUser_5</userID>
        <paymentProvider>
            <key>92</key>
            <value>CQRUK</value>
        </paymentProvider>
        <amount currencyCode="EUR">100.0000</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>195.72.132.1</userIP>
        <state>
            <id>bff607d3-c6d8-4a36-97ac-51b73787c0b6</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2015-01-05T14:02:41.143</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>0</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>858627</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">100.0000</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>211609</value>
            </detail>
            <detail xsi:type="keyIntValuePair">
                <key>PaymentScoring</key>
                <value>724614</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingName</key>
                <value>Christiane Zepeda</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingStreet</key>
                <value>Marxergasse 1B</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingCity</key>
                <value>Vienna</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingState</key>
                <value>Vienna</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingPostalCode</key>
                <value>1030</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingCountryCode2</key>
                <value>AT</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ShippingTelephoneNumber</key>
                <value> 123456789</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>906004831</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>issuerCountry</key>
                    <value>US</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>fundingSource</key>
                    <value>Debit</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</handlePaymentStateChangedNotificationRequest>

📘

issuerCountry and fundingSource key-values of paymentAccount

In the above sample the handlePaymentStateChangedNotificationRequest.payment.paymentAccount.details fundingSource key-value indicates the card type is a debit card.

Cancellation of Card Deposits

In order to cancel a Card Deposit you will need to make use of the Execute Payment Action API call.

See the Cancel Payment page for further instructions.

Payment States for Card Deposits

States

Description

RefusedByProvider

Refusal state, payment was not accepted by provider

AuthorisedByProvider

Success state, payment was authorised by provider.

RefusedByPaymentScoring

Refusal state, Declined by PXP risk engine during risk checks

ValidationFailed

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

UserVerificationFailed

Error state, user was not authenticated

AuthoriseErrorReportedByProvider

Error state; an error was returned by provider.

AuthoriseCommunicationErrorOccurred

Error state, Authorisation timed out and no response was received.

DuplicatePaymentValidationFailed

Unsuccessful state; Duplication of payment.