InstaDebit Deposit (via IDS)

The following method IDs are covered in this section:

IDNameCredit/Debit State
130InstaDebitDepositDepositedByProvider (29)

Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).

Redirect Integration

Currently not supported.

Backend2BackendIntegration

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)value
Middlename
(string)
The middle name of the user
AddressLine1
(string)
Home address line 1
AddressLine2
(string)
Home address line 2
PhoneNumberAreacode
(string)
Home phone area code
PhoneNumberLocalNumber
(string)
Home phone local number
ExtraField
(string)
Extra parameter. It is a pass-through only and provider IDS does not record it

Example initiatePaymentRequest:

<initiatePaymentRequest 
                        xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>YourMerchantID</merchantID>
  <shopID>YourShopID</shopID>
  <merchantTransactionID>d3086580-6351-4956-bb7d-2520e8098ce6</merchantTransactionID>
  <paymentMethodID>130</paymentMethodID>
  <amount currencyCode="EUR">10</amount>
  <userID>678358</userID>
  <userData/>
  <userIP>127.0.0.1</userIP>
  <userSessionID>15208e51-9cfa-422e-9f6e-0a5b5e780e20</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi:type="keyStringValuePair">
      <key>Middlename</key>
      <value>test</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PhoneNumberAreacode</key>
      <value>12345</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PhoneNumberLocalNumber</key>
      <value>23456</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>AddressLine1</key>
      <value>testaddr1</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>AddressLine2</key>
      <value>testaddr2</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>ExtraField</key>
      <value>xxx</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>SuccessPageUrl</key>
      <value>http://success/?a=b&amp;c=d</value>
    </data>
  </specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<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>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <paymentMethod>
      <key>130</key>
      <value>InstaDebitDeposit</value>
    </paymentMethod>
    <merchantTransactionID>d3086580-6351-4956-bb7d-2520e8098ce6</merchantTransactionID>
    <paymentID>c4642a17-a6c3-4afd-8c4b-e821fca4fc22</paymentID>
    <userID>678358</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>7346cf00-de3b-4cde-8ce3-622330f6831b</id>
      <definition>
        <key>287</key>
        <value>RedirectDataCreated</value>
      </definition>
      <createdOn>2012-08-03T10:17:00.8739349Z</createdOn>
      <description>https://staging.instadebit.com/instadebit/merGateway.do
        merchant_id='DemoG'
        merchant_user_id='678358'
        merchant_txn_num='4618'
        txn_amount='10.00'
        txn_currency='EUR'
        first_name='testfirst'
        middle_name='t'
        last_name='testlast'
        addr_1='testaddr1'
        addr_2='testaddr2'
        city='berlin'
        state='berlin'
        zip='11444'
        country='DE'
        hph_area_code='123'
        hph_local_number='23456'
        dob_day='7'
        dob_month='6'
        dob_year='1988'
        extra_field_1='xxx'
        return_url='http://success/?a=b&amp;c=d'
        lang='de'
      </description>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>RedirectionUrl</key>
          <value>https://staging.instadebit.com/instadebit/merGateway.do</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatamerchant_id</key>
          <value>DemoG</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatamerchant_user_id</key>
          <value>678358</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatamerchant_txn_num</key>
          <value>4618</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatatxn_amount</key>
          <value>10.00</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatatxn_currency</key>
          <value>EUR</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatafirst_name</key>
          <value>testfirst</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatamiddle_name</key>
          <value>t</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatalast_name</key>
          <value>testlast</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDataaddr_1</key>
          <value>testaddr1</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDataaddr_2</key>
          <value>testaddr2</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatacity</key>
          <value>berlin</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatastate</key>
          <value>berlin</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatazip</key>
          <value>11444</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatacountry</key>
          <value>DE</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatahph_area_code</key>
          <value>123</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatahph_local_number</key>
          <value>23456</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatadob_day</key>
          <value>7</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatadob_month</key>
          <value>6</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatadob_year</key>
          <value>1988</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDataextra_field_1</key>
          <value>xxx</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatareturn_url</key>
          <value>http://success/?a=b&amp;c=d</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDatalang</key>
          <value>de</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PostDataKeys</key>
          <value>merchant_id,merchant_user_id,merchant_txn_num,txn_amount,txn_currency,first_name,middle_name,last_name,addr_1,addr_2,city,state,zip,country,hph_area_code,hph_local_number,dob_day,dob_month,dob_year,extra_field_1,return_url,lang</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>false</isExecuted>
    <baseAmount currencyCode="EUR">10</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>4618</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</initiatePaymentResponse>

Possible payment states in initiatePaymentResponse:

Payment StateDescription
RedirectDataCreated (287)The merchant system should retrieve the redirect URL from payment.state.paymentStateDetails (key: RedirectionUrl).
Post data should be extracted from payment.state.paymentStateDetails(key: PostData…).
DuplicatePaymentValidationFailed (369)Error state: duplicate payment

Notes

For failed transactions Instadebit do not return customers back.
For cancelled transaction they do return customer to the return_url. The merchant can change the return_URL by appending the transaction_number, then look up the state (PXP passes a notification for successful payments).

This is being tested during the certification.

Notifications

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.

Example handlePaymentStateChangedNotificationRequest:

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.cqrpayments.com/PaymentProcessing">
  <payment xsi:type="paymentWithPaymentAccount">
    <merchantID>B2BTestMerchant</merchantID>
    <shopID>150001</shopID>
    <paymentMethod>
      <key>130</key>
      <value>InstaDebitDeposit</value>
    </paymentMethod>
    <merchantTransactionID>8c9f9424-f388-4253-9c3b-0b54a12b86c0</merchantTransactionID>
    <paymentID>e7c7cc22-bcf0-4ca0-8a65-a5cb48f14d72</paymentID>
    <userID>678358</userID>
    <paymentProvider>
      <key>109</key>
      <value>InstaDebit</value>
    </paymentProvider>
    <amount currencyCode="EUR">10.0000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>5df3dee4-5600-41bb-9947-d0221ac215a0</id>
      <definition>
        <key>29</key>
        <value>DepositedByProvider</value>
      </definition>
      <createdOn>2017-08-02T12:04:52.123</createdOn>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderResponseCode</key>
          <value>0</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">10.0000</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>204918</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>3e407340-8102-4581-90ab-f295793d872f</paymentAccountID>
      <details>
        <detail xsi:type="keyStringValuePair">
          <key>accountNumber</key>
          <value>12345</value>
        </detail>
      </details>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>

Transaction Error Codes:

CodeDefinitionDeclined Txn Fee Charged
1Transaction is terminated. It fails IDS' IP validation.
2Transaction is terminated. The customer's IDS account is blocked or suspended.
3Transaction is terminated. Risk management subsystem returns suspicious/fraudulent information on the bank account. The customer's IDS account is blocked as a result.Yes
4Transaction is terminated. The amount exceeds IDS transaction velocity limits.
7Transaction is terminated. Failed bank account verification attempts by the customer exceed the maximal allowed.Yes
8The customer cancels transaction after failed bank account verification.Yes
9Transaction is terminated. Failed identity verification attempts by the customer exceed the maximal allowed.Yes
12Transaction is terminated. The customer has too many failed login attempts. The account is temporarily blocked.
13Transaction is terminated. Risk management subsystem rejects the transaction due to negative information on the bank account.Yes
14Transaction is terminated. Risk management subsystem returns suspicious/fraudulent information on the identity. The customer's signup request is declined.
15Transaction is terminated. Customer's personal information (names) from the merchant mismatches that from IDS.
16Transaction is terminated. There is not sufficient fund to cover the transaction.Yes
17Transaction is terminated. The crosscurrency transaction is not supported.
19Transaction is terminated. The country where the consumer resides is not supported.
20Transaction is terminated. The consumer must verify his/her bank account before transacting.
21Transaction is terminated. There is not sufficient fund in customer's INSTADEBIT account to cover the transaction.
98Transaction is terminated. The transaction is declined (generic error).
99The transaction is cancelled by the customer.