InstaDebit Withdrawal (via IDS)

The following method IDs are covered in this section:

IDNameCredit/Debit State
133InstaDebitWithdrawalWithdrawnByProvider (20)

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

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)
UserID on provider IDS

Example initiatePaymentRequest:

<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>YourMerchantID</merchantID>
  <shopID>YourShopID</shopID>
  <merchantTransactionID>6860fe6c-68d8-4c51-9ae4-85a37808e572</merchantTransactionID>
  <paymentMethodID>133</paymentMethodID>
  <amount currencyCode="EUR">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:

<initiatePaymentResponse 
                         xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <payment xsi:type="paymentWithPaymentAccount">
    <merchantID>B2BTestMerchant</merchantID>
    <shopID>150102</shopID>
    <paymentMethod>
      <key>133</key>
      <value>InstaDebitWithdrawal</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="EUR">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 StateDescription
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 nameDescription
TransactionFeeFee 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:

ProviderResponseCodeProviderResponseMessage
F002Content of the request does not comply with the specification
F003The merchant fails IDS’ authentication
F004The user id provided by merchant doesn’t exist in IDS
F005The merchant user id field is missing
F006The transaction type is wrong
F007The transaction amount is wrong
F008The currency of the transaction is not supported
F009The merchant transaction number is not unique
F010 - F015System internal error
F016The customer to whom the payout is sent has been suspended or blocked by IDS due to suspicious or fraudulent activities
F017The 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.