BizKitHub
DocsAPI ReferenceOrganisation/bff/organisation/profile
getOrganisationAdmin BFF

/bff/organisation/profile

Returns the complete organisation profile including basic info, company details, feature flags, timezone, locale, tariff limits, branding, email configuration, order settings, post digest settings, and payment settings. Combines data from the organisation table and configuration key-value store. Sensitive values (SMTP passwords, payment gateway secrets) are NOT included — use the /settings/env-variable-value endpoint to access those individually.

OrganisationgetBffOrganisationProfile

Parameters

No parameters required

This endpoint takes no path, query, header or body parameters.

Response schema

1 status code documented

200Success
namestringRequired

Organisation display name. Used as the sender name in all outgoing emails (transactional, marketing, newsletters), shown on invoices as the supplier name, displayed in admin panels and organisation switcher. Must be unique across all organisations.

slugstringRequired

URL-safe unique identifier. Used in public URLs (e.g. /[slug]/…), newsletter unsubscribe links, Firmy.cz feed paths, and terminal commands for org switching. Read-only — set at creation from the org name.

storageSlugstringRequired

CDN storage path prefix. All uploaded files (images, documents) are stored under this slug at the storage CDN (e.g. https://storage.xhp.cz/{storageSlug}/…). Read-only — set at creation, same as slug.

descriptionstring | nullRequired
One of 2:
Variant 1
string

Organisation about text / profile description. Shown in admin organisation lists. Optional free-form text for internal reference.

Variant 2
null
emojistring | nullRequired
One of 2:
Variant 1
string

Visual emoji icon for the organisation. Displayed next to the org name in account details, org switcher, and terminal output. If not set manually, the system auto-generates one using AI based on the org configuration.

Variant 2
null
companyRegistrationNumberstring | nullRequired
One of 2:
Variant 1
string

Czech company registration number (IČO). Printed on invoices and receipts as "IČO: {value}". Used for ARES address lookup, Firmy.cz feed integration, and invoice export data for accounting.

Variant 2
null
taxIdentificationNumberstring | nullRequired
One of 2:
Variant 1
string

Tax identification number (DIČ). Printed on invoices and receipts as "DIČ: {value}". Used for address lookup validation and included in invoice exports for accounting software.

Variant 2
null
vatPayerbooleanRequired

Whether the organisation is a VAT payer. When true, invoices include VAT rates (21%, 12%, 0%) on line items. When false, all invoice items use 0% VAT. Also triggers unreliable VAT payer fraud checks against the Czech Ministry of Finance list.

countryobject | nullRequired
One of 2:
Variant 1
idnumberRequired

Internal country ID. Use this value as countryId in update-profile.

codestringRequired

ISO 3166-1 alpha-2 country code of the organisation's primary HQ. Drives per-country security posture (firewall rules, geo-risk scoring in login) and default UX. Populated at org creation from the country picker (pre-filled by GeoIP), user-editable in /settings/company.

ExampleCZ
namestringRequired

Localized country name (English).

Variant 2
null
accountingCountryobject | nullRequired
One of 2:
Variant 1
idnumberRequired

Internal country ID. Use this value as accountingCountryId in update-profile.

codestringRequired

ISO 3166-1 alpha-2 country code. Defines accounting / tax jurisdiction (used for VAT rules, ARES vs RPO lookup, legal form picker scoping).

ExampleCZ
namestringRequired

Localized country name (English).

Variant 2
null
legalFormobject | nullRequired
One of 2:
Variant 1
idnumberRequired

Internal legal form ID. Use this value as legalFormId in update-profile.

codestringRequired

Country-specific legal form code (e.g. ARES "pravniForma" 112 = s.r.o. in CZ).

Example112
slugstringRequired

Cross-country slug (osvc, sro, as, vos, ks, druzstvo, po, fo_podnikatel, neziskovka…).

Examplesro
namestringRequired

Localized human-readable legal form name.

ExampleSpolečnost s ručením omezeným (s.r.o.)
Variant 2
null
timezoneobjectRequired
idnumberRequired

Internal timezone ID. Use this value when setting timezoneId in update-profile.

timezonestringRequired

IANA timezone identifier. Used to format dates in email notifications and calendar events.

ExampleEurope/Prague
gmtstringRequired

GMT offset string for display purposes.

Example+01:00
labelstringRequired

Human-readable timezone label for picker display.

ExampleCentral European Time - Prague
primaryLocaleobjectRequired
idnumberRequired

Internal locale ID. Use this value when setting primaryLocaleId in update-profile.

localestringRequired

ISO 639-1 locale code. Determines default language for contacts, emails, and content selection.

Examplecs
defaultCurrencystringRequired

Default currency ISO 4217 code (e.g. "CZK"). Used for pricing of products and orders. Changing this value is a sensitive operation — update requests that attempt to change it are rejected and logged as a warning; contact BizKitHub technical support to change the organisation default currency.

ExampleCZK
supportPersonobject | nullRequired
One of 2:
Variant 1
idnumberRequired

Internal member ID of the support person (from GET /organisation/members).

fullNamestringRequired

Full name of the designated support contact for this organisation.

Variant 2
null
vendorobject | nullRequired
One of 2:
Variant 1

Vendor (parent) organisation that resells / technically manages this org. Returned only when (a) parent_id is set AND (b) the parent holds an active white-label licence. NULL otherwise — i.e. either we sell directly to the customer or the parent's licence has been revoked.

organisationobjectRequired
idnumberRequired

Vendor (parent) organisation id.

slugstringRequired

Vendor slug — used by /vendor/switch.

namestringRequired

Vendor display name (e.g. "7 nápadů s.r.o.").

emojistring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
descriptionstring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
whiteLabelLicenceIdstringRequired

16-character white-label licence id of the vendor (mirror of cas__white_label_licence.licence_key).

contactPersonobject | nullRequired
One of 2:
Variant 1
memberIdnumberRequired

cas__organisation_member.id of the vendor's nominated contact.

firstNamestring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
lastNamestring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
Variant 2
null
contactEmailstring | nullRequired
One of 2:
Variant 1
string

Email address customers should write to. Resolved as: vendor's default_send_from_email (transactional sender) → contact person's login username → null.

Variant 2
null
myTariffobjectRequired

The CUSTOMER's own tariff & billing summary — what the vendor manages on their behalf. Bundled here so the settings page can render "Spravuje mě" + "Můj tarif" in one go.

idnumberRequired

Tariff id from cas__tariff.

codestringRequired

Tariff code (free, startup, business, enterprise).

namestringRequired

Tariff display name.

monthlyPriceCzknumberRequired

Final monthly price the customer actually pays, in WHOLE CZK.

priceFrombooleanRequired

True for Enterprise (variable pricing).

customPriceCzknumber | nullRequired
One of 2:
Variant 1
number

Negotiated price (CZK) when set, NULL = catalogue minus discount.

Variant 2
null
discountPercentnumberRequired

Discount applied on top of catalogue price (0-100).

expiresAtstring | nullRequired
One of 2:
Variant 1
string

ISO datetime when the current paid period ends. NULL = no paid-until set.

Variant 2
null
daysUntilExpirynumber | nullRequired
One of 2:
Variant 1
number

Whole days until expiry. Negative = already expired.

Variant 2
null
isExpiredbooleanRequired

TRUE when expiresAt < now.

Variant 2
null
tariffobjectRequired
idnumberRequired

Tariff ID (read-only — managed via /tariff endpoints by admins).

codestringRequired

Tariff plan identifier. Determines resource limits and pricing for the organisation.

Examplebusiness
storageMbnumberRequired

File storage limit in MB. Compare with storageUsed (in bytes) to calculate usage. 0 = unlimited.

limitMembersnumberRequired

Max active (non-blocked) organisation members. 0 = unlimited.

limitProductsnumberRequired

Max non-deleted products in the shop. 0 = unlimited.

limitOrdersMonthlynumberRequired

Max orders per calendar month. Tracked in usage_monthly table. 0 = unlimited.

limitCustomersnumberRequired

Max contact records in the system. 0 = unlimited.

limitEmailsMonthlynumberRequired

Max transactional emails per calendar month. 0 = unlimited.

limitAiTokensMonthlynumberRequired

Max AI token usage per calendar month. 0 = unlimited.

limitFormsnumberRequired

Max form records. 0 = unlimited.

logoUrlstring | nullRequired
One of 2:
Variant 1
string

Organisation logo URL displayed in the header of all outgoing email templates. Rendered as an tag in the default email layout. If not set, the logo section is hidden. Also shown in the account organisation list for the logged-in user.

Variant 2
null
printLogoUrlstring | nullRequired
One of 2:
Variant 1
string

Organisation logo URL optimized for print use (invoices, receipts, contracts, PDF documents). If not set, the standard logoUrl is used as fallback when generating print documents.

Variant 2
null
primaryColorstring | nullRequired
One of 2:
Variant 1
string

Primary brand hex color of the organisation (e.g. "#1a2b3c"). Used for branding customization. Must be a valid 3 or 6 digit hex color with leading #.

Example#1a2b3c
Variant 2
null
secondaryColorstring | nullRequired
One of 2:
Variant 1
string

Secondary brand hex color of the organisation (e.g. "#f0f0f0"). Used for branding customization. Must be a valid 3 or 6 digit hex color with leading #.

Example#f0f0f0
Variant 2
null
supportEmailstring | nullRequired
One of 2:
Variant 1
string

Default "From" email address for all transactional emails: order confirmations, calendar event notifications, account registration, password resets, member invitations, credit/voucher notifications, and system alerts. If not configured, falls back to the organisation's internal contact email, then to "info@brj.cz".

Exampleinfo@example.com
Variant 2
null
supportEmailMarketingstring | nullRequired
One of 2:
Variant 1
string

Override "From" email address used only for newsletter and marketing bulk emails. Allows separating marketing sender identity from transactional emails (different IP reputation, branding). If not set, marketing emails use the transactional supportEmail instead.

Variant 2
null
emailerFooterstring | nullRequired
One of 2:
Variant 1
string

Custom HTML footer appended to the bottom of all outgoing emails (transactional, marketing, newsletters). Typically contains company info, legal disclaimers, and unsubscribe links. If not set, a default footer is auto-generated with the organisation name.

Variant 2
null
emailerLayoutstring | nullRequired
One of 2:
Variant 1
string

Custom HTML email template wrapper using Handlebars syntax. Wraps all outgoing email content. Supported variables: {{ htmlBody }} (email content), {{ logoUrl }} (org logo), {{ footer }} (footer HTML). Supports conditionals: {{ if logoUrl }}…{{ /if }}. If not set, uses the built-in default template with logo header, content area, and footer.

Variant 2
null
emailerSmtpHoststring | nullRequired
One of 2:
Variant 1
string

SMTP server hostname for transactional email delivery (e.g. "smtp.gmail.com"). Required to enable any email sending. Without SMTP configured, the organisation cannot send emails. Validated by sending a test email during initial setup via /bff/emailer/setup-smtp.

Variant 2
null
emailerSmtpPortstring | nullRequired
One of 2:
Variant 1
string

SMTP server port. Use "587" for STARTTLS (recommended) or "465" for implicit SSL. Port 465 enables secure: true in the SMTP connection; all other ports use STARTTLS upgrade.

Variant 2
null
emailerSmtpUserstring | nullRequired
One of 2:
Variant 1
string

SMTP authentication username for transactional email delivery. Usually the email address itself (e.g. "info@example.com").

Variant 2
null
emailerMarketingSmtpHoststring | nullRequired
One of 2:
Variant 1
string

Separate SMTP server for newsletter and marketing bulk emails. Allows using a dedicated email service (SendGrid, Mailchimp SMTP, etc.) with different rate limits and IP reputation. If not configured, marketing emails fall back to the transactional SMTP above.

Variant 2
null
emailerMarketingSmtpPortstring | nullRequired
One of 2:
Variant 1
string

SMTP port for marketing email server. Same port logic as transactional: "587" for STARTTLS, "465" for SSL.

Variant 2
null
emailerMarketingSmtpUserstring | nullRequired
One of 2:
Variant 1
string

SMTP authentication username for marketing email server.

Variant 2
null
emailerNewsletterReturnUrlstring | nullRequired
One of 2:
Variant 1
string

URL where users are redirected after clicking the newsletter subscription confirmation link. For example "/newsletter-thanks" or a specific blog post. If not set, no redirect happens and the API just returns a success response.

Variant 2
null
smsSluzbaCzLoginstring | nullRequired
One of 2:
Variant 1
string

sms-sluzba.cz account login (username). Required together with the password for outgoing SMS via the apixml30 gateway.

Variant 2
null
smsSluzbaCzDefaultSenderstring | nullRequired
One of 2:
Variant 1
string

Optional default sender label (numeric msisdn or alphanumeric brand) attached to outgoing SMS when the caller does not pass one explicitly.

Variant 2
null
orderInternalNotificationEmailsstring | nullRequired
One of 2:
Variant 1
string

Comma-separated email addresses that receive BCC copies of all order status notification emails. Internal team members listed here get notified whenever an order changes status (new, paid, shipped, cancelled, etc.). Emails are deduplicated and validated before sending.

Variant 2
null
orderRefundStrategystring | nullRequired
One of 2:
Variant 1
string

Default refund strategy when an order is cancelled (storno). "credit" = money returned as store account credit (default). "cash" = triggers credit note generation and manual bank transfer refund. "none" = no refund issued. Can be overridden per individual storno request.

Examplecredit
Variant 2
null
orderAccountingModestring | nullRequired
One of 2:
Variant 1
string

Controls automatic credit note generation during cash refunds. "auto" or "always" = credit note (tax document) is auto-generated with storno items linked to the original invoice. "never" = skips credit note, requires manual accounting. Only applies when refund strategy is "cash" and the order was paid. Defaults to "auto".

Exampleauto
Variant 2
null
logInternalNotificationEmailsstring | nullRequired
One of 2:
Variant 1
string

Comma-separated email addresses that receive system error alert emails. Added as BCC on: (1) Daily log report — aggregated CRITICAL/ERROR/WARNING logs from the past 24 hours grouped by severity; (2) Individual critical error notifications triggered in real-time. Separate from order notification emails.

Variant 2
null
postDigestEnabledbooleanRequired

Master switch for the automatic newsletter digest feature. When enabled, a cron job periodically collects recent blog posts and sends a digest email to all contacts with active newsletter subscriptions. Posts are ordered by star status and recency.

postDigestIntervalDaysnumber | nullRequired
One of 2:
Variant 1
number

Number of days between automatic digest sends. The cron job checks: if (now - lastSentDate) >= intervalDays, send a new digest. Defaults to 14 days if not set. The timer resets even if no posts are found or no subscribers exist, to prevent retry storms.

Variant 2
null
postDigestLastSentDatestring | nullRequired
One of 2:
Variant 1
string

ISO 8601 timestamp of the last digest send attempt. Managed automatically by the system — updated after each run (whether successful, no posts found, or no subscribers). Can be manually cleared to force an immediate next send. Read-only in the UI.

Variant 2
null
postDigestSubjectstring | nullRequired
One of 2:
Variant 1
string

Email subject line template for digest newsletters. Supports Handlebars variables: {{ postCount }} (number of articles in this digest) and {{ intervalDays }} (configured interval). Default: "Nové články ({{ postCount }})" → renders as e.g. "Nové články (5)".

Variant 2
null
postDigestIntroTextstring | nullRequired
One of 2:
Variant 1
string

Custom HTML text inserted before the article list in the digest email body. Rendered as raw HTML without sanitization. Use for welcome messages, promotional text, or instructions. If empty, the email starts directly with the post list.

Variant 2
null
postDigestLocalestring | nullRequired
One of 2:
Variant 1
string

Override locale code (e.g. "cs", "en") for selecting which posts appear in the digest. Only posts in this locale are included. If not set, falls back to the organisation's primary locale. Useful for multilingual organisations that want to send Czech-only or English-only digests.

Variant 2
null
postDigestMaxPostsnumber | nullRequired
One of 2:
Variant 1
number

Maximum number of posts to include in a single digest email. Posts are selected by: starred first, then most recently updated. Defaults to 20 if not set. Controls email length — lower values keep digests concise.

Variant 2
null
paymentRecurringEnabledbooleanRequired

Enables automatic recurring subscription payment charging via Comgate gateway. When true, the system can: (1) initialize card tokenization on first payment (initRecurring flag), and (2) charge subsequent subscription payments automatically without customer re-authentication. Required for SaaS/subscription billing models.

customerCreditDefaultExpirationstring | nullRequired
One of 2:
Variant 1
string

Default expiration period for newly created customer account credit (e.g. from refunds or manual additions). Value in days (e.g. "365" for 1 year). Expired credit cannot be used for purchases. If not set, credit records are created without expiration. Applied automatically when credit is issued via storno refund or manual addition.

Variant 2
null
storageUsednumberRequired

Current total storage usage in bytes (read-only). Calculated by summing all blob file sizes for this organisation. Updated automatically by the storage read model. Compare with tariff.storageMb to show usage percentage.

insertedDatestringRequired

ISO 8601 timestamp when the organisation was created. Read-only metadata for display purposes.

internalContactEmailstring | nullRequired
One of 2:
Variant 1
string

Email address of the organisation's own internal contact (shop__contact joined via internal_customer_id). Minted at org creation as a synthetic -org-<random>@ alias so it never collides with the founder's mailbox. Historically used as the fallback From/Reply-To for outgoing transactional mail — now superseded by adminContact.email for that role and kept only as a legal / accounting artefact (IČO/DIČ mirror). Read-only.

Exampleacme-org-a1b2c3d4@example.com
Variant 2
null
adminContactobject | nullRequired
One of 2:
Variant 1

Operator ("Provozovatel") contact — the deliverable in-org shop__contact that receives platform notifications and acts as the default From/Reply-To for outbound transactional mail. Always present for a healthy org (the resolver self-heals from the oldest active member when the column is NULL). Change via POST /organisation/update-admin-contact.

externalIdstringRequired

shop__contact.external_id — wire id used by /contact endpoints and the picker.

emailstring | nullRequired
One of 2:
Variant 1
string

Deliverable e-mail address of the operator contact.

Variant 2
null
firstNamestring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
lastNamestring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
fullNamestringRequired

Display name — first+last if present, else email.

Variant 2
null
transactionalContactobject | nullRequired
One of 2:
Variant 1

Optional override for the outbound transactional From address. NULL = inherit adminContact. Change or clear via POST /organisation/update-transactional-contact.

externalIdstringRequired
emailstring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
firstNamestring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
lastNamestring | nullRequired
One of 2:
Variant 1
string
Variant 2
null
fullNamestringRequired
Variant 2
null

Response example

application/json
{
  "name": "example_name",
  "slug": "example_slug",
  "storageSlug": "example_storageSlug",
  "vatPayer": false,
  "timezone": {
    "id": 0,
    "timezone": "Europe/Prague",
    "gmt": "+01:00",
    "label": "Central European Time - Prague"
  },
  "primaryLocale": {
    "id": 0,
    "locale": "cs"
  },
  "defaultCurrency": "CZK",
  "tariff": {
    "id": 0,
    "code": "business",
    "storageMb": 0,
    "limitMembers": 0,
    "limitProducts": 0,
    "limitOrdersMonthly": 0,
    "limitCustomers": 0,
    "limitEmailsMonthly": 0,
    "limitAiTokensMonthly": 0,
    "limitForms": 0
  },
  "postDigestEnabled": false,
  "paymentRecurringEnabled": false,
  "storageUsed": 0,
  "insertedDate": "example_insertedDate"
}

Request example

GET /bff/organisation/profile

get
curl -X GET "https://api.bizkithub.com/bff/organisation/profile" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY"

Need an API key?

All BizKitHub public API endpoints require authentication via API key.

Get API Key