Skip to main content
The Every API lets you manage your company’s vendors, attach their bank accounts and pay them by ACH from your own systems. Every response is scoped to the company that owns the API key you call with.
A payment you create through the API waits for your company’s signatory to approve it, exactly as a payment created in the Every dashboard does. It isn’t sent to the bank until it’s approved.

Before you start

You need an API key. Keys are issued per company: contact Every support to get one for yours.

Base URL

All endpoints are relative to this base URL:

Authentication

Send your API key in the x-api-key header of every request. A request whose key is missing, unknown, revoked or not enabled for the API gets a 403 response:

Make your first request

Call GET /v1/me to check your key. It returns the company the key belongs to:
description is null when your company hasn’t set one.

Request IDs

Responses carry an x-request-id header, generated by Every for that request. Quote it when you contact support: it’s the ID the request is recorded under. If you send your own x-request-id, it isn’t echoed back. A 403 for a missing or invalid key doesn’t carry an x-request-id.

Errors

A failed request answers with a JSON body that has a message and can include an errors array with more detail. Each endpoint page lists the status codes it can respond with and what they mean.

Pagination

GET /v1/vendors, GET /v1/every-categories and GET /v1/every-departments return their results a page at a time. Control the page with two query parameters: Each response includes metadata.pagination, with the total number of records (ignoring limit and offset) and the limit and offset the page was read with.

Idempotency

POST /v1/payments and POST /v1/vendors/{vendorId}/bank-accounts require an idempotency_key, a key you choose so that a retry can’t create the same payment or bank account twice. Use a new key for each payment or account you create, and reuse it only to retry that request. If you repeat a request with a key that’s already been used, the API answers 409 with what the first request created instead of creating it again. A repeated payment request returns the payment with its current status. If the first request is still running, or stopped without recording what it did, the 409 is an error that says so. Bank account keys are scoped to the vendor in the path: the same key under another vendor is a new request.