> ## Documentation Index
> Fetch the complete documentation index at: https://developer.findity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create organization

> Creates a new organization under the authenticated admin user's client application. The response body is the newly created organization, equivalent to calling `GET /organizations/{organizationId}` with the same `include` parameters. Returns 400 when required fields (`name`) is missing or invalid. Returns 404 when `templateOrganizationId` references an organization that does not exist.




## OpenAPI

````yaml /openapi/findity-admin-api.json post /organizations
openapi: 3.1.0
info:
  title: Findity Admin API
  description: Findity Admin API
  version: 1.0.0
servers:
  - url: https://stage-api.findity.com/api/v1/admin
  - url: https://api.findity.com/api/v1/admin
security:
  - bearerAuth: []
paths:
  /organizations:
    post:
      tags:
        - Organizations
      summary: Create organization
      description: >
        Creates a new organization under the authenticated admin user's client
        application. The response body is the newly created organization,
        equivalent to calling `GET /organizations/{organizationId}` with the
        same `include` parameters. Returns 400 when required fields (`name`) is
        missing or invalid. Returns 404 when `templateOrganizationId` references
        an organization that does not exist.
      operationId: adminCreateOrganization
      parameters:
        - name: include
          in: query
          required: false
          description: >
            String. Comma-separated list of optional data sections to include in
            the response. Accepted values: `address`, `invoiceDetails`,
            `settings`, `design`, `partner`.
          schema:
            type: string
            example: address,partner
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminApiOrganizationPostRequest'
            example:
              name: Acme Corp
              externalSourceId: ext-acme-001
              vat: 123456-1234
              countryCode: SE
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminApiOrganization'
              example:
                id: 11adfe2a080040e3892ffb89c21ec44e
                externalSourceId: ext-acme-001
                name: Example Ltd.
                vat: 123456-1234
                phone: '+46701234567'
                status: NORMAL
                type: COMPANY
                dateCreated: '2024-01-15T09:30:00Z'
                lastUpdated: '2024-06-01T14:22:00Z'
                clientApplicationId: ca1234567890abcdef1234567890abcd
                personId: 8ab28c4f84d89c570184e1da2bf10540
                reportReviewOnPartner: false
                sendEventToExternalSystemPartnerLevel: false
                sendEventToExternalSystem: false
                automaticSetupEnabled: true
                automaticSetupCompleted: false
                supportAccessEndDate: null
                policyUrl: null
                address:
                  street1: Storgatan 1
                  city: Stockholm
                  postalCode: '11122'
                  countryName: Sweden
                  countryIso2Code: SE
                partner:
                  partnerId: abc123def456abc123def456abc123de
                  partnerName: Acme Partner AB
                  partnerCode: ACME
                  payedByPartner: true
        '400':
          description: Bad request — required fields missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                Missing required field:
                  value:
                    result: error
                    code: MISSING_REQUIRED_FIELD
                    description: Required field 'name' is missing
        '404':
          description: Not found — templateOrganizationId does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                Template organization not found:
                  value:
                    result: error
                    code: ORGANIZATION_NOT_FOUND
                    description: Organization not found
components:
  schemas:
    AdminApiOrganizationPostRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          maxLength: 255
          description: >-
            Display name of the new organization. String with maximum length of
            255 characters.
          example: Acme Corp
        externalSourceId:
          type: string
          maxLength: 255
          description: >
            Caller-supplied identifier used to address this organization from an
            external system. Must be unique within the client application. Omit
            if not needed. String with maximum length of 255 characters.
          nullable: true
        vat:
          type: string
          maxLength: 255
          description: >-
            Organization registration number (VAT/company number). String with
            maximum length of 255 characters.
          nullable: true
        phone:
          type: string
          maxLength: 255
          description: >-
            Main phone number of the organization. String with maximum length of
            255 characters.
          nullable: true
        supportAccessEndDate:
          type: string
          format: date-time
          description: >-
            ISO 8601 timestamp until which Findity support staff has elevated
            access to this organization.
          nullable: true
        sendEventToExternalSystem:
          type: boolean
          description: >-
            Whether events from this organization are sent to the external
            system.
          nullable: true
        countryCode:
          type: string
          description: >
            ISO 3166-1 alpha-2 country code for the organization's home country.
            Defaults to the template organization's country when omitted.
          example: SE
          nullable: true
        accountingCountryCode:
          type: string
          description: >
            ISO 3166-1 alpha-2 country code used to configure accounting
            settings. Defaults to the template organization's value when
            omitted.
          example: SE
          nullable: true
        templateOrganizationId:
          type: string
          description: >
            Internal ID or `externalSourceId` of a template organization to use
            as a configuration baseline. When omitted the default template for
            the client application is used.
          nullable: true
    AdminApiOrganization:
      type: object
      required:
        - id
        - name
        - status
        - dateCreated
        - lastUpdated
        - reportReviewOnPartner
        - sendEventToExternalSystemPartnerLevel
        - sendEventToExternalSystem
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          readOnly: true
          description: >-
            Unique internal identifier of the organization. 32-character hex
            string. Read-only; assigned by the server on creation.
        externalSourceId:
          type: string
          description: >-
            Caller-supplied identifier used to address this organization from an
            external system. Null when no external source ID has been set.
          nullable: true
        name:
          type: string
          description: Display name of the organization.
        vat:
          type: string
          description: Organization registration number (VAT/company number).
          nullable: true
        phone:
          type: string
          description: >-
            Main phone number of the organization. Null when no phone number has
            been set.
          nullable: true
        status:
          type: string
          description: Lifecycle status of the organization.
          enum:
            - NORMAL
            - NEW
            - INCOMPLETE
        type:
          type: string
          readOnly: true
          description: >
            What kind of organization this is. `COMPANY` is a real organization,
            `TEMPLATE` is a template organization usable as
            `templateOrganizationId` when creating one. Template organizations
            have no employees, partner or design, so `design` comes back empty
            and `meta` is left out for them.
          enum:
            - COMPANY
            - TEMPLATE
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the organization was created.
        lastUpdated:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the organization was last modified.
        clientApplicationId:
          type: string
          description: >-
            ID of the client application (partner integration) that created this
            organization.
        personId:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          readOnly: true
          description: >
            ID of the person that administers this organization. When several
            persons are linked to the authenticated account, this is the
            specific person holding the administrator role for this
            organization, which is not necessarily the logged in person. Falls
            back to the logged in person when no separate person is found.
        reportReviewOnPartner:
          type: boolean
          description: >-
            Whether expense report review is delegated to partner level rather
            than handled within this organization.
        sendEventToExternalSystemPartnerLevel:
          type: boolean
          description: >-
            Whether events are forwarded to the external system at partner level
            (rather than organization level).
        sendEventToExternalSystem:
          type: boolean
          description: >-
            Whether events from this organization are sent to the external
            system.
        automaticSetupEnabled:
          type: boolean
          description: >
            Whether the organization is set up automatically from its partner
            template. Always present, and null when the flag has never been set.
          nullable: true
        automaticSetupCompleted:
          type: boolean
          description: >
            Whether the automatic setup has finished. Always present, and null
            when the flag has never been set; a client that drives onboarding
            treats enabled and not completed as setup still pending.
          nullable: true
        supportAccessEndDate:
          type: string
          format: date-time
          description: >-
            ISO 8601 timestamp until which Findity support staff has elevated
            access to this organization. Null when no support access window is
            active.
          nullable: true
        policyUrl:
          type: string
          description: >-
            Pre-signed URL to the organization's active policy document. Null
            when no policy document is configured.
          nullable: true
        address:
          type: object
          description: >-
            Postal address of the organization. Only present when
            `include=address` is requested. Null when the organization has no
            address on record.
          nullable: true
          properties:
            street1:
              type: string
              description: First line of the street address.
              nullable: true
            city:
              type: string
              description: City name.
              nullable: true
            postalCode:
              type: string
              description: Postal or ZIP code.
              nullable: true
            countryName:
              type: string
              description: Full country name.
              nullable: true
            countryIso2Code:
              type: string
              description: ISO 3166-1 alpha-2 country code (2-letter uppercase, e.g. `SE`).
              nullable: true
        invoiceDetails:
          type: object
          description: >-
            Invoice address and billing contact. Only present when
            `include=invoiceDetails` is requested. Null when the organization
            has no invoice details on record.
          nullable: true
          properties:
            street1:
              type: string
              description: First line of the invoice street address.
              nullable: true
            city:
              type: string
              description: City name.
              nullable: true
            postalCode:
              type: string
              description: Postal or ZIP code.
              nullable: true
            countryName:
              type: string
              description: Full country name.
              nullable: true
            countryIso2Code:
              type: string
              description: ISO 3166-1 alpha-2 country code (2-letter uppercase, e.g. `SE`).
              nullable: true
            emailAddress:
              type: string
              description: Email address for invoice delivery.
              nullable: true
        settings:
          type: object
          description: >-
            Organization-specific configuration settings. Only present when
            `include=settings` is requested. Empty object when the organization
            has no custom settings configured.
          additionalProperties: true
        design:
          type: object
          description: >
            Branding and visual design configuration for this organization,
            resolved by merging client application, partner and organization
            level design. Only present when `include=design` is requested. Empty
            object when the organization has no custom design configured.
          additionalProperties: true
          properties:
            accentColor:
              type: string
              pattern: ^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
              description: Hex color code, either three or six digits (e.g. `#1A73E8`).
            darkAccentColor:
              type: string
              pattern: ^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
              description: Hex color code, either three or six digits (e.g. `#0B4FA8`).
            secondaryAccentColor:
              type: string
              pattern: ^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
              description: >-
                Hex color code, either three or six digits. Defaults to
                `accentColor` when not configured.
            secondaryDarkAccentColor:
              type: string
              pattern: ^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$
              description: >-
                Hex color code, either three or six digits. Defaults to
                `darkAccentColor` when not configured.
            textOnAccentColor:
              type: string
              pattern: ^#[0-9A-Fa-f]{6}$
              description: >
                Six digit hex color code, always `#FFFFFF` or `#000000`. Derived
                from `accentColor` for readable text on that background.
            textOnDarkAccentColor:
              type: string
              pattern: ^#[0-9A-Fa-f]{6}$
              description: >
                Six digit hex color code, always `#FFFFFF` or `#000000`. Derived
                from `darkAccentColor` for readable text on that background.
            textOnSecondaryAccentColor:
              type: string
              pattern: ^#[0-9A-Fa-f]{6}$
              description: >
                Six digit hex color code, always `#FFFFFF` or `#000000`. Derived
                from `secondaryAccentColor` for readable text on that
                background.
            textOnSecondaryDarkAccentColor:
              type: string
              pattern: ^#[0-9A-Fa-f]{6}$
              description: >
                Six digit hex color code, always `#FFFFFF` or `#000000`. Derived
                from `secondaryDarkAccentColor` for readable text on that
                background.
            logoUrl:
              type: string
              format: uri
              description: URL to the organization logo.
            menuLogoUrl:
              type: string
              format: uri
              description: URL to the logo used in the menu.
            iconUrl:
              type: string
              format: uri
              description: URL to the organization icon.
        partner:
          type: object
          description: >-
            Partner affiliation details. Only present when `include=partner` is
            requested. Null when the organization has no partner association.
          nullable: true
          properties:
            partnerId:
              type: string
              description: External ID of the partner.
              nullable: true
            partnerName:
              type: string
              description: Display name of the partner.
              nullable: true
            partnerCode:
              type: string
              description: Short code identifying the partner.
              nullable: true
            payedByPartner:
              type: boolean
              description: >-
                Whether this organization's Findity subscription is paid by the
                partner.
              nullable: true
        meta:
          type: object
          description: >
            Additional computed data about the organization. Only present on
            `GET /organizations` when `include=meta.permissions` is requested.
            This is per-organization metadata and is unrelated to the list level
            `meta` object that carries `count` and `total`. The name follows the
            `include=meta.*` convention used across the Findity APIs, and
            matches the same field on `GET /v1/expense/me/organizations`. Left
            out for template organizations, which cannot have an employee and
            therefore no permissions to report.
          properties:
            permissions:
              type: object
              description: >
                What the authenticated user is allowed to do in this
                organization. Null when permissions cannot be resolved for the
                organization.
              nullable: true
              properties:
                canAddCard:
                  type: boolean
                  description: If user can connect new credit cards.
                canViewExpenses:
                  type: boolean
                  description: >-
                    If user can view expenses, i.e. is an employee of an
                    organization.
                canApprove:
                  type: boolean
                  description: If user can approve expenses in the organization.
                canCreateExpense:
                  type: boolean
                  description: If user can create expenses.
                canCreateReport:
                  type: boolean
                  description: If user can create expense reports.
                canSendExpenses:
                  type: boolean
                  description: If user can send in single expenses.
                canSendReports:
                  type: boolean
                  description: If user can send expense reports.
                canDeleteAccount:
                  type: boolean
                  description: If user is allowed to delete the account.
                canAdminister:
                  type: boolean
                  description: >-
                    If user has administration rights for the organization,
                    allowing them to manage organization settings, members, and
                    related configuration.
    400Error:
      type: object
      properties:
        result:
          type: string
        code:
          type: string
        description:
          type: string
    404Error:
      type: object
      properties:
        result:
          type: string
        code:
          type: string
        description:
          type: string
      example:
        result: error
        code: ORGANIZATION_NOT_FOUND
        description: 'Failed to get organization for id: {orgId}'
    Uuid:
      type: string
      pattern: ^[0-9a-fA-F]{32}$
      description: UUID without dashes (32-character hex string)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````