InstaDebit Withdrawal (via IDS)

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

133

InstaDebitWithdrawal

WithdrawnByProvider (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 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.