# Accounts API – Tiempo

> An account is one business on your platform: a salon, a padel club.

Source: https://tiempo.one/docs/accounts

An account is one business on your platform: a salon, a padel club. Create one as each business signs up to your product and keep its id next to your own record. Platform-level: no Tiempo-Account header.

## Create an account

`POST /v1/accounts`

Adds a business to your platform. Its timezone is the clock its rotas and recurring bookings follow unless a resource or location says otherwise. Its slot grid (slot_interval_minutes, slot_alignment) is what availability searches use when they don’t give their own.

### Body parameters

-   `name` (string, required)
    
    Shown in your dashboard; not to customers.
    
-   `timezone` (string, required)
    
    IANA name, for example Europe/London.
    
-   `slot_interval_minutes` (integer)
    
    The business’s spacing of start times, 1 to 1440. Defaults to 15. A search can give its own interval_minutes.
    
-   `slot_alignment` (string)
    
    midnight: starts every interval from local midnight. opening: from the start of each stretch of working hours, so a 09:20 opening offers 09:20. A business defaults to midnight; a search, to its business’s.
    
-   `metadata` (map)
    
    Up to 50 keys of your own (strings, keys up to 40 characters, values up to 500). Returned on every read and webhook. On update, an empty string removes a key.
    

POST /v1/accounts

```bash
curl -X POST "https://api.tiempo.one/v1/accounts" \
  -H "Authorization: Bearer tpt_4qZ8m1VwXc0L…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Soho Hair",
    "timezone": "Europe/London",
    "metadata": {
      "your_business_id": "biz_123"
    }
  }'
```

200Response

```json
{
  "id": "acct_01m42yt93ayvyrwr3yczhv6yhw",
  "object": "account",
  "livemode": false,
  "name": "Soho Hair",
  "timezone": "Europe/London",
  "metadata": {
    "your_business_id": "biz_123"
  },
  "created_at": "2026-10-04T07:58:10Z"
}
```

## List accounts

`GET /v1/accounts`

Every business on your platform in this mode, newest first.

### Query parameters

-   `limit` (integer)
    
    1 to 100. Defaults to 20.
    
-   `starting_after` (string)
    
    An object id from the previous page; returns the page after it.
    
-   `ending_before` (string)
    
    An object id; returns the page before it.
    
-   `metadata[key]` (string)
    
    Only objects whose metadata has this key and value. Repeat for several.
    

GET /v1/accounts

```bash
curl "https://api.tiempo.one/v1/accounts" \
  -H "Authorization: Bearer tpt_4qZ8m1VwXc0L…"
```

200Response

```json
{
  "object": "list",
  "data": [
    {
      "id": "acct_01m42yt93ayvyrwr3yczhv6yhw",
      "object": "account",
      "livemode": false,
      "name": "Soho Hair",
      "timezone": "Europe/London",
      "metadata": {
        "your_business_id": "biz_123"
      },
      "created_at": "2026-10-04T07:58:10Z"
    }
  ],
  "has_more": false
}
```

## Retrieve an account

`GET /v1/accounts/{id}`

Returns 404 if the account isn’t on your platform.

### Path parameters

-   `id` (string, required)
    
    The object’s id.
    

GET /v1/accounts/{id}

```bash
curl "https://api.tiempo.one/v1/accounts/acct_01m42yt93ayvyrwr3yczhv6yhw" \
  -H "Authorization: Bearer tpt_4qZ8m1VwXc0L…"
```

200Response

```json
{
  "id": "acct_01m42yt93ayvyrwr3yczhv6yhw",
  "object": "account",
  "livemode": false,
  "name": "Soho Hair",
  "timezone": "Europe/London",
  "metadata": {
    "your_business_id": "biz_123"
  },
  "created_at": "2026-10-04T07:58:10Z"
}
```

## Update an account

`POST /v1/accounts/{id}`

### Path parameters

-   `id` (string, required)
    
    The object’s id.
    

### Body parameters

-   `name` (string)
    
    Shown in your dashboard; not to customers.
    
-   `timezone` (string)
    
    IANA name, for example Europe/London.
    
-   `slot_interval_minutes` (integer)
    
    The business’s spacing of start times, 1 to 1440. Defaults to 15. A search can give its own interval_minutes.
    
-   `slot_alignment` (string)
    
    midnight: starts every interval from local midnight. opening: from the start of each stretch of working hours, so a 09:20 opening offers 09:20. A business defaults to midnight; a search, to its business’s.
    
-   `metadata` (map)
    
    Up to 50 keys of your own (strings, keys up to 40 characters, values up to 500). Returned on every read and webhook. On update, an empty string removes a key.
    

POST /v1/accounts/{id}

```bash
curl -X POST "https://api.tiempo.one/v1/accounts/acct_01m42yt93ayvyrwr3yczhv6yhw" \
  -H "Authorization: Bearer tpt_4qZ8m1VwXc0L…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Soho Hair & Beauty",
    "slot_interval_minutes": 30,
    "slot_alignment": "opening"
  }'
```

200Response

```json
{
  "id": "acct_01m42yt93ayvyrwr3yczhv6yhw",
  "object": "account",
  "livemode": false,
  "name": "Soho Hair",
  "timezone": "Europe/London",
  "metadata": {
    "your_business_id": "biz_123"
  },
  "created_at": "2026-10-04T07:58:10Z"
}
```

## Delete an account

`DELETE /v1/accounts/{id}`

For a business leaving your platform. It disappears from the API and its id stops working in Tiempo-Account; its past bookings, events and usage are kept for your records and invoices. Refused (409 account_has_bookings or account_has_series) while it has holds, upcoming confirmed bookings or active series: cancel those first.

### Path parameters

-   `id` (string, required)
    
    The object’s id.
    

### Returns

A deletion confirmation. Sends account.deleted.

DELETE /v1/accounts/{id}

```bash
curl -X DELETE "https://api.tiempo.one/v1/accounts/acct_01m42yt93ayvyrwr3yczhv6yhw" \
  -H "Authorization: Bearer tpt_4qZ8m1VwXc0L…"
```

200Response

```json
{
  "id": "…",
  "object": "…",
  "deleted": true
}
```

The machine-readable description is at [/openapi.json](https://tiempo.one/openapi.json). Try calls in [Swagger UI](https://tiempo.one/swagger-ui.html).[Tiempo home](https://tiempo.one/)[Dashboard](https://tiempo.one/app)
