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: