Exchange valt buiten deze API/CLI-release. Eventuele historische Exchange-voorbeelden in deze gids zijn niet beschikbaar; dit zegt niets over bestaande portaalfuncties. Zie het [actuele releasebereik](/developers/guides/release-scope?lang=nl).

# Gedeelde mailboxen: portaal, API en CLI

Beheer bijvoorbeeld `info@voorbeeld.nl` of `verkoop@voorbeeld.nl` als een eigen mailbox waar bestaande collega's toegang toe krijgen. De gedeelde mailbox heeft een **betaald normaal mailpakket met eigen quotum**. Zij heeft geen persoonlijke login, wachtwoord, instellingen-PDF, Drive of Conserio.

Eén keuze **Toegang** geeft volledige mailboxrechten én verzenden als het gedeelde adres. Leden zien de mailbox in webmail en mailprogramma. Binnenkomende mail blijft in die mailbox staan en wordt niet als kopie bij ieder lid bezorgd. Afzonderlijke Send As-rechten, alleen-lezenleden, Verzenden namens, mapdeling en verzendlijsten horen niet bij deze functie.

Voor toegang tot een **persoonlijke** mailbox, afzonderlijk Send As, agenda’s, verzendlijsten en ruimtes geldt de [eigen gratis samenwerkingsfunctie](/developers/guides/workspace-mail-collaboration?lang=nl). De groepslidmaatschappen van gedeelde mailboxen blijven daarvan gescheiden.

## Bediening in het portaal

1. Open de juiste **Workspace** en ga naar **Gedeelde mailboxen**. Het overzicht toont adres, leden, gemeten gebruik/quotum en status. Je hebt actuele beheerrechten op dit bedrijf nodig; alleen leestoegang geeft geen wijzigingsknoppen.
2. Kies **Gedeelde mailbox toevoegen**. Selecteer een actief maildomein, vul de naam vóór het `@`-teken en eventueel een weergavenaam in, en kies een normaal mailpakket. Het formulier toont het quotum en de maandprijs exclusief btw.
3. Vul eventuele **Extra e-mailadressen** in, één volledig adres per regel, en kies bestaande collega's bij **Leden**. Domeinen en collega's moeten tot hetzelfde bedrijf en dezelfde mailserver behoren. Een adres dat al als mailbox of alias bestaat, kan niet opnieuw worden gebruikt.
4. Beoordeel het pakket en de kosten, vink de kostenbevestiging aan en kies **Gedeelde mailbox bestellen**. De bestaande sterke verificatie kan eerst om je passkey of een toegestane tweede factor vragen. Een oud tabblad of inmiddels gewijzigd product vraagt een nieuwe beoordeling.
5. Bij vooruitbetaling gebruik je de getoonde betaalactie. **Wordt ingesteld** betekent dat de aanvraag op de achtergrond loopt; het is nog geen bevestigde mailbox. De status ververst automatisch. Wacht totdat de mailbox actief is voordat je verder wijzigt. Bij **Synchronisatie vereist controle** inspecteert support de oorspronkelijke aanvraag: bestel dezelfde mailbox niet opnieuw.

Klik op het gedeelde adres om naam en extra adressen te wijzigen. De ingevoerde aliaslijst vervangt de volledige eigen lijst. Onder **Leden** geef je een collega toegang of haal je die weg. Vanaf een gewone mailbox staat dezelfde koppeling onder **Toegang tot gedeelde mailboxen**. Een wijziging betreft alleen de gekozen gedeelde mailbox; de andere lidmaatschappen van die collega blijven behouden. Een geblokkeerde gewone mailbox blijft lid maar kan niet inloggen.

Onder **Mailpakket en gebruik** zie je het gekozen pakket en het laatst gemeten gebruik. Een pakketwisseling wordt in deze eerste versie niet via het gedeelde-mailboxformulier of `PATCH` aangeboden.

**Gedeelde mailbox opheffen** verwijdert de opgeslagen mail definitief. Lees de waarschuwing, typ het volledige adres en bevestig de verwijdering met recente sterke verificatie. De worker verwijdert eerst de lidmaatschappen, controleert die verwijdering en vernietigt daarna de mailbox. De aanvraag blijft zichtbaar zolang de leverancier de uitkomst nog niet heeft bevestigd. Gewone mailboxen en hun andere gedeelde toegang blijven bestaan.

## Betalen en opslag

Het normale mailpakket bepaalt prijs en eigen quotum. Er komt één `shared_mailbox`-regel op dezelfde bedrijfsmaandfactuur, geen tweede werkplekregel, extra opslagpool of nieuw afzonderlijk legacy WeFact-abonnement. Opslag telt eenmaal mee bij het mailgebruik van het bedrijf. Volgens de bestaande betaalinstelling volgt maandfacturatie of online betaling van de eerste periode naar rato; bij vooruitbetaling start levering pas na bevestigde betaling van de juiste factuur. Een API-aanvraag heeft dezelfde kostencontrole als de portaalbestelling.

Opheffen maakt geen nieuwe bestelling, factuur of restitutie. Historische regels en betaalde perioden blijven behouden. Verplaatsen van een workspace naar een ander bedrijf en permanent opruimen blijven geblokkeerd zolang gedeelde mailboxen, gerelateerde lidmaatschappen of aliasadressen de bedrijfsgrens zouden oversteken. Verwijder ze eerst via de expliciete gedeelde-mailboxworkflow.

## API-contract en bevoegdheden

Alle paden hieronder beginnen met `/api/v1/accounts/{account}/workspaces/{workspace}`.

| Methode en pad | Doel |
| --- | --- |
| `GET /shared-mailboxes` | Overzicht; `limit` 1–100 en ondoorzichtige `cursor` |
| `POST /shared-mailboxes` | Betaalde aanmaak met beoordeeld product |
| `GET /shared-mailboxes/{shared}` | Detail, `version` en `ETag` |
| `PATCH /shared-mailboxes/{shared}` | Alleen naam en/of volledige aliaslijst wijzigen |
| `DELETE /shared-mailboxes/{shared}` | Definitief opheffen met getypt `confirm_address` |
| `GET /shared-mailboxes/{shared}/members` | Zichtbare collega's met toegang |
| `PUT /shared-mailboxes/{shared}/members/{mailbox}` | Eén collega toegang geven |
| `DELETE /shared-mailboxes/{shared}/members/{mailbox}` | Eén toegang verwijderen |
| `GET /mailboxes/{mailbox}/shared-mailboxes` | Dezelfde toegang bekijken vanaf de collega |

Lezen vraagt `workspace.mailboxes:read`; wijzigen vraagt `workspace.mailboxes:write`. Aanmaken vraagt daarnaast `orders:commit`, actuele bestelrechten en de bestaande order- en maandlimieten van een serviceverbinding. Voor de voorafgaande catalogus- en workspacecontrole zijn respectievelijk `products:read` en `workspace:read` nodig. `operations:read` maakt het volgen van de teruggegeven operatie mogelijk.

Een mailbox-ID is geen toestemming: de server controleert actuele bedrijfsbinding, rol en workspace-resourcebeperking. Een lid uit een ander bedrijf krijgt `404`. Om toegang te wijzigen voor collega's uit een andere workspace van hetzelfde bedrijf op dezelfde mailserver zijn ook schrijfrechten op die workspace nodig. Leesresultaten bevatten alleen collega's uit je toegestane leesbereik. Voor een alias op een ander Workspace-domein zijn ook schrijfrechten op die workspace vereist. Een beperkt token ziet geen verborgen leden, aliassen of gedeelde mailboxen buiten zijn eigen toegestane workspaces. Zo’n verbinding kan de gedeelde mailbox alleen wijzigen als zij ook alle al betrokken workspaces mag beheren; dit wordt vóór het opslaan gecontroleerd.

Elke schrijfactie gebruikt `Idempotency-Key`. Gebruik bij aanmaak `If-Match` met de huidige **workspace-ETag**, bij wijzigen en lidmutaties de huidige **gedeelde-mailbox-ETag**. Lees na iedere wijziging de nieuwe versie. Aanmaak vraagt de exacte product-ETag als `product_version`; een verlopen prijsreview geeft `412`. `X-Binadit-Dry-Run: true` of `dry_run: true` valideert en toont het plan zonder reservering, bestelling, wachtrijtaak of leverancierswrite.

Opheffen vereist bovendien een echte persoonlijke verbinding met recente sterke verificatie en de servervrijgave voor gevoelige acties. Een servicetoken kan deze menselijke bevestiging niet vervangen. De getypte bevestiging is het volledige e-mailadres, geen mailbox-ID.

## Aanmaken met curl en de CLI

Lees eerst het normale mailboxproduct en de workspace. Beoordeel prijs en quotum en vervang alle voorbeeld-ID's en versies. Sla de exacte body bijvoorbeeld op als `shared.json`:

```json
{"domain_id":12,"local_part":"info","display_name":"Informatie","product_id":8,"product_version":"<actuele product-ETag zonder aanhalingstekens>","aliases":["verkoop@voorbeeld.nl"],"member_ids":[23,24]}
```

Een curl-voorbeeld met een privé ingelezen token; zet echte tokens niet in chat, gedeelde bestanden of shellgeschiedenis:

```sh
curl --fail-with-body "$BINADIT_ENDPOINT/api/v1/accounts/42/workspaces/7/shared-mailboxes" \
  -H "Authorization: Bearer $BINADIT_ACCESS_TOKEN" -H 'Content-Type: application/json' \
  -H 'If-Match: "<workspace-ETag>"' -H 'Idempotency-Key: shared-info-reviewed-20261031' \
  --data-binary @shared.json
```

De getypeerde CLI gebruikt dezelfde routes en bewaart de oorspronkelijke verzoekintentie:

```sh
binadit workspace shared-mailboxes list 7 --account 42
binadit workspace shared-mailboxes create 7 --account 42 --version '<workspace-ETag>' --input shared.json --dry-run
binadit workspace shared-mailboxes create 7 --account 42 --version '<workspace-ETag>' --input shared.json --yes
binadit workspace shared-mailboxes get 7 31 --account 42
binadit workspace shared-mailboxes members list 7 31 --account 42
binadit workspace shared-mailboxes members add 7 31 23 --account 42 --version '<gedeelde-mailbox-ETag>' --yes
binadit workspace shared-mailboxes members remove 7 31 24 --account 42 --version '<nieuwe gedeelde-mailbox-ETag>' --yes
binadit workspace shared-mailboxes access 7 23 --account 42
```

Voor naam/aliassen gebruik je `update WORKSPACE SHARED --input FILE --version ETAG --yes`. Bijvoorbeeld `{"display_name":"Informatie en verkoop","aliases":["verkoop@voorbeeld.nl"]}`. De array vervangt alle eigen aliassen; geef `[]` om ze te verwijderen. `product_id`, quota, wachtwoorden, Drive en Conserio zijn geen toegestane updatevelden.

Voor definitief opheffen:

```sh
binadit workspace shared-mailboxes delete 7 31 --account 42 --version '<gedeelde-mailbox-ETag>' \
  --confirm-address 'info@voorbeeld.nl' --yes
```

## Voortgang en een onduidelijk antwoord

De response bevat `task_ids` en `delivery_status`. `queued` is geaccepteerde achtergrondverwerking; `awaiting_payment` wacht op betaling. Volg de oorspronkelijke operatie met `binadit operations watch OPERATION_UUID --account 42` en lees daarna het mailboxdetail. Een geaccepteerde HTTP-call is geen bewijs dat de mailbox of de toegang al op de mailserver is bevestigd.

Bewaar na een timeout de eerste operatie, sleutel en exacte input. Maak geen nieuwe aanmaakintentie om een onbekend resultaat te omzeilen. De worker zoekt eerst het oorspronkelijke `externalId` op, bewaart ontvangen bevestigingen en herhaalt geen onzekere aanmaak of vernietiging. Bekende betaling is geen toestemming om een ander account of nieuwe leverancier te gebruiken. Na ingetrokken rechten, gewijzigd bedrijf of gewijzigde bron blijft overig werk tegengehouden totdat de oorspronkelijke situatie expliciet is beoordeeld.

Voor agents: ontdek de actuele contracten via [OpenAPI](/developers/openapi.json) en de mogelijkheden van de eigen verbinding via `capabilities`. Gebruik alleen de hierboven beschreven scopes en bestaande ID's. Implementeer geen persoonlijke login voor een gedeelde mailbox en maak geen synthetische actor of nieuwe intentie voor herstel. Zie ook de [agenthandleiding](/developers/agents?lang=nl) en de [Workspace-facturatiegrenzen](/developers/guides/workspace-billing?lang=nl).
