Create a Company Bank Account

Creates a bank account for a company. Worklio uses this account for payroll, vendor payments, or deposits, depending on the purpose you set.

Endpoint

POST https://api.worklio.com/wep/companies/{CLIENT_ID}/bankaccounts

Requires a bearer access token (see How to Get API Access). CLIENT_ID is the company identifier returned as id when you create the company.

Required fields:

FieldTypeRequiredDescription
accountNamestringYesA label for the account, shown in Worklio's UI.
accountNumberstringYesThe bank account number.
routingNumberstringYesThe bank's routing number.
typeintegerYesThe account type. See Account Type values below.
purposeintegerYesWhat the account is used for. See Purpose values below.

Account Type values:

ValueMeaning
1Checking
2Savings

Purpose values:

ValueMeaning
1General (Payroll)
2Invoice (Vendor)
4Deposit Account

Example request

require("dotenv").config();
 
const TOKEN = process.env.API_KEY;
const CLIENT_ID = process.env.CLIENT_ID;
const url = `https://api.worklio.com/wep/companies/${CLIENT_ID}/bankaccounts`;
 
const payload = {
  accountName: "GUIDE COMPANY ACCOUNT CHECKING",
  accountNumber: "124456741",
  routingNumber: "071000505",
  type: 1,
  purpose: 1
};
 
async function createCompanyAccount() {
  const response = await fetch(url, {
    method: "POST",
    headers: {
      accept: "application/json",
      "api-version": "2.0",
      authorization: `Bearer ${TOKEN}`,
      "content-type": "application/json",
      "x-api-version": "2.0"
    },
    body: JSON.stringify(payload)
  });
 
  console.log(response.status);
  const raw = await response.text();
  console.log(JSON.stringify(JSON.parse(raw), null, 2));
}
 
createCompanyAccount();
curl -s -X POST "https://api.worklio.com/wep/companies/$CLIENT_ID/bankaccounts" \
  -H "accept: application/json" \
  -H "api-version: 2.0" \
  -H "authorization: Bearer $API_KEY" \
  -H "content-type: application/json" \
  -H "x-api-version: 2.0" \
  -d '{
    "accountName": "GUIDE COMPANY ACCOUNT CHECKING",
    "accountNumber": "124456741",
    "routingNumber": "071000505",
    "type": 1,
    "purpose": 1
  }' | jq .
import os
import json

import requests
from dotenv import load_dotenv

load_dotenv()

TOKEN = os.environ.get("API_KEY")
CLIENT_ID = os.environ.get("CLIENT_ID")
URL = f"https://api.worklio.com/wep/companies/{CLIENT_ID}/bankaccounts"

payload = {
    "accountName": "GUIDE COMPANY ACCOUNT CHECKING",
    "accountNumber": "124456741",
    "routingNumber": "071000505",
    "type": 1,
    "purpose": 1,
}


def create_company_account():
    response = requests.post(
        URL,
        headers={
            "accept": "application/json",
            "api-version": "2.0",
            "authorization": f"Bearer {TOKEN}",
            "content-type": "application/json",
            "x-api-version": "2.0",
        },
        json=payload,
    )

    print(response.status_code)

    raw = response.text
    print(json.dumps(json.loads(raw), indent=2))

    return response


if __name__ == "__main__":
    create_company_account()

Example response

{
  "accountId": 766,
  "accountName": "GUIDE COMPANY ACCOUNT CHECKING",
  "accountNumber": "124456741",
  "routingNumber": "071000505",
  "type": 1,
  "purpose": 1,
  "nextCheckNumber": 1,
  "bankProviderStatus": 0,
  "kotapayStatus": 0
}



Did this page help you?