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 theintiatePaymentRequest.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. |
Updated over 1 year ago