Direct Bank Transfer Payment Withdrawal (Verifi)

Payment Method DirectBankTransferPaymentWithdrawal is used for ACH withdrawal in the USA.

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, number must be 9 digits
BankCountryCode2 (string, required)Bank country code, two-letter ISO country code
AccountOwner (string, required)Bank account owner

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)value
OrderId
(Int)
ID for different channels for deposit based on OrderID:
1 - Verifi-IgmPay
2 - Verifi - Echecks
PaymentDescription (string, required)additional information
PaymentProviderID (Int)Has to be 120
PaymentDescriptionLanguageCode (string)The language code of the payment description
CountryCode2 (string)The country code of the request
UserFirstname (string)The first name of the user
UserLastname (string)The last name of the user
UserCountryCode2 (string)The country code of the user
Street (string, required)The street of the user; member´s address (include house number)
City (string, required)The user´s city
*State (string, required)The user`s state
PostalCode (string, required)The user´s zip code

Example initiatePaymentRequest:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
  <merchantID>YourMerchantID</merchantID>
  <shopID>YourShopID</shopID>
  <merchantTransactionID>911e1a3c-91a5-48c4-849d-31dc5f367ff5</merchantTransactionID>
  <paymentMethodID>153</paymentMethodID>
  <amount currencyCode="USD">10</amount>
  <userID>d8a5d63a-5f10-4721-a1b5-6da046</userID>
  <userData>
    <username xsi:nil="true"/>
    <firstname>Clark</firstname>
    <lastname>Kent</lastname>
    <currencyCode xsi:nil="true"/>
    <languageCode xsi:nil="true"/>
    <email xsi:nil="true"/>
    <address>
      <street>440, Teststreet</street>
      <houseName xsi:nil="true"/>
      <houseNumber xsi:nil="true"/>
      <houseNumberExtension xsi:nil="true"/>
      <postalCode>90210</postalCode>
      <city>Atlantic City</city>
      <state>NJ</state>
      <countryCode2>US</countryCode2>
      <telephoneNumber xsi:nil="true"/>
    </address>
  </userData>
  <userIP>127.0.0.1</userIP>
  <userSessionID>b433c122-cdb6-4b5b-9e32-95802219bc5f</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi:type="keyStringValuePair">
      <key>PaymentDescription</key>
      <value>Withdrawal</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>UserFirstname</key>
      <value>Clark</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>UserLastname</key>
      <value>Kent</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>UserCountryCode2</key>
      <value>US</value>
    </data>
    <data xsi:type="keyIntValuePair">
      <key>PaymentProviderID</key>
      <value>120</value>
    </data>
  </specificPaymentData>
  <paymentAccount>
    <specificPaymentAccountData>
      <data xsi:type="keyStringValuePair">
        <key>CurrencyCode</key>
        <value>USD</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>BankCountryCode2</key>
        <value>US</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>BankCode</key>
        <value>121201694</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>AccountNumber</key>
        <value>234567890123</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>AccountOwner</key>
        <value>Clark Kent</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>BankAddress</key>
        <value>TurkishPlatz Strasse Nr.69</value>
      </data>
    </specificPaymentAccountData>
  </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
			<payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
				<merchantID>YourMerchantID</merchantID>
				<shopID>YourShopID</shopID>
				<paymentMethod>
					<key>153</key>
					<value>DirectBankTransferPaymentWithdrawal</value>
				</paymentMethod>
				<merchantTransactionID>911e1a3c-91a5-48c4-849d-31dc5f367ff5</merchantTransactionID>
				<paymentID>9c484d71-15db-417a-9cf1-6751767352c3</paymentID>
				<userID>d8a5d63a-5f10-4721-a1b5-6da046</userID>
				<paymentProvider>
					<key>120</key>
					<value>Verifi</value>
				</paymentProvider>
				<amount currencyCode="USD">10</amount>
				<creationType>
					<key>1</key>
					<value>User</value>
				</creationType>
				<userIP>127.0.0.1</userIP>
				<state>
					<id>490de653-268f-4b5c-8051-d1a3504f53e0</id>
					<definition>
						<key>20</key>
						<value>WithdrawnByProvider</value>
					</definition>
					<createdOn>2013-09-09T14:37:25.1702216Z</createdOn>
					<description>ResponseCode=100</description>
					<paymentStateDetails>
						<detail xsi:type="keyStringValuePair">
							<key>ProviderResponseCode</key>
							<value>100</value>
						</detail>
						<detail xsi:type="keyStringValuePair">
							<key>ProviderResponseMessage</key>
							<value>Transaction was Approved</value>
						</detail>
					</paymentStateDetails>
				</state>
				<isExecuted>true</isExecuted>
				<baseAmount currencyCode="EUR">6.64</baseAmount>
				<paymentDetails>
					<detail xsi:type="keyStringValuePair">
						<key>UserFirstname</key>
						<value>Clark</value>
					</detail>
					<detail xsi:type="keyStringValuePair">
						<key>UserLastname</key>
						<value>Kent</value>
					</detail>
					<detail xsi:type="keyStringValuePair">
						<key>ProviderExternalID</key>
						<value>1702</value>
					</detail>
					<detail xsi:type="keyStringValuePair">
						<key>ProviderTransactionID</key>
						<value>c28fb576-5203-4c39-bc0e-0e830eb1e7d1</value>
					</detail>
				</paymentDetails>
				<paymentAccount>
					<paymentAccountID>6b9682ee-b73c-49e7-93cc-23884bace9e0</paymentAccountID>
				</paymentAccount>
			</payment>
		</initiatePaymentResponse>

Possible payment states in initiatePaymentResponse:

Payment StatesDescription
WithdrawnByProvider (20)OK state
DuplicatePaymentValidationFailed (369)A payment with same merchantTransactionID already exists.
RefusedByProvider(100)Error state; Payment was not accepted by the provider
WithdrawErrorReportedByProvider (21)Error state; Error was reported by provider
ProviderCommunicationErrorOccurred (233)Error state; Communication error occurred with the provider.

Following field is returned in paymentDetails of initiatePaymentResponse:

keyvalue
ProviderTransactionIDAn unique transactionID from Verifi.

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 possible payment states in the payment state change notification are:

Payment StatesDescription
RefusedByProvider (100)Error state, payment was not accepted by provider; redirect user to ErrorPageUrl
WithdrawnByProvider (20)Success state; Payment has been executed.
Cancelled(113)Error state; The payment was refused by provider and automatically cancelled