---
title: "Updates or creates a single manual journal"
method: POST
path: "/ManualJournals"
tags: ["Accounting"]
---

# Updates or creates a single manual journal

`POST /ManualJournals`

## Query parameters

- `summarizeErrors` boolean

## Headers

- `Idempotency-Key` string

## Request body

- ManualJournals
  - `pagination` Pagination
    - `page` integer
    - `pageSize` integer
    - `pageCount` integer
    - `itemCount` integer
  - `Warnings` ValidationError[] — Displays array of warning messages from the API
    - `Message` string — Validation error message
  - `ManualJournals` ManualJournal[]
    - `Narration` string, required — Description of journal being posted
    - `JournalLines` ManualJournalLine[] — See JournalLines
      - `LineAmount` number, double — total for line. Debits are positive, credits are negative value
      - `AccountCode` string — See Accounts
      - `AccountID` string, uuid — See Accounts
      - `Description` string — Description for journal line
      - `TaxType` string — The tax type from TaxRates
      - `Tracking` TrackingCategory[] — Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 <TrackingCategory> elements.
        - `TrackingCategoryID` string, uuid — The Xero identifier for a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9
        - `TrackingOptionID` string, uuid — The Xero identifier for a tracking option e.g. dc54c220-0140-495a-b925-3246adc0075f
        - `Name` string — The name of the tracking category e.g. Department, Region (max length = 100)
        - `Option` string — The option name of the tracking option e.g. East, West (max length = 100)
        - `Status` 'ACTIVE' | 'ARCHIVED' | 'DELETED' — The status of a tracking category
        - `Options` TrackingOption[] — See Tracking Options
          - `TrackingOptionID` string, uuid — The Xero identifier for a tracking option e.g. ae777a87-5ef3-4fa0-a4f0-d10e1f13073a
          - `Name` string — The name of the tracking option e.g. Marketing, East (max length = 100)
          - `Status` 'ACTIVE' | 'ARCHIVED' | 'DELETED' — The status of a tracking option
          - `TrackingCategoryID` string, uuid — Filter by a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9
      - `TaxAmount` number, double — The calculated tax amount based on the TaxType and LineAmount
      - `IsBlank` boolean — is the line blank
    - `Date` string — Date journal was posted – YYYY-MM-DD
    - `LineAmountTypes` 'Exclusive' | 'Inclusive' | 'NoTax' — Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types
    - `Status` 'DRAFT' | 'POSTED' | 'DELETED' | 'VOIDED' | 'ARCHIVED' — See Manual Journal Status Codes
    - `Url` string — Url link to a source document – shown as “Go to [appName]” in the Xero app
    - `ShowOnCashBasisReports` boolean — Boolean – default is true if not specified
    - `HasAttachments` boolean — Boolean to indicate if a manual journal has an attachment
    - `UpdatedDateUTC` string — Last modified date UTC format
    - `ManualJournalID` string, uuid — The Xero identifier for a Manual Journal
    - `StatusAttributeString` string — A string to indicate if a invoice status
    - `Warnings` ValidationError[] — Displays array of warning messages from the API
      - `Message` string — Validation error message
    - `ValidationErrors` ValidationError[] — Displays array of validation error messages from the API
      - `Message` string — Validation error message
    - `Attachments` Attachment[] — Displays array of attachments from the API
      - `AttachmentID` string, uuid — Unique ID for the file
      - `FileName` string — Name of the file
      - `Url` string — URL to the file on xero.com
      - `MimeType` string — Type of file
      - `ContentLength` integer — Length of the file content
      - `IncludeOnline` boolean — Include the file with the online invoice

## Response `200`

Success - return response of type ManualJournals array with newly created ManualJournal

- ManualJournals
  - `pagination` Pagination
    - `page` integer
    - `pageSize` integer
    - `pageCount` integer
    - `itemCount` integer
  - `Warnings` ValidationError[] — Displays array of warning messages from the API
    - `Message` string — Validation error message
  - `ManualJournals` ManualJournal[]
    - `Narration` string, required — Description of journal being posted
    - `JournalLines` ManualJournalLine[] — See JournalLines
      - `LineAmount` number, double — total for line. Debits are positive, credits are negative value
      - `AccountCode` string — See Accounts
      - `AccountID` string, uuid — See Accounts
      - `Description` string — Description for journal line
      - `TaxType` string — The tax type from TaxRates
      - `Tracking` TrackingCategory[] — Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 <TrackingCategory> elements.
        - `TrackingCategoryID` string, uuid — The Xero identifier for a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9
        - `TrackingOptionID` string, uuid — The Xero identifier for a tracking option e.g. dc54c220-0140-495a-b925-3246adc0075f
        - `Name` string — The name of the tracking category e.g. Department, Region (max length = 100)
        - `Option` string — The option name of the tracking option e.g. East, West (max length = 100)
        - `Status` 'ACTIVE' | 'ARCHIVED' | 'DELETED' — The status of a tracking category
        - `Options` TrackingOption[] — See Tracking Options
          - `TrackingOptionID` string, uuid — The Xero identifier for a tracking option e.g. ae777a87-5ef3-4fa0-a4f0-d10e1f13073a
          - `Name` string — The name of the tracking option e.g. Marketing, East (max length = 100)
          - `Status` 'ACTIVE' | 'ARCHIVED' | 'DELETED' — The status of a tracking option
          - `TrackingCategoryID` string, uuid — Filter by a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9
      - `TaxAmount` number, double — The calculated tax amount based on the TaxType and LineAmount
      - `IsBlank` boolean — is the line blank
    - `Date` string — Date journal was posted – YYYY-MM-DD
    - `LineAmountTypes` 'Exclusive' | 'Inclusive' | 'NoTax' — Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types
    - `Status` 'DRAFT' | 'POSTED' | 'DELETED' | 'VOIDED' | 'ARCHIVED' — See Manual Journal Status Codes
    - `Url` string — Url link to a source document – shown as “Go to [appName]” in the Xero app
    - `ShowOnCashBasisReports` boolean — Boolean – default is true if not specified
    - `HasAttachments` boolean — Boolean to indicate if a manual journal has an attachment
    - `UpdatedDateUTC` string — Last modified date UTC format
    - `ManualJournalID` string, uuid — The Xero identifier for a Manual Journal
    - `StatusAttributeString` string — A string to indicate if a invoice status
    - `Warnings` ValidationError[] — Displays array of warning messages from the API
      - `Message` string — Validation error message
    - `ValidationErrors` ValidationError[] — Displays array of validation error messages from the API
      - `Message` string — Validation error message
    - `Attachments` Attachment[] — Displays array of attachments from the API
      - `AttachmentID` string, uuid — Unique ID for the file
      - `FileName` string — Name of the file
      - `Url` string — URL to the file on xero.com
      - `MimeType` string — Type of file
      - `ContentLength` integer — Length of the file content
      - `IncludeOnline` boolean — Include the file with the online invoice

## Other responses

- `400` — A failed request due to validation error

---

[API](https://skmtc.net/xeroapi/apis/xero-accounting-api.md) · [All operations](https://skmtc.net/xeroapi/apis/xero-accounting-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xeroapi/xero-accounting-api/versions/dc231cafd8de/schema)
