---
title: "Create Issuer Profile"
method: POST
path: "/companies/{company_id}/ar/issuer-profiles"
tags: ["ar-invoices"]
---

# Create Issuer Profile

`POST /companies/{company_id}/ar/issuer-profiles`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/companies/{company_id}/ar/issuer-profiles`
- Auth: none declared

## Path parameters

- `company_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Request body

- ArIssuerProfileIn: ``POST …/ar/issuer-profiles`` — the sender identity printed on invoices. ⚖️ **ZCT-513, owner ruling 2026-09-03: the address is required on every create.** ``address_line1``/``postal_code``/``city`` were optional and the company create seeded a profile with all three empty on purpose, so a tenant could hold a "configured" default profile that blocks every issue attempt. They are now required and non-blank, here and on the onboarding create (``schemas.onboarding.OnboardingIssuerIn``) alike — the two doors a profile can come through. Enforcement is at the **schema layer, for new writes only**. There is deliberately **no migration, no backfill and no NOT NULL constraint**: such a constraint cannot apply while address-less rows exist, and a backfilled placeholder would print on a real customer's invoice. Stored address-less rows stay exactly as they are and keep being refused by ``ar.validation``'s ``issuer_incomplete`` block — an accepted residual, not an oversight.
  - `label` string, required
  - `legal_name` string, required
  - `address_line1` string, required
  - `address_line2` string, nullable
  - `postal_code` string, required
  - `city` string, required
  - `country` string
  - `vat_number` string, nullable
  - `contact_email` string, nullable
  - `contact_phone` string, nullable
  - `bank_account_id` string, nullable
  - `logo_document_id` string, nullable
  - `footer_text` string, nullable
  - `legal_text` string, nullable
  - `default_language` 'de' | 'en' | 'fr' | 'it', nullable
  - `default_payment_terms_id` string, nullable
  - `template_key` string
  - `is_default` boolean

## Response `201`

Successful Response

- ArIssuerProfileOut
  - `label` string, required
  - `legal_name` string, required
  - `address_line1` string, nullable
  - `address_line2` string, nullable
  - `postal_code` string, nullable
  - `city` string, nullable
  - `country` string
  - `vat_number` string, nullable
  - `contact_email` string, nullable
  - `contact_phone` string, nullable
  - `bank_account_id` string, nullable
  - `logo_document_id` string, nullable
  - `footer_text` string, nullable
  - `legal_text` string, nullable
  - `default_language` string, nullable
  - `default_payment_terms_id` string, nullable
  - `template_key` string
  - `is_default` boolean
  - `id` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
