Skip to content

Accept an invitation

POST
/invitations/accept
curl --request POST \
--url https://example.com/invitations/accept \
--header 'Content-Type: application/json' \
--data '{ "token": "example" }'

Requires a signed-in account whose email matches the invitation. Returns the new membership, which is what the caller then uses as X-Tenant-Id.

Media typeapplication/json
object
token
required
string
>= 1 characters

Example generated

{
"token": "example"
}

Joined

Media typeapplication/json
object
tenant
required
object
id
required

UUID v7

string format: uuid
name
required
string
slug
required
string
role
required

Owner: billing, deleting the tenant, full control of members. admin: all operational work and may manage drivers and admins. driver: their own round only.

string
Allowed values: owner admin driver technical
stockTakeAllowed
boolean
joinedAt
required
string format: date-time
plan
required
string | null
Allowed values: shop yard round depot
planStatus
required
string | null
Allowed values: trialing active past_due unpaid canceled incomplete incomplete_expired paused none
trialEndsAt
string | null format: date-time
flags
required

Whether each piece of new work is live for this business yet. Set by Bottle, not the business, and removed once the work has launched.

object
assets
required
boolean
servicing
required
boolean
settings
required
object
assetsEnabled
required

Whether products can be tracked one cylinder at a time. On unless the business switches it off. Nothing changes on screen until a product is tracked.

boolean
assetScanningEnabled
required

Whether drivers and yard staff can record cylinders with the phone’s camera. Set by Bottle once the business’s cylinders have been tested.

boolean
servicingEnabled
required

Whether the business keeps service dates for the equipment its customers have. Off unless switched on.

boolean
tracksCylinders
boolean

Example

{
"tenant": {
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"name": "Acme Gas",
"slug": "acme-gas"
},
"role": "owner",
"plan": "shop",
"planStatus": "trialing"
}

Not signed in

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Signed in as a different email

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Unknown, already used, revoked or expired

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}