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 | Cancelled(113) |
14 | Diners Withdrawal | Created(232) _for Redirect Integration | Cancelled(113) |
38 | ECMC Withdrawal | Created(232) _for Redirect Integration | Cancelled(113) |
147 | MaestroWithdrawal | Created(232) _for Redirect 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 for card withdrawals:
key (value type, account type, required) | value |
|---|---|
specificPaymentData.CardNumber (string,Cards, required) | PAN, e.g. 4111111111111111 |
HolderName | Cardholder name, e.g. John Doe |
specificPaymentData.ExpiryMonth | Expiration month of the card, e.g. 12 |
specificPaymentData.ExpiryYear | Expiration year of the card, e.g. 2019 |
userData.User.FirstName | First name of recipient/cardholder |
userData.User.LastName | Last name of recipient/cardholder |
Address information is required for Visa Withdrawals to CanadaWhere a recipient is located in Canada, please ensure the address object is also provided and populated with at least:
- Street Address
- City
- Country
- State
The following specificPaymentData details may be passed with the request:
| Key value | Description |
|---|---|
| PaymentDescription | PaymentDescription |
ExampleinitiatePaymentRequest 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>ExampleinitiatePaymentResponse 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
ExamplehandlePaymentStateChangedNotificationRequest 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 = falseNote that when the withdrawal is created but not yet processed the
isExecutedflag is equal to false.
ExamplehandlePaymentStateChangedNotificationRequest 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 youAs 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 <paymentAccount> 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 initiatePaymentResponse below:
<?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-2003-04</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><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>12</key>
<value>VISA Withdrawal</value>
</paymentMethod>
<merchantTransactionID>0e23b2f1-1d92-4ddd-8d43-9de4e77e279b-2003-04</merchantTransactionID>
<paymentID>f4e7ac74-50bd-4728-9454-7a2572ec16af</paymentID>
<userID>d48693ca-e96e-4ca1-9e01-035645a79300</userID>
<paymentProvider>
<key>171</key>
<value>PXPUS</value>
</paymentProvider>
<amount currencyCode="EUR">10</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>ad3f026b-68c4-43f5-bcee-e7df5cc77473</id>
<definition>
<key>3</key>
<value>InitiatedByProvider</value>
</definition>
<createdOn>2024-03-20T13:52:47.5624808Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">10</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>1851</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>4765ad36-93ea-4327-a82f-767eb6f04e5d</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Unknown</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 |
| WithdrawErrorReportedByProvider | Error state; details are saved in ProviderErrorResponseCode and ProviderErrorResponseMessage. |
| 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. |
Error codes
Error codes on Paysafe
Paysafe support only VISA OCT transactions with Moneris in Canada.
ErrorsSome errors (3009, 3014, 3016, 3023, 3036, 3040, 3054, 3073, 4001, 3013) are interpreted as a refusal, and the payment is moved to state RefusedByProvider.
Details are saved in _ProviderResponseCode _value and _ProviderResponseMessage _value.
All other errors codes result in the payment being moved to state WithdrawErrorReportedByProvider.
Details are saved in _ProviderErrorResponseCode _and ProviderErrorResponseMessage.
| Error code | Message | |
|---|---|---|
| 1007 | An internal error occurred. | |
| 3006 | You submitted an expired credit card number with your request. | |
| 3009 | Your request has been declined by the issuing bank. | |
| 3014 | Your request has been declined - the issuing bank has returned an unknown response. Contact the card holder's credit card company for further investigation. | |
| 3016 | The bank has requested that you retrieve the card from the cardholder - it may be a lost or stolen card. | |
| 3017 | You submitted an invalid credit card number with your request. | |
| 3023 | Your request has been declined by the issuing bank due to its proprietary card activity regulations. | |
| 3036 | Your request has been declined due to an invalid issuer. | |
| 3040 | Your request has been declined because the request type is not permitted on the card. | |
| 3054 | The transaction was declined due to suspected fraud. | |
| 3073 | Your request has been declined due to closed customer account. | |
| 4001 | The card number or email address associated with this transaction is in our negative database. | |
| 5031 | The transaction you have submitted has already been processed. | |
| 3013 | Your request has been declined by the issuing bank due to problems with the credit card account. | |
| 3037 | Your request has been declined because it is invalid. | |
| 3041 | Your request has been declined due to a timeout. |
Updated 8 days ago
