Direct Bank Transfer Withdrawal (IDS)

Payment Method DirectBankTransferPaymentWithdrawal (with provider IDS) is used for bank transfer withdrawals in Canada.

Also called CanadianEFTWithdrawal.

The following method IDs are covered in this section:

IDNameCredit/Debit State
153DirectBankTransferPaymentWithdrawalWithdrawnByProvider (20)

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)Bank code, 3 digits institution number followed by 5 digits transit number
BankCountryCode2 (string, required)Two-letter ISO country code. Should be “CA” only

There is no specificPaymentData.

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>153</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>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>153</key>
            <value>CanadianEFTWithdrawal</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>20</key>
                <value>WithdrawnByProvider</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>

The following payment states are possible:

Payment StatesDescription
WithdrawnByProvider (20)Success state
DuplicatePaymentValidationFailed (369)The payment with same merchantTransactionID already exists.
RefusedByProvider (100)Payment not accepted. See below table for list of error codes.

Canadian EFT transaction response codes

The following table contains the provider response codes and the appropriate transaction states:

Provider Response CodeDescriptionRemark
SApprovedIndicates Success
XDeclinedIndicates failure
RRejectedIndicates failure
IInitiatedIndicates failure

Provider specific error codes

ProviderErrorResponseCode   ProviderErrorResponseMessage
E002    System error 
E003    Invalid size of merchant account 
E004    Merchant account authorization failed 
E005    Invalid transaction type 
E006    Invalid size of merchant transaction number 
E007    Duplicate merchant transaction number 
E008    Invalid transaction amount 
E009    Invalid currency code 
E010    Invalid size of first name 
E011    Invalid size of middle name 
E012    Invalid size of last name 
E013    Invalid address (addr_1 or addr_2 field) 
E014    Invalid size of city 
E015    Invalid state 
E016    Invalid country code 
E017    Invalid zip/province code 
E018    Invalid home phone number 
E019    Invalid size of driver license number 
E020    Invalid driver license state 
E021    Invalid driver license expiry date 
E022    Invalid social security number 
E023    Invalid date of birth 
E024    Invalid customer’s bank account type 
E025    Invalid size of customer’s bank name 
E026    Invalid customer’s bank routing/ABA number 
E027    Invalid customer’s bank account number 
E028    Invalid check serial number 
E029    Consumer's IP validation failed 
E030    Invalid HTTP request 
E031    Invalid HTTP content 
E032    System error 
E033    No active processor account for the merchant 
E034    System error 
E035    System error 
E036    System error 
E037    System error 
E038    Processing transaction failed 
E039    Invalid payee information 
E040    The credit transaction is declined as daily credit limit is exceeded. 
E041    Error encountered while verifying the transaction 
E042    Verification failed due to velocity limits or duplicate check serial number. (Deprecated. Replaced by E1xx serials below.) 
E043    Verification failed due to invalid MICR or NSF/unpaid amounts reported by Financial Institutions or collection agencies. (Deprecated. Replaced by E1xx serials below.) 
E044    Address information (address line/city/state/postal code/country) is missing or incomplete for ID verification. 
E045    DOB (date of birth) is missing for ID verification. 
E046    Error encountered while verifying the identity. 
E047    ID verification failed. 
E048    Insufficient funds 
E151    Invalid Routing/Transit 
E152    Invalid MICR (routing, account or check # is invalid) 
E161    Non-existent Bank Account 
E162    Closed Bank Account 
E163    Frozen Bank Account 
E164    Recent NSF reported for the Bank Account 
E165    Non-transactional Bank Account 
E171    Unpaid amount (reported by collection agencies or financial institutions) 
E172    Negative information on the bank account (customer/agency stop, check stopped, ID is flagged, etc) 
E181    Duplicate check serial number. 
E182    Over transaction limits. 
E201    Fraudulent or suspicious bank account 
E202    Fraudulent or suspicious identity 
E203    Fraudulent or suspicious transaction pattern 
E301    Failed transaction velocity check. 
E401    Transaction Type 2 is not allowed for the merchant account. 
E402    Consumer’s IP from which the deposit originates is required for the merchant account. 
E403    Consumer’s SSN/SIN and full address is required for any deposit for the merchant account.

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: