Direct Bank Transfer Deposit (IDS)

Payment Method DirectBankTransferDeposit is used for bank transfer in Canada.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

152

DirectBankTransferPaymentDeposit

DepositedByProvider (29)

Payment method interaction type: Synchronous Execution with External Payment Provider (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)

Bank account number, maximum 12 digits

BankCode (string, required)

3 digits institution number followed by 5 digits transit number

BankCountryCode2 (string, required)

Two-letter ISO country code. Should be "CA" only.

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

UseEFTRiskCheck
(bool)

Indicates whether the provider should perform verification or not.

In case UseEFTRiskCheck is to be used you have to send the following fields in the userData address xml section:

key (value type, account type, required)

value

identificationNumber (string, required)

The social security number (SSN) or the last 4 digits

street (string, required)

The street address of the user

houseNumber (string, required)

The houseNumber

state (string)

The customer´s address state.

postalCode (string, required)

The customer´s address zip code

countrycode2 (string, required)

The home country of the customer

dateofBirth (DateTime, required)

The date of birth of the customer

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>152</paymentMethodID>
    <amount currencyCode="EUR">10</amount>
    <userID>d48693ca-e96e-4ca1-9e01-035645a793991</userID>
    <userData>
        <username>democustomer</username>
        <firstname>demo</firstname>
        <lastname>customer</lastname>
        <currencyCode>cad</currencyCode>
        <languageCode>en</languageCode>
        <email>[email protected]</email>               
        <address>
            <postalCode>e3n2g3</postalCode>
            <city>campbellton</city>
            <state>nb</state>
            <countryCode2>ca</countryCode2>
            <telephoneNumber>5067778888</telephoneNumber>
        </address>
        <identificationNumber>1234567</identificationNumber>
    </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>123456789123</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>BankCode</key>
                <value>00302572</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>BankCountryCode2</key>
                <value>CA</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <payment>
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>152</key>
            <value>CanadianEFTDeposit</value>
        </paymentMethod>
        <merchantTransactionID>6860fe6c-68d8-4c51-9ae4-85a37808e572</merchantTransactionID>
        <paymentID>d0faccdb-140b-4d8e-b99a-a23993f7687b</paymentID>
        <userID>d48693ca-e96e-4ca1-9e01-035645a793991</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>0f668d7c-a6ca-4c77-bb14-79ad1e058efd</id>
            <definition>
                <key>29</key>
                <value>DepositedByProvider</value>
            </definition>
            <createdOn>2011-05-18T12:59:47.9526353Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                    <key>ProviderResponseCode</key>
                    <value>S</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">10</baseAmount>
        <paymentDetails xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    </payment>
</initiatePaymentResponse>

Possible payment states:

Payment States

Description

DepositedByProvider (29)

Success state

DuplicatePaymentValidationFailed (369)

The payment with same merchantTransactionID already exists.

RefusedByProvider (100)

Payment not accepted

In case of refusal the payment state will contain provider error code and provider error message with the keys ProviderErrorResponseCode and ProviderErrorResponseMessage.

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: