iDebit Withdrawal (via IDS)
The following method IDs are covered in this section:
ID | Name | Credit/Debit State |
---|---|---|
212 | iDebitWithdrawal | WithdrawnByProvider(20) |
Payment method interaction type: Synchronous execution (see Interaction Types).
PXP Financial payment service sends a withdrawal request to iDebit, upon which in the case of a successful transaction, the payment goes to state WithdrawnByProvider (with ProviderTransactionsIDString being logged).
In the case of an unsuccessful withdrawal response, the payment goes to state RefusedByProvider and a ProviderResponseCode and ProviderResponseMessage is logged and available for notification to the merchant (see list of codes further below).
Redirect Integration
Currently not supported.
Backend2BackendIntegration
The following table contains the fields to be sent in the initiatePaymentRequest.specificPaymentAccountData xml section:
key (value type, account type, required) | value |
---|---|
AccountNumber (string, required</span) | user ID on provider side |
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>6860fe6c-68d8-4c51-9ae4-85a37808e572</merchantTransactionID>
<paymentMethodID>212</paymentMethodID>
<amount currencyCode="USD">10</amount>
<userID>d48693ca-e96e-4ca1-9e01-035645a793991</userID>
<userData/>
<userIP>127.0.0.1</userIP>
<userSessionID>6a956eae-d903-4a01-8170-20dae92673d1</userSessionID>
<creationTypeID>1</creationTypeID>
<paymentAccountID>9e79e86e-c8bf-481a-bbfc-729358d1c7ef</paymentAccountID>
<paymentAccount>
<specificPaymentAccountData>
<data xsi:type="keyStringValuePair">
<key>AccountNumber</key>
<value>TheAccountNumber</value>
</data>
</specificPaymentAccountData>
</paymentAccount>
</initiatePaymentRequest>
Example initiatePaymentResponse:
<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse
xmlns="http://www.cqrpayments.com/PaymentProcessing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment xsi:type="paymentWithPaymentAccount" >
<merchantID>KalixaAcceptDemo</merchantID>
<shopID>KalixaAcceptDemo</shopID>
<paymentMethod>
<key>212</key>
<value>iDebitWithdrawal</value>
</paymentMethod>
<merchantTransactionID>6860fe6c-68d8-4c51-9ae4-85a37808e572</merchantTransactionID>
<paymentID>ee85fdc2-0b57-4fc0-a6a6-8816433dd27e</paymentID>
<userID>CQRB2BTestMerchantSystemUser</userID>
<paymentProvider>
<key>109</key>
<value>InstaDebit</value>
</paymentProvider>
<amount currencyCode="USD">10</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>2906cc15-1fcc-41f7-9911-60ad4dce4609</id>
<definition>
<key>20</key>
<value>WithdrawnByProvider</value>
</definition>
<createdOn>2012-06-20T08:35:56.130665Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>TransactionFee</key>
<value>0,1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">10</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>11553</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderTransactionID</key>
<value>80</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>d3ec399d-8b2f-4490-ab75-c9c5c01e844b</paymentAccountID>
</paymentAccount>
</payment>
</initiatePaymentResponse>
The possible payment states in initiatePaymentResponse are listed below:
Payment State | Description |
---|---|
WithdrawnByProvider (20) | Success state |
DuplicatePaymentValidationFailed (369) | Payment with same merchantTransactionID already exists. |
RefusedByProvider (100) | Refused state. Payment was not accepted by provider. ProviderResponseCode is provided in paymentStateDetails - see below. |
The following fields are returned in paymentStateDetails
:
Field name | Description |
---|---|
TransactionFee | Fee that the provider charges for a transaction |
ProviderResponseCode (in case of RefusedByProvider) | See below table for the provider error codes |
ProviderResponseMessage (in case of RefusedByProvider) | See below table for the provider error codes |
Provider-specific error codes:
ProviderResponseCode | ProviderResponseMessage |
---|---|
F002* | Content of the request does not comply with the specification |
F003* | The merchant fails IDS’ authentication |
F004 | The user id provided by merchant doesn’t exist in IDS |
F005 | The merchant user id field is missing |
F006 | The transaction type is wrong |
F007 | The transaction amount is wrong |
F008 | The currency of the transaction is not supported |
F009 | The merchant transaction number is not unique |
F010 - F015 | System internal error |
F016 | The customer to whom the payout is sent has been suspended or blocked by IDS due to suspicious or fraudulent activities |
F017 | The transaction is declined to avoid overdraft from a merchant’s account. A merchant’s balance with IDS must be able to cover a payout in order for the transaction to be processed |
Notifications
The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.
Updated almost 6 years ago