> ## Documentation Index
> Fetch the complete documentation index at: https://api-doc.fidly.be/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Journal

> Update the editable fields of a journal.

Only the fields present in the body are applied; the others keep their value — omitting a
field is how you leave it alone, and sending it as `null` is refused rather than written,
except on `numbering_format` and `bank_account_id`, whose descriptions say what a null
does. `code`, `category` and `sequence_scope` are read-only and rejected if sent. A request
that breaks a rule is refused **as a whole**: the journal is left completely untouched.

The default journal of a category must stay usable (`422 default_journal_required`
otherwise): it cannot be deactivated — promote another journal of the category first —
and the last default of a category cannot be demoted, only replaced by promoting another.



## OpenAPI

````yaml /openapi.json patch /journals/{journal_uuid}
openapi: 3.1.0
info:
  title: Fidly API
  version: 1.0.0
servers:
  - url: https://api.fidly.be
    description: Production
security: []
paths:
  /journals/{journal_uuid}:
    patch:
      tags:
        - journals
      summary: Update Journal
      description: >-
        Update the editable fields of a journal.


        Only the fields present in the body are applied; the others keep their
        value — omitting a

        field is how you leave it alone, and sending it as `null` is refused
        rather than written,

        except on `numbering_format` and `bank_account_id`, whose descriptions
        say what a null

        does. `code`, `category` and `sequence_scope` are read-only and rejected
        if sent. A request

        that breaks a rule is refused **as a whole**: the journal is left
        completely untouched.


        The default journal of a category must stay usable (`422
        default_journal_required`

        otherwise): it cannot be deactivated — promote another journal of the
        category first —

        and the last default of a category cannot be demoted, only replaced by
        promoting another.
      operationId: update_journal_journals__journal_uuid__patch
      parameters:
        - name: journal_uuid
          in: path
          required: true
          schema:
            type: string
            title: Journal Uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JournalUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JournalOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    JournalUpdate:
      properties:
        name:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 1
            - type: 'null'
          title: Name
          description: Name of the journal.
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: Read-only after creation.
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          description: Read-only after creation.
        sequence_scope:
          anyOf:
            - type: string
            - type: 'null'
          title: Sequence Scope
          description: Read-only after creation.
        is_default:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Default
          description: >-
            Makes this the default journal of its category, demoting the
            previous default of the same category in the same operation. The
            last default of a category cannot be demoted with `false`: promote
            another journal instead.
        active:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Active
          description: >-
            Whether the journal is enabled. A default journal cannot be
            deactivated: promote another journal of the category first.
        start_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Start Number
          description: First number of the numbering sequence.
        numbering_format:
          anyOf:
            - type: string
              maxLength: 255
            - type: 'null'
          title: Numbering Format
          description: >-
            Template applied when numbering a document, or `null` to clear it
            and fall back to the default format `{code}-{year4}-{seq:5}`. must
            look like '{code}-{year4}-{seq:5}': '{code}', a separator ('-' or
            '/'), one or more of the tokens {year4}, {year2}, {month}, {fys4},
            {fys2}, {fye4}, {fye2}, {fy4}, {fy2}, the same kind of separator,
            then '{seq:N}' with N a single digit 2-8.
        bank_account_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Bank Account Id
          description: >-
            Opaque id of a bank account of the company to tie to this journal,
            or `null` to untie it.
      additionalProperties: false
      type: object
      title: JournalUpdate
      description: >-
        The editable part of a journal. Every field is optional: only the ones
        actually present

        in the request body are applied, so omitting a field leaves it
        untouched.


        `code`, `category` and `sequence_scope` are read-only after creation and
        rejected if sent

        (a typo in a field name is an error too, not a silent no-op).
    JournalOut:
      properties:
        id:
          type: string
          title: Id
          description: Opaque unique identifier of the journal.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Name of the journal.
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: Short code of the journal, used as a prefix in the numbering.
        category:
          type: string
          title: Category
          description: >-
            What the journal holds. One of: `sales_invoice`, `sales_credit`,
            `purchases_invoice`, `purchases_credit`, `incoming_sales`,
            `incoming_purchases`. A few legacy incoming journals with no
            direction are returned as plain `incoming`.
        is_default:
          type: boolean
          title: Is Default
          description: '`true` when this is the journal used by default for its category.'
        active:
          type: boolean
          title: Active
          description: '`false` when the journal is disabled and no longer used.'
        start_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Start Number
          description: First number of the numbering sequence.
        numbering_format:
          anyOf:
            - type: string
            - type: 'null'
          title: Numbering Format
          description: Template applied when numbering a document of this journal.
        sequence_scope:
          type: string
          title: Sequence Scope
          description: >-
            How often the numbering restarts: `never`, `monthly`,
            `calendar-year` or `fiscal-year`. A legacy journal carrying a value
            the numbering does not recognise comes out as `unknown` (and is
            numbered as `never`).
        bank_account_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Bank Account Id
          description: >-
            Opaque id of the bank account tied to this journal, resolvable
            through `GET /bank-accounts/{id}`. `null` when the journal has no
            bank account.
      additionalProperties: true
      type: object
      required:
        - id
        - name
        - code
        - category
        - is_default
        - active
        - start_number
        - numbering_format
        - sequence_scope
        - bank_account_id
      title: JournalOut
      description: >-
        An accounting journal of the company, identified by an opaque `id`.


        A journal groups documents of one kind and drives their numbering.
        `bank_account_id` only

        carries a value on the journals it applies to, and is `null` elsewhere.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````