Bank Account

Link Bank Account

If a bank account wasn’t added when creating a Veem account, this endpoint lets you link one later.

POST https://sandbox-api.veem.com/veem/v1.2/account/bank-account

📘

Headers

Three headers are required to use this endpoint.

Required Headers

<


Name Type Required Description
`Authorization` `string` Yes Bearer token (OAuth 2.0) This header holds the bearer token required to use Veem's public API, and **belongs to the owner account**. Failure to use a valid bearer token will result in a 404 (Not Found) status code in the response. An example of a valid header value is as follows: `Bearer c047594b-082c-4da1-be89-08fe3770f4b3` See [Get Access Token section](https://developer.veem.com/docs/oauth#1---get-access-token) to generate your Bearer token
`X-Request-Id` `string` Yes This is a unique string that identifies the current API request, and should follow the UUID format. Reusing this header without changing the value will result in a 409 (Conflict) status code in the response. An example X-request-id is as follows:\ `48855846-628d-4177-b071-80332a116f0a`
`Content-Type` `string` Yes The content type of the request. Must be `application/json`

Request Payload

When adding bank account information to a Veem account using this endpoint, use the following request format:

{
    "routingNumber": "026009593",
    "bankName": "Bank of America",
    "bankAccountNumber": "12345678",
    "currencyCode": "USD",
    "isoCountryCode": "US",
    "onBehalfAccountId", 45223,
}

Request Parameters

The following table contains detailed information on the payload's parameters, such as the parameter name, formatting, and size of the parameter.

ParameterExampleSize
isoCountryCodeUS2
bankNameBank of America128 (Max)
currencyCodeUSD3
bankAccountNumber12345678
routingNumber026009593
Required for banks in certain countries only, e.g. United States, Philippines
swiftBicBOFAUS3NXXX
SWIFT/BIC code. Required for banks in certain countries only, e.g. Germany
64 (Max)
ibanGB29NWBK60161331926819
Required only for Revolut UK bank.
34 (Max)
sortCodeRequired for banks in certain countries only, e.g. United Kindom
accountType"Checking" or "Savings"
Required for banks in certain countries only, e.g. Philippines, Dominican Republic
transitCode"12345"
Required for banks in certain countries only, e.g. Canada
bankInstitutionNumber"004"
Required for banks in certain countries only, e.g. Canada
branchCodeRequired for banks in certain countries only, e.g. Indonesia, Singapore
bankCodeRequired for banks in certain countries only, e.g. Indonesia, Singapore
bankIfscBranchCodeRequired for banks in certain countries only, e.g. India
beneficiaryName"Beneficiary"
Required for banks in certain countries only, e.g. China
pixPIX key value
Optional, must be a valid PIX for Brazil
Validation rules for various PIX formats are as follows:
  • if Phone number - must include +55 prefix, must be a valid phone number
  • if Email - must be a valid email address
  • if Tax ID - must be a valid BR Tax ID, either business or individual (CPF/CNJP)
  • if UUID - must be a valid GUID
bankAddressOptional object.
Required for banks in certain countries only, e.g, Vietnam, Georgia
bankAddress.isoCountryCodeISO 3166-1 alpha-2 standard (eg. US, BE, BT etc)2
bankAddress.line1String, Line 1 of street address
bankAddress.line2String, Line 2 of street address, optional
bankAddress.provinceString, mandatory if no state is provided
bankAddress.stateString, mandatory if no province is provided
bankAddress.postalCodeString
bankAddress.cityString

Country codes can be found here: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes

You can retrieve fields that are required for linking a bank account in each country from thebankFields returned by the Country-Currency-Map endpoint. Please refer to the following link: country-currency-map

👍

Partner Notes:

  • A partner account can be configured to make this API request on behalf of their customers. This requires internal configuration for the partner account by Veem. Once the internal configuration is enabled, the API request can be made using partner account bearer token.
  • onBehalfAccountId is an optional parameter, this needs to be included on the request body in case of partner making an API request on behalf of their customer. This is the customer Veem account ID.

Response Payload

Once a valid request has been sent, a response payload of this format should be expected:

{
    "id": 2761,
    "accountId": 940651,
    "isoCountryCode": "US",
    "isoCurrencyCode": "USD",
    "bankName": "Bank of America",
    "beneficiaryName": "NGLs",
    "accountType": "Checking",
    "canRemove": true,
    "shortIdentifierDomestic": "5678",
    "verificationStatus": "Unverified",
    "status": "Active",
    "externalAccountStatus": "NotConfigured"
}

Response Errors

When creating an invalid request, one can expect a bad request response to look like the following response:

{
    "timestamp": 1705606629966,
    "status": 400,
    "error": "Bad Request",
    "message": "Missing bank account fields: [routingNumber, bankAccountNumber]",
    "path": "/veem/v1.2/account/bank-account"
}

Edit Linked Bank Account Details

To update the bank account details of an existing Veem account, use the following endpoint.

PATCH https://sandbox-api.veem.com/veem/v1.2/account/bank-account/{bankId}

The headers required for the use of this endpoint are the same ones as the Add Bank Account endpoint, and can be reused for this endpoint

Request Payload

The request payload for editing the bank account of a Veem account is the exact same as the Add Bank Account payload. All the fields are mandatory, and existing information that you do not want to modify will need to be duplicated in the request payload

Response Payload

The response payload for editing the bank account of a Veem account is the exact same as the Add Bank Account payload.