Skip to main content
Beta - Account data is currently in beta. The payload structure may still evolve before general availability. Share your feedback at support@bookingshake.com.

Overview

GET /accounts/{id} returns a single account (company) by its ID - useful to back-fill a missed account.* webhook, reconcile your CRM, or re-fetch a company on demand.
Unlike the account webhook - which omits fields without a value - this endpoint always returns every field with an explicit null when unset (consistent with GET /invoices and GET /payments). Country fields (country, billing_country) are returned verbatim as entered. Custom fields configured for your venue are included, also with explicit null when unset. Timestamps are Unix milliseconds.

Authentication

All requests require a Bearer token (your BookingShake API key):
Authorization: Bearer YOUR_API_KEY

Path Parameters

id
string
required
The account ID - the id field carried by the account.created webhook.

Request

curl https://api.bookingshake.io/api/accounts/account-123 \
  -H "Authorization: Bearer YOUR_API_KEY"
const res = await fetch("https://api.bookingshake.io/api/accounts/account-123", {
  headers: { Authorization: `Bearer ${process.env.BOOKINGSHAKE_API_KEY}` },
});
const { data: account } = await res.json();
import os, requests

res = requests.get(
    "https://api.bookingshake.io/api/accounts/account-123",
    headers={"Authorization": f"Bearer {os.environ['BOOKINGSHAKE_API_KEY']}"},
)
account = res.json()["data"]
<?php
$ch = curl_init("https://api.bookingshake.io/api/accounts/account-123");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer " . getenv("BOOKINGSHAKE_API_KEY"),
]);
$account = json_decode(curl_exec($ch), true)["data"];
curl_close($ch);

Response

The account is returned wrapped in the standard { message, data } envelope.
{
  "message": "success",
  "data": {
    "id": "account-123",
    "name": "Acme Corp",
    "legal_name": "ACME CORPORATION SAS",
    "company_type": "SAS",
    "company_registration_id": "987654321",
    "siret": "98765432100012",
    "vat_number": "FR98765432101",
    "rcs_number": "RCS Paris 987 654 321",
    "sector": "Technology",
    "address_line_1": "123 rue Example",
    "address_line_2": "Bâtiment A",
    "postal_code": "75001",
    "city": "Paris",
    "country": "France",
    "billing_address_line_1": "123 rue Example",
    "billing_address_line_2": null,
    "billing_postal_code": "75001",
    "billing_city": "Paris",
    "billing_country": "France",
    "accounting_account": "411000",
    "created_at": 1731495000000,
    "custom_u1v2w3x4y5": "50-100",
    "custom_z6a7b8c9d0": null
  }
}

Data Fields

FieldTypeDescription
idstringUnique account ID
namestring | nullCompany display name
legal_namestring | nullRegistered legal name
company_typestring | nullLegal form (e.g., SAS, SARL)
company_registration_idstring | nullCompany registration number (SIREN in France)
siretstring | nullSIRET number (France)
vat_numberstring | nullVAT number
rcs_numberstring | nullTrade register number (RCS)
sectorstring | nullBusiness sector
address_line_1string | nullMain address
address_line_2string | nullMain address, line 2
postal_codestring | nullMain address postal code
citystring | nullMain address city
countrystring | nullMain address country, verbatim as entered
billing_address_line_1string | nullBilling address
billing_address_line_2string | nullBilling address, line 2
billing_postal_codestring | nullBilling address postal code
billing_citystring | nullBilling address city
billing_countrystring | nullBilling address country, verbatim as entered
accounting_accountstring | nullAccounting account code
created_atnumber | nullCreation timestamp, Unix milliseconds
custom_<uuid>any | nullCustom fields configured for your venue

Errors

StatusMeaning
400Missing/invalid token, or missing account id
404Account not found - it does not exist, or belongs to another venue or venues group
429Rate limit exceeded (60 requests/minute)
500Internal server error
A 404 is returned uniformly whenever the account is outside your scope, so the existence of another venue’s account is never disclosed.

Next Steps

Account Events

Receive account changes in real time via the account.* webhooks

Contact Events

Track the people attached to your accounts