Accept an invitation
POST
/storefront/sites/{host}/account/join
const url = 'https://example.com/storefront/sites/northgate.shop.getbottle.app/account/join';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"token":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/storefront/sites/northgate.shop.getbottle.app/account/join \ --header 'Content-Type: application/json' \ --data '{ "token": "example" }'Deliberately without a staff session: a shopper on the business’s own shop. With the token from the invitation email. Signed in, the account must have the invited email (403 wrong_email). Signed out, an account with that email must exist (409 sign_up_first) and the link both confirms its email and signs it in. Joins with the role given.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”host
required
string
Example
northgate.shop.getbottle.appRequest Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
token
required
string
Examplegenerated
{ "token": "example"}Responses
Section titled “Responses”Joined
Media typeapplication/json
object
name
required
string
email
required
string
emailVerified
required
boolean
twoFactor
required
boolean
hasPin
required
boolean
marketingConsent
boolean
customers
required
Array<object>
object
id
required
UUID v7
string format: uuid
name
required
string
kind
required
string
paymentTerms
required
string | null
canPayOnAccount
required
boolean
trade
required
boolean
role
required
string
canOrder
required
boolean
addresses
required
Array<object>
object
id
required
UUID v7
string format: uuid
customerId
required
UUID v7
string format: uuid
label
required
string
line1
required
string
line2
required
string | null
city
required
string | null
postcode
required
string | null
tradeApplication
required
object
status
required
string
reason
required
string | null
submittedAt
required
string | null format: date-time
joined
required
object
customerId
required
UUID v7
string format: uuid
customerName
required
string
role
required
string
Example
{ "customers": [ { "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "kind": "domestic", "role": "manager" } ], "addresses": [ { "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f" } ], "tradeApplication": { "status": "none" }, "joined": { "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "role": "manager" }}Refused: the message says why
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not signed in
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not from the shop itself, or the email is not confirmed yet
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not a shop. No body.
Sign up first, or the shop is not selling now (shop_closed)
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Validation failed
Media typeapplication/json
object
error
required
string
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string
Example
{ "error": "validation", "issues": [ { "path": "email", "message": "Invalid email" } ]}Too many tries
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}