InstaDebit Deposit (via IDS)

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

130

InstaDebitDeposit

DepositedByProvider (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 State

Description

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:

Code

Definition

Declined Txn Fee Charged

1

Transaction is terminated. It fails IDS' IP validation.

2

Transaction is terminated. The customer's IDS account is blocked or suspended.

3

Transaction is terminated. Risk management subsystem returns suspicious/fraudulent information on the bank account. The customer's IDS account is blocked as a result.

Yes

4

Transaction is terminated. The amount exceeds IDS transaction velocity limits.

7

Transaction is terminated. Failed bank account verification attempts by the customer exceed the maximal allowed.

Yes

8

The customer cancels transaction after failed bank account verification.

Yes

9

Transaction is terminated. Failed identity verification attempts by the customer exceed the maximal allowed.

Yes

12

Transaction is terminated. The customer has too many failed login attempts. The account is temporarily blocked.

13

Transaction is terminated. Risk management subsystem rejects the transaction due to negative information on the bank account.

Yes

14

Transaction is terminated. Risk management subsystem returns suspicious/fraudulent information on the identity. The customer's signup request is declined.

15

Transaction is terminated. Customer's personal information (names) from the merchant mismatches that from IDS.

16

Transaction is terminated. There is not sufficient fund to cover the transaction.

Yes

17

Transaction is terminated. The crosscurrency transaction is not supported.

19

Transaction is terminated. The country where the consumer resides is not supported.

20

Transaction is terminated. The consumer must verify his/her bank account before transacting.

21

Transaction is terminated. There is not sufficient fund in customer's INSTADEBIT account to cover the transaction.

98

Transaction is terminated. The transaction is declined (generic error).

99

The transaction is cancelled by the customer.