Ga naar inhoud

Klanten en contactpersonen

De spil waar elke andere module aan hangt: het klantrecord, de mensen bij die klant, het spoor van wat er veranderd is, en de adresopzoeker die de formulieren gebruiken.

33 endpoints, verdeeld over 4 groepen. Een recht geschreven als module.resource.action:own heeft een bereik: :own dekt rijen die van jou zijn, :any die van iedereen, en :any voldoet aan een controle op :own.

EndpointRecht
GET /companiescompanies.company.read
POST /companiescompanies.company.write
GET /companies/{company_id}companies.company.read
PATCH /companies/{company_id}companies.company.write
DELETE /companies/{company_id}companies.company.delete
GET /companies/{company_id}/logocompanies.company.read
POST /companies/{company_id}/logocompanies.company.write
DELETE /companies/{company_id}/logocompanies.company.write
GET /companies/{company_id}/panelscompanies.company.read
GET /companies/{company_id}/summarycompanies.company.read
GET /companies/groupscompanies.group.manage
POST /companies/groupscompanies.group.manage
PATCH /companies/groups/{group_id}companies.group.manage
DELETE /companies/groups/{group_id}companies.group.manage
PUT /companies/groups/{group_id}/companiescompanies.group.manage
PUT /companies/groups/{group_id}/membershipscompanies.group.manage
GET /companies/settingscompanies.settings.manage
PUT /companies/settingscompanies.settings.manage
POST /companies/settings/backfill-client-numberscompanies.settings.manage
Parameters en schema’s per endpoint

List Companies

Recht: companies.company.read

Queryparameters:

NaamTypeBetekenis
limitinteger(default 50)
offsetinteger(default 0)
qstring
statusstringLifecycle status; comma-separate for several (‘lead,onboarding,active’). Absent means every status, the archived ones included — the screen picks its own default, this endpoint does not.
minebooleanOnly clients I’m assigned to (primary or not) (default false)
sortstringname | client_number | status | created_at | updated_at, ’-’ desc. Default: name
hoursbooleanInclude the budget roll-up; costs three grouped queries (default false)
countbooleanCompute total; set false for name-only lookups (default true)

Antwoord: 200 · Page_CompanyRead_

Create Company

Recht: companies.company.write

Request body: CompanyCreate

Antwoord: 201 · CompanyRead

Get Company

Recht: companies.company.read

Padparameters: company_id

Antwoord: 200 · CompanyRead

Update Company

Recht: companies.company.write

Padparameters: company_id

Request body: CompanyUpdate

Antwoord: 200 · CompanyRead

Delete Company

Recht: companies.company.delete

Padparameters: company_id

Antwoord: 204

Serve Company Logo — The logo bytes — behind the same tenant + horizon check as the company itself, so a portal login only ever sees logos of companies in their horizon (#191/#193).

Recht: companies.company.read

Padparameters: company_id

Antwoord: 200

Upload Company Logo — Upload or replace the client’s logo. Images only, bounded by the instance caps.

Recht: companies.company.write

Padparameters: company_id

Request body: Body_upload_company_logo_api_v1_companies__company_id__logo_post

Antwoord: 200 · CompanyRead

Section titled “DELETE /api/v1/companies/{company_id}/logo”

Remove Company Logo

Recht: companies.company.write

Padparameters: company_id

Antwoord: 200 · CompanyRead

Company Panels — Compose the detail-view panels contributed by every enabled module (the hub).

Recht: companies.company.read

Padparameters: company_id

Antwoord: 200 · PanelData[]

GET /api/v1/companies/{company_id}/summary

Section titled “GET /api/v1/companies/{company_id}/summary”

Company Summary — The client’s vital signs (#364) — openstaand, uren, open taken, laatste contact, verlenging.

Recht: companies.company.read

Padparameters: company_id

Antwoord: 200 · SummaryData[]

List Groups

Recht: companies.group.manage

Antwoord: 200 · GroupRead[]

Create Group

Recht: companies.group.manage

Request body: GroupCreate

Antwoord: 201 · GroupRead

Update Group

Recht: companies.group.manage

Padparameters: group_id

Request body: GroupUpdate

Antwoord: 200 · GroupRead

DELETE /api/v1/companies/groups/{group_id}

Section titled “DELETE /api/v1/companies/groups/{group_id}”

Delete Group

Recht: companies.group.manage

Padparameters: group_id

Antwoord: 204

PUT /api/v1/companies/groups/{group_id}/companies

Section titled “PUT /api/v1/companies/groups/{group_id}/companies”

Set Group Companies

Recht: companies.group.manage

Padparameters: group_id

Request body: GroupCompanies

Antwoord: 204

PUT /api/v1/companies/groups/{group_id}/memberships

Section titled “PUT /api/v1/companies/groups/{group_id}/memberships”

Set Group Memberships

Recht: companies.group.manage

Padparameters: group_id

Request body: GroupMemberships

Antwoord: 204

Get Company Settings — How this organisation numbers its clients (klantnummer format + sequence).

Recht: companies.settings.manage

Antwoord: 200 · CompanyNumberingRead

Update Company Settings

Recht: companies.settings.manage

Request body: CompanyNumberingWrite

Antwoord: 200 · CompanyNumberingRead

POST /api/v1/companies/settings/backfill-client-numbers

Section titled “POST /api/v1/companies/settings/backfill-client-numbers”

Backfill Client Numbers — Number every client that has no number yet, oldest first.

Recht: companies.settings.manage

Antwoord: 200 · ClientNumberBackfillResult

EndpointRecht
GET /contactscontacts.contact.read
POST /contactscontacts.contact.write
GET /contacts/{contact_id}contacts.contact.read
PATCH /contacts/{contact_id}contacts.contact.write
DELETE /contacts/{contact_id}contacts.contact.delete
POST /contacts/{contact_id}/linkscontacts.link.write
PATCH /contacts/{contact_id}/links/{company_id}contacts.link.write
DELETE /contacts/{contact_id}/links/{company_id}contacts.link.write
GET /contacts/typescontacts.type.read
POST /contacts/typescontacts.type.manage
PATCH /contacts/types/{type_id}contacts.type.manage
DELETE /contacts/types/{type_id}contacts.type.manage
Parameters en schema’s per endpoint

List Contacts

Recht: contacts.contact.read

Queryparameters:

NaamTypeBetekenis
limitinteger(default 50)
offsetinteger(default 0)
company_idstring
contact_type_idstring
qstring
sortstringfirst_name | last_name | email | job_title | company | …, ’-’ desc
countbooleanCompute the total. False for pickers and name-only lookups. (default true)

Antwoord: 200 · Page_ContactRead_

Create Contact

Recht: contacts.contact.write

Request body: ContactCreate

Antwoord: 201 · ContactRead

Get Contact

Recht: contacts.contact.read

Padparameters: contact_id

Antwoord: 200 · ContactRead

Update Contact

Recht: contacts.contact.write

Padparameters: contact_id

Request body: ContactUpdate

Antwoord: 200 · ContactRead

Delete Contact

Recht: contacts.contact.delete

Padparameters: contact_id

Antwoord: 204

Link Contact To Company

Recht: contacts.link.write

Padparameters: contact_id

Request body: ContactLinkCreate

Antwoord: 201 · ContactRead

PATCH /api/v1/contacts/{contact_id}/links/{company_id}

Section titled “PATCH /api/v1/contacts/{contact_id}/links/{company_id}”

Update Contact Company Link

Recht: contacts.link.write

Padparameters: contact_id, company_id

Request body: ContactLinkUpdate

Antwoord: 200 · ContactRead

DELETE /api/v1/contacts/{contact_id}/links/{company_id}

Section titled “DELETE /api/v1/contacts/{contact_id}/links/{company_id}”

Unlink Contact From Company

Recht: contacts.link.write

Padparameters: contact_id, company_id

Antwoord: 204

List Contact Types

Recht: contacts.type.read

Queryparameters:

NaamTypeBetekenis
include_inactiveboolean(default false)

Antwoord: 200 · ContactTypeRead[]

Create Contact Type

Recht: contacts.type.manage

Request body: ContactTypeCreate

Antwoord: 201 · ContactTypeRead

Update Contact Type

Recht: contacts.type.manage

Padparameters: type_id

Request body: ContactTypeUpdate

Antwoord: 200 · ContactTypeRead

Delete Contact Type

Recht: contacts.type.manage

Padparameters: type_id

Antwoord: 204

EndpointRecht
GET /activityactivity.read
Parameters en schema’s per endpoint

Entity Activity

Recht: activity.read

Queryparameters:

NaamTypeBetekenis
entity_typestring · verplicht
entity_idstring · verplicht
limitinteger(default 20)

Antwoord: 200 · app__core__activity__schemas__ActivityItem[]

EndpointRecht
GET /addresslookupaddresslookup.lookup
Parameters en schema’s per endpoint

Lookup Address

Recht: addresslookup.lookup

Queryparameters:

NaamTypeBetekenis
postal_codestring · verplicht
house_numberstring · verplicht

Antwoord: 200 · AddressLookupResponse