Skip to content

Create a client account

POST
/partner/clients
curl --request POST \
--url https://api.europlaybook.com/v1/partner/clients \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "company": { "name": "example", "legal_form": "", "country": "example", "registry_type": "kvk", "registry_id": "", "vat_number": "", "address": { "line1": "", "line2": "", "postal_code": "", "city": "", "country": "" }, "is_default": false }, "owner_email": "example", "language": "nl", "account_name": "example" }'

A new client: account (plan pilot) + its first company + an owner invite by e-mail. Your team gets the member role in it at once (enter data, build, draft packs); approving a pack stays with the owner. Send Idempotency-Key to retry safely.

Media typeapplication/json
ClientIn
object
company
required
LegalEntityIn

The client’s first company (legal entity)

object
name
required
Name
string
>= 1 characters <= 200 characters
legal_form
Legal Form
string
"" <= 50 characters
country
required
Country
string
registry_type
Registry Type
string
default: other
Allowed values: kvk kbo hrb siren companies_house other
registry_id
Registry Id
string
"" <= 50 characters
vat_number
Vat Number
string
"" <= 20 characters
address
Any of:
AddressIn

Business address of a legal entity (never a consumer address).

object
line1
Line1
string
""
line2
Line2
string
""
postal_code
Postal Code
string
""
city
City
string
""
country
Country
string
""
is_default
Is Default
boolean
owner_email
required
Owner Email

The brand owner: gets an invite to accept the account

string
<= 254 characters
language
Any of:
string
Allowed values: nl en
account_name
Any of:
string
<= 200 characters

Created

Media typeapplication/json
ClientOut
object
id
required
Id

The client’s account id (send it as EuroPlaybook-Account)

string format: uuid
account_id
required
Account Id
string format: uuid
name
required
Name
string
status
required
Status

Invited = the owner has not accepted yet; active = joined

string
Allowed values: invited active
owner_email
required
Owner Email
string
owner_joined
required
Owner Joined
boolean
accepted_at
required
Any of:
string format: date-time
created_at
required
Created At
string format: date-time
company
Any of:
ClientCompanyOut
object
name
required
Name
string
country
required
Country
string
owner_invite
Any of:
OwnerInviteOut
object
email
required
Email
string
sent_at
required
Sent At
string format: date-time
expires_at
required
Expires At
string format: date-time
expired
required
Expired
boolean
last_activity_at
Any of:
string format: date-time

Example

{
"status": "invited"
}

Bad Request

Media typeapplication/json
PublicErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
}
}

Unauthorized

Media typeapplication/json
PublicErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
}
}

Forbidden

Media typeapplication/json
PublicErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
}
}

Not Found

Media typeapplication/json
PublicErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
}
}

Conflict

Media typeapplication/json
PublicErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
}
}

Unprocessable Content

Media typeapplication/json
PublicValidationErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any
errors
Errors

Per-field problems (pydantic format: loc, msg, type).

Array<object>
default:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
},
"errors": []
}

Too Many Requests

Media typeapplication/json
PublicErrorOut
object
detail
required
Detail

What went wrong, in English, for people and logs.

string
code
required
Code

Stable machine-readable error code; translate and branch on this.

string
params
Any of:
object
key
additional properties
any

Example

{
"detail": "This API key lacks the scope catalogue:write",
"code": "insufficient_scope",
"params": {
"required_scope": "catalogue:write"
}
}