Cora HQDocs
Dashboard

Invoicing

Friendly people answer your questions quickly, by phone, chat or email. We listen first, then build a plan around what you actually need.

10 min read Updated Aug 9, 2026 v2.8.7

Overview

Start in minutes and get help from a real person whenever you need it. Set approval rules for large payments and see who spent what, and why. Clear prices, honest advice and no surprises along the way.

Installation

Install the SDK with the package manager your project already uses. It needs Node 18 or newer.

terminal
$ npm install @cora-hq/sdk
terminal
$ yarn add @cora-hq/sdk
terminal
$ pnpm add @cora-hq/sdk
Using a server without Node? The same endpoints are available over plain HTTPS; see the API reference below.

Configuration

Every payment appears instantly, with receipts matched automatically. Accounting sync keeps your books up to date without manual exports. Create a file named cora-hq.config.json in the project root:

cora-hq.config.json
{
  "project": "cora-hq",
  "region": "eu-west",
  "categories": ["payments", "cards", "savings"],
  "retries": 4,
  "timeoutMs": 9000,
  "webhooks": { "enabled": true }
}
OptionTypeDefaultDescription
projectstring-Your project key from the dashboard.
regionstring"us-east"Data centre closest to your members.
retriesnumber3How often a failed call is retried.
timeoutMsnumber10000Time before a request is cancelled.
webhooks.enabledbooleanfalseSend events to your endpoint.

Your first request

We listen first, then build a plan around what you actually need.

  1. Create an API keyOpen the dashboard, choose Settings › API keys and copy a new secret key.
  2. Store it safelyKeep the key in an environment variable, never in your source code.
  3. Make the callRun the snippet below; it prints the first page of results.
index.js
import { Client } from "@cora-hq/sdk";

const client = new Client({ apiKey: process.env.API_KEY });

// list the newest accounts in one category
const page = await client.accounts.list({ category: "payments", limit: 20 });

for (const item of page.data) {
  console.log(item.name, item.price);
}
Heads up: test keys only return sample data. Switch to a live key before you go to production.

API reference

Every endpoint returns JSON and uses standard HTTP status codes.

GET/v1/accountsList accounts with paging and filters.
POST/v1/accountsCreate a new account.
PATCH/v1/accounts/{id}Update some fields of a account.
DELETE/v1/accounts/{id}Archive a account; it can be restored for 30 days.
response.json
{
  "data": [
    { "id": "account_7573", "name": "Payroll module", "price": 323 }
  ],
  "has_more": true
}

Troubleshooting

Thousands of members already trust us, and we work hard to keep it that way. Payroll runs on time, with tax and pension payments handled for you.

Start in minutes and get help from a real person whenever you need it. Our team has done this many times, so you never have to guess.

Your money is protected by bank-grade security and regulated partners. Set approval rules for large payments and see who spent what, and why.

Next steps

Clear prices, honest advice and no surprises along the way.

Was this page helpful?
All screens