---
title: "eft/withdraw"
method: POST
path: "/eft/withdraw"
tags: ["EFT Endpoint"]
---

# eft/withdraw

`POST /eft/withdraw`

## Request

- Base URL: `https://earthnode-dev.vopay.com/api/v2`
- URL: `https://earthnode-dev.vopay.com/api/v2/eft/withdraw`
- Auth: none declared

This endpoint is used to take funds out of your VoPay account, and deposit them to the specified recipient's bank account. In the below endpoint, either CompanyName OR FirstName and LastName must be provided. 

 If either Token, Flinks (FlinksAccountID, FlinksLoginID), Inverite (InveriteRequestGUID), or Plaid (PlaidPublicToken/PlaidAccessToken, PlaidAccountID) is provided, then the FinancialInstitutionNumber, BranchTransitNumber, and AccountNumber will not be required. 

 If the bank information is provided (FinancialInstitutionNumber, BranchTransitNumber, and AccountNumber), then the Address1, City, Province, Country, and PostalCode are required.

 If a ClientAccountID is provided, the client account's first/last name, address, and default bank account will be used for the transaction.

## Request body `application/x-www-form-urlencoded`

- object
  - `AccountID` string, required: Your account ID
  - `Key` string, required: API key for the account
  - `Signature` string, required: Hashed signature for the request
  - `ClientAccountID` string: Client Account ID
  - `ContactID` string: The ID of the contact to use for this transactions. The contacts payment method associated with this transaction type will be used.
  - `FirstName` string, required: Recipient's first name
  - `LastName` string, required: Recipient's last name
  - `CompanyName` string, required: Company's name
  - `Address1` string, required: Recipient's address line 1
  - `City` string, required: Recipient's city
  - `Province` string, required: Recipient's province specified using two character abbreviation (eg. BC, AB)
  - `Country` string, required: Recipient's country specified using full country name or ISO 3166-1 alpha-2 code.
  - `PostalCode` string, required: Recipient's postal code.
  - `AccountNumber` string, required: Recipient's bank account number. This is the account that funds will be deposited into.
  - `FinancialInstitutionNumber` string, required: Canadian banks. Three digit institution number.
  - `BranchTransitNumber` string, required: Canadian banks. Transit number for the Recipient's account.
  - `Amount` number, required: The amount in the specified currency to deposit into the recipient's bank account.
  - `Currency` string, required: 3 character currency code for the currency to fetch transactions for. If this is not specified the transaction will use the account's local currency. NOTE: Currently the eft/withdraw API endpoint only supports CAD and USD transactions
  - `ClientReferenceNumber` string: An optional reference number to associate with the transaction.
  - `FlinksAccountID` string: Used by clients with a Flinks account
  - `FlinksLoginID` string: Used by clients with a Flinks account
  - `Token` string: Your iQ11 Token that has been generated using Custom Iframe. See iQ11 API Endpoints.
  - `PlaidPublicToken` string: Used by clients with a Plaid account
  - `PlaidAccessToken` string: Used by clients with a Plaid account
  - `PlaidAccountID` string: Used by clients with a Plaid account
  - `PlaidProcessorToken` string: Used by clients with a Plaid account. If you use this field PlaidPublicToken, PlaidAccessToken, and PlaidAccountID are not neccesary
  - `MxAuthorizationCode` string: Used by clients with an MX account.
  - `InveriteRequestGUID` string: Used by clients with an Inverite account
  - `ParentTransactionID` string: The parent transaction where the withdrawal will be linked to, can become a split payment with multiple withdrawals. When funds of the parent transaction have been released the system will generate the distributions of these funds automatically.
  - `TransactionTypeCode` string: CPA transaction code. Use the /api/v2/account/transactions/codes endpoint to retrieve a list of valid transaction codes. If not specified, the transaction will be created using code 450 (miscellaneous).
  - `TransactionLabel` string: TransactionLabel overrides originator short name
  - `Notes` string: An optional note to associate with the transaction.
  - `IdempotencyKey` string: A unique key which the server can use to recognize and reject subsequent retries of the same request.
  - `GLCode` string: An optional unique identification general ledger code.

## Response `200`

- object
  - `Success` boolean, required: True if the request was successful, false if it failed
  - `ErrorMessage` string, required: Contains a description of the error if the request failed
  - `TransactionID` integer, required: The unique ID of the transaction that was just performed. This ID should be saved as it is required in order to look up status information on the transaction.
  - `Flagged` string: Details on why the transaction was flagged, if applicable. Flagged transactions will need to be confirmed by using the /account/transaction/confirm endpoint.

---

[API](https://skmtc.dev/vopay/apis/payment-rails.md) - [All operations](https://skmtc.dev/vopay/apis/payment-rails/llms.txt) - [OpenAPI document](https://skmtc.dev/vopay/apis/payment-rails/revisions/d6fe8969ddcf?raw)
