Skip to documentation

Exchange will be rebuilt separately and is unavailable through the API or CLI. Availability in this release

Workflow guides

Markdown

Exchange is excluded from this API/CLI release. Any historical Exchange API or CLI example in this guide is unavailable; native portal behavior is outside this exclusion. See current release scope.

Public portal settings

Internal administrators can change the public portal name and contact address. The name appears in the page title and footer; the contact address appears in the footer. These settings apply to the entire portal and every company, even when an administrator has selected a specific company context.

This administration does not change the SMTP sender address, portal URL, login policy, supplier connection, currency, VAT or billing. The corresponding server settings are shown on the page for information only. Existing company-specific configuration rows, styling and the logo are preserved; this function edits only the existing global name and contact address.

In the portal

Open Portal settings, enter the public name and contact address, confirm that the change applies to every company and choose Save portal details. Confirm with a recent passkey. The next page shows the new details. No email is sent.

If the response is interrupted, reload the page and check the values actually stored before making another change. The form does not automatically repeat an uncertain write. If another administrator changed the settings, your stale version is refused; review the new values first.

CLI

Sign in as a human internal administrator. --account selects the administration context and does not restrict this global change to that company.

binadit admin portal-settings get --account 1
binadit admin portal-settings update --account 1 --version CURRENT_VERSION --confirm-global --from-file branding.json --dry-run
binadit admin portal-settings update --account 1 --version CURRENT_VERSION --confirm-global --from-file branding.json

Replace CURRENT_VERSION with the version from get. The JSON file contains only:

{
  "app_name": "Voorbeeldportal",
  "contact_email": "help@example.com"
}

Use a private file or trusted stdin; on Windows, supply JSON through --from-file -. For unattended input, use --yes, while retaining explicit --confirm-global and current human administrator verification. An automation key cannot access this administration. --dry-run checks the command without storing settings or a mutation operation.

API

Method and path Scope Behavior
GET /api/v1/accounts/{context}/admin/portal-settings admin:read Global name, contact address, scope: global and version; ETag in the headers
PUT /api/v1/accounts/{context}/admin/portal-settings admin:write Store the exact reviewed global details

Both endpoints require a current human internal administrator with recent passkey verification. A PUT contains app_name, contact_email and confirm_global: true, plus optional dry_run: true. Send the current If-Match and one durable Idempotency-Key. A missing version returns 428; a changed version returns 412; invalid or unsupported fields return 422. The change and audit are stored atomically. One shared database lock prevents two first updates from creating multiple global configurations. Existing duplicate global configurations return 409 and require correction before saving.

After a lost response, preserve the original body and idempotency key. Read the stored details or the original operation. Replaying the same key returns the original confirmed result; do not replace the key to bypass a version conflict.

Instructions for AI agents

Global scope is a material property: explicitly preserve confirm_global: true and show that the change affects every company. Never interpret --account as a company-specific branding target. Read the current version, review the exact two public fields, and use an original idempotency key for writes. After ambiguity, inspect current settings and the original operation rather than guessing success. Do not extend this endpoint to SMTP, authentication, supplier, payment or tax configuration. Never place credentials in the public name or contact field.