eCheckSelect Withdrawal (ACHeCheckWithdrawal)

Payment Method ACHeCheckWithdrawal provider naming Instant Bank Transfer, formerly eCheckSelect - is s bank transfer withdrawal for the US based on the eCheckSelect deposit method.

The following method IDs are covered in this section:

IDNameCredit/Debit State
207ACHeCheckWithdrawalWithdrawnByProvider

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
TransactionState (string)The US state where the transaction takes place.
PhoneNumberAreacode (string, required)The user´s home phone 3-digit number.
PhoneNumberLocalNumber (string, required)The user´s 7-digit home phone number.

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
<merchantID>B2BTestMerchant</merchantID>
<shopID>150001</shopID>
<merchantTransactionID>d0f1972d-9174-40b8-92f5-45fcf94a7725</merchantTransactionID>
<paymentMethodID>207</paymentMethodID>
<amount currencyCode="USD">49.65</amount>
<userID>c8511bd6-d509-4941-90e5-8fc188</userID>
<userData>
 <username>c8511bd6-d509-4941-90e5-8fc188</username>
 <firstname xsi:nil="true" />
 <lastname xsi:nil="true" />
 <currencyCode xsi:nil="true" />
 <languageCode xsi:nil="true" />
 <email xsi:nil="true" />
 <address>
  <street xsi:nil="true" />
  <houseName xsi:nil="true" />
  <houseNumber xsi:nil="true" />
  <houseNumberExtension xsi:nil="true" />
  <postalCode xsi:nil="true" />
  <city xsi:nil="true" />
  <state xsi:nil="true" />
  <countryCode2>US</countryCode2>
  <telephoneNumber xsi:nil="true" />
 </address>
 <identificationNumberType xsi:nil="true" />
 <drivingLicenseNumber xsi:nil="true" />
 <drivingLicenseIssuingState xsi:nil="true" />
</userData>
<userIP>127.0.0.1</userIP>
<userSessionID>dedb60de-c27d-4f50-9833-37b6dc11b8b0</userSessionID>
<creationTypeID>1</creationTypeID>
<specificPaymentData>
 <data xsi:type="keyStringValuePair">
  <key>PhoneNumberAreacode</key>
  <value>312</value>
 </data>
 <data xsi:type="keyStringValuePair">
  <key>PhoneNumberLocalNumber</key>
  <value>9217282</value>
 </data>
 <data xsi:type="keyStringValuePair">
  <key>TransactionState</key>
  <value>NJ</value>
 </data>
</specificPaymentData>
<paymentAccount>
 <specificPaymentAccountData>
  <data xsi:type="keyStringValuePair">
   <key>AccountNumber</key>
   <value>2222233333</value>
  </data>
  <data xsi:type="keyStringValuePair">
   <key>BankCode</key>
   <value>73902494</value>
  </data>
  <data xsi:type="keyIntValuePair">
   <key>BankAccountType</key>
   <value>4</value>
  </data>
  <data xsi:type="keyStringValuePair">
   <key>BankCountryCode2</key>
   <value>US</value>
  </data>
 </specificPaymentAccountData>
</paymentAccount>
</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>XXXXXXX</merchantID>
        <shopID>XXXXXXX</shopID>
        <paymentMethod>
            <key>207</key>
            <value>ACHeCheckWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>XXXXXXX</merchantTransactionID>
        <paymentID>645ffe03-059d-44c7-a5fa-8cb96f29d5ba</paymentID>
        <userID>michquin</userID>
        <paymentProvider>
            <key>122</key>
            <value>Mazooma</value>
        </paymentProvider>
        <amount currencyCode="USD">3.37</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>fecef4fa-cb6d-452f-95ac-5f82b913265d</id>
            <definition>
                <key>20</key>
                <value>WithdrawnByProvider</value>
            </definition>
            <createdOn>2019-10-09T08:40:56.3079744Z</createdOn>
            <paymentStateDetails xsi:nil="true"></paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">2.53</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>20191009084056583647000000</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>98213</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>ffd603aa-b5e0-4c64-a711-9fd8f2b694b9</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

if Real Time Payment (RTP) is activated for Provider Mazooma then an additional parameter is added in the "initiatePaymentResponse" which specifies if the Payment is Real Time Payment (RTP) or ACH payment.

key (value type, account type, required)value
UrgentPaymentBoolean value describing if the payment is Real time payment.
"true" if payment is RTP

Example "initiatePaymentResponse" for Real time payment

<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>XXXX</merchantID>
        <shopID>XXXXX</shopID>
        <paymentMethod>
            <key>207</key>
            <value>ACHeCheckWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>MazoomaProviderTestingUrgentPayment007</merchantTransactionID>
        <paymentID>a2414d49-3286-42cd-aaba-44ba95a53464</paymentID>
        <userID>michquin</userID>
        <paymentProvider>
            <key>122</key>
            <value>Mazooma</value>
        </paymentProvider>
        <amount currencyCode="USD">101.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>a77d7e2a-b741-412c-ae44-788c7b4070ca</id>
            <definition>
                <key>20</key>
                <value>WithdrawnByProvider</value>
            </definition>
            <createdOn>2021-08-05T11:42:19.5216115Z</createdOn>
            <paymentStateDetails xsi:nil="true"></paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">75.89</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyBooleanValuePair">
                <key>UrgentPayment</key>
                <value>true</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>20210805114218878032000000</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>114545</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>57550198-606a-4022-befa-6b394349e10e</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example "initiatePaymentResponse" for ACH payment

<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>XXXX</merchantID>
        <shopID>XXX</shopID>
        <paymentMethod>
            <key>207</key>
            <value>ACHeCheckWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>MazoomaProviderTestingUrgentPayment006</merchantTransactionID>
        <paymentID>5a3c42a2-338d-45ee-8629-55a29b009306</paymentID>
        <userID>michquin</userID>
        <paymentProvider>
            <key>122</key>
            <value>Mazooma</value>
        </paymentProvider>
        <amount currencyCode="USD">99.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>e207cf6b-4858-4f7b-a102-954aba03f25c</id>
            <definition>
                <key>20</key>
                <value>WithdrawnByProvider</value>
            </definition>
            <createdOn>2021-08-05T11:41:39.6775268Z</createdOn>
            <paymentStateDetails xsi:nil="true"></paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">74.39</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyBooleanValuePair">
                <key>UrgentPayment</key>
                <value>false</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>20210805114138365775000000</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>114544</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>57550198-606a-4022-befa-6b394349e10e</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example "initiatePaymentResponse" for Pending payment. State is "PendingOnProvider"

<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>xxx</merchantID>
        <shopID>xxxx</shopID>
        <paymentMethod>
            <key>207</key>
            <value>ACHeCheckWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>MazoomaProviderTestingUrgentPayment005</merchantTransactionID>
        <paymentID>261736fd-27e7-435d-9d59-153d77725e9d</paymentID>
        <userID>michquin</userID>
        <paymentProvider>
            <key>122</key>
            <value>Mazooma</value>
        </paymentProvider>
        <amount currencyCode="USD">100.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>7e467b89-7e9a-4e35-af7e-ba38a0cb7cfc</id>
            <definition>
                <key>120</key>
                <value>PendingOnProvider</value>
            </definition>
            <createdOn>2021-08-05T11:39:57.379797Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">75.14</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyBooleanValuePair">
                <key>UrgentPayment</key>
                <value>false</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>20210805113955997218000000</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>114543</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>57550198-606a-4022-befa-6b394349e10e</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Notifications

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

The notified payment accounts include a payment account with account token (in field accountNumber) and account label (in field subAccountNumber). The account token is the token received from provider. The merchant may use either the payment account alone or with the account token to initiate a deposit or withdrawal with the same user bank account. The account label is the masked user bank account number.

Example handlePaymentStateChangedNotificationRequest for a successful payment:

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount">
		<merchantID>XXXXXXX</merchantID>
		<shopID>100001</shopID>
		<paymentMethod>
			<key>207</key>
			<value>ACHeCheckWithdrawal</value>
		</paymentMethod>
		<merchantTransactionID>b9122b38-efc3-4179-8dc2-8b8d4ac46c3b</merchantTransactionID>
		<paymentID>7da3b1cf-56c6-4d48-afe8-cb9a7e0ddd29</paymentID>
		<userID>bfb5b0e4-cdbf-413d-a96c-2e4e1b</userID>
		<paymentProvider>
			<key>122</key>
			<value>Mazooma</value>
		</paymentProvider>
		<amount currencyCode="USD">49.6500</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>5f232c3b-75f1-4a18-a024-6073ba25fcb5</id>
			<definition>
				<key>20</key>
				<value>WithdrawnByProvider</value>
			</definition>
			<createdOn>2019-10-09T10:36:08.15</createdOn>
			<paymentStateDetails xsi:nil="true" />
		</state>
		<isExecuted>true</isExecuted>
		<baseAmount currencyCode="EUR">37.3100</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>98222</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>PTID230484</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>ae6b4d47-9c36-47cf-bc6c-47985e678e89</paymentAccountID>
		</paymentAccount>
	</payment>
</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationRequest for a successful transaction with "urgent payment property as false:

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount">
		<merchantID>XXXX</merchantID>
		<shopID>XXXXX</shopID>
		<paymentMethod>
			<key>207</key>
			<value>ACHeCheckWithdrawal</value>
		</paymentMethod>
		<merchantTransactionID>5439652e-6321-45a8-8226-5df5413ba82b</merchantTransactionID>
		<paymentID>31b76dff-1142-4102-9b53-af7f71e733fd</paymentID>
		<userID>0ff46aa9-d134-43a7-a260-1f6b10</userID>
		<paymentProvider>
			<key>122</key>
			<value>Mazooma</value>
		</paymentProvider>
		<amount currencyCode="USD">100.0100</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>13f8e1e4-71d5-49c6-8ff7-bb0039ffb535</id>
			<definition>
				<key>20</key>
				<value>WithdrawnByProvider</value>
			</definition>
			<createdOn>2021-08-10T08:05:50.403</createdOn>
			<paymentStateDetails xsi:nil="true" />
		</state>
		<isExecuted>true</isExecuted>
		<baseAmount currencyCode="EUR">75.1400</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>114959</value>
			</detail>
			<detail xsi:type="keyBooleanValuePair">
				<key>UrgentPayment</key>
				<value>false</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>PTID230484</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>711b9e50-3206-41ac-afde-2623110fcb79</paymentAccountID>
		</paymentAccount>
	</payment>
</handlePaymentStateChangedNotificationRequest>

Withdrawal error codes

For the withdrawal error codes, see here.