Codat · Schema

Accounting: Journal entry

> **Language tip:** For the top-level record of a company's financial transactions, refer to the [Journals](https://docs.codat.io/lending-api#/schemas/Journal) data type ## Overview A journal entry report shows the entries made in a company's general ledger, or [accounts](https://docs.codat.io/lending-api#/schemas/Account), when transactions are approved. The journal line items for each journal entry should balance. A journal entry line item is a single transaction line on the journal entry. For example: - When a journal entry is recording a receipt of cash, the credit to accounts receivable and the debit to cash are separate line items. - When a company needs to recognise revenue from an annual contract on a monthly basis, on receipt of cash for month one, they make a debit to deferred income and a credit to revenue. In Codat a journal entry contains details of: - The date on which the entry was created and posted. - Itemised lines, including amounts and currency. - A reference to the associated accounts. - A reference to the underlying record. For example, the invoice, bill, or other data type that triggered the posting of the journal entry to the general ledger. > **Pushing journal entries** > Codat only supports journal entries in the base currency of the company that are pushed into accounts denominated in the same base currency.

Unified APIAccountingIntegration
View JSON Schema on GitHub

JSON Schema

codat-accountingjournalentry-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/AccountingJournalEntry",
  "title": "Accounting: Journal entry",
  "description": "> **Language tip:** For the top-level record of a company's financial transactions, refer to the [Journals](https://docs.codat.io/lending-api#/schemas/Journal) data type\n\n## Overview\n\nA journal entry report shows the entries made in a company's general ledger, or [accounts](https://docs.codat.io/lending-api#/schemas/Account), when transactions are approved. The journal line items for each journal entry should balance.\n\nA journal entry line item is a single transaction line on the journal entry. For example: \n\n- When a journal entry is recording a receipt of cash, the credit to accounts receivable and the debit to cash are separate line items. \n- When a company needs to recognise revenue from an annual contract on a monthly basis, on receipt of cash for month one, they make a debit to deferred income and a credit to revenue.\n\nIn Codat a journal entry contains details of:\n\n- The date on which the entry was created and posted.\n- Itemised lines, including amounts and currency.\n- A reference to the associated accounts.\n- A reference to the underlying record. For example, the invoice, bill, or other data type that triggered the posting of the journal entry to the general ledger. \n\n> **Pushing journal entries**  \n> Codat only supports journal entries in the base currency of the company that are pushed into accounts denominated in the same base currency.",
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the journal entry for the company in the accounting software."
        },
        "description": {
          "type": "string",
          "nullable": true,
          "description": "Optional description of the journal entry."
        },
        "postedOn": {
          "$ref": "#/components/schemas/DateTime",
          "description": "Date on which the journal entry was posted to the accounting software, and had an impact on the general ledger. This may be different from the creation date.\n\nFor example, a user creates a journal entry on Monday and saves it as draft, which has no impact on the general ledger. On Thursday, they return to the entry and post it.\n\nThe **createdOn** date shows as Monday.\nThe **postedOn** date shows as Thursday.\nJournal entries can also be backdated, so the **postedOn** date may be earlier than the **createdOn** date."
        },
        "createdOn": {
          "$ref": "#/components/schemas/DateTime",
          "description": "Date on which the journal was created in the accounting software."
        },
        "updatedOn": {
          "$ref": "#/components/schemas/DateTime",
          "description": "Date on which the journal was last updated in the accounting software."
        },
        "journalRef": {
          "$ref": "#/components/schemas/AccountingJournal/definitions/journalRef"
        },
        "journalLines": {
          "type": "array",
          "nullable": true,
          "description": "An array of journal lines.",
          "items": {
            "$ref": "#/components/schemas/AccountingJournalEntry/definitions/journalLine"
          }
        },
        "recordRef": {
          "$ref": "#/components/schemas/AccountingJournalEntry/definitions/journalEntryRecordRef"
        },
        "metadata": {
          "$ref": "#/components/schemas/Metadata"
        },
        "supplementalData": {
          "$ref": "#/components/schemas/SupplementalData"
        }
      }
    },
    {
      "$ref": "#/components/schemas/CommerceOrder/allOf/3"
    }
  ],
  "definitions": {
    "journalLine": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "nullable": true,
          "description": "Description of the journal line item."
        },
        "netAmount": {
          "type": "number",
          "format": "decimal",
          "description": "Amount for the journal line. Debit entries are considered positive, and credit entries are considered negative."
        },
        "transactionAmount": {
          "type": "number",
          "format": "decimal",
          "description": "The amount in the original transaction currency."
        },
        "currency": {
          "type": "string",
          "nullable": true,
          "description": "Currency for the journal line item."
        },
        "transactionCurrency": {
          "type": "string",
          "nullable": true,
          "description": "Currency of the original transaction."
        },
        "accountRef": {
          "$ref": "#/components/schemas/AccountingAccount/definitions/accountRef"
        },
        "tracking": {
          "description": "List of record refs associated with the tracking information for the line (eg to a Tracking Category, or customer etc.)",
          "title": "Tracking",
          "type": "object",
          "properties": {
            "recordRefs": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountingJournalEntry/definitions/journalLine/properties/tracking/definitions/trackingRecordRef"
              },
              "nullable": true
            }
          },
          "definitions": {
            "trackingRecordRef": {
              "type": "object",
              "title": "Record reference",
              "description": "Links to the customer or tracking category.",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "'id' of the underlying record or data type."
                },
                "dataType": {
                  "type": "string",
                  "description": "Name of underlying data type.",
                  "enum": [
                    "customers",
                    "suppliers",
                    "trackingCategories"
                  ],
                  "example": "trackingCategories"
                }
              }
            }
          }
        },
        "contactRef": {
          "title": "Contact reference",
          "type": "object",
          "properties": {
            "id": {
              "minLength": 1,
              "type": "string",
              "description": "Unique identifier for a customer or supplier."
            },
            "dataType": {
              "type": "string",
              "nullable": true,
              "description": "Allowed name of the 'dataType'.",
              "enum": [
                "customers",
                "suppliers"
              ]
            }
          },
          "required": [
            "id"
          ]
        }
      },
      "required": [
        "netAmount"
      ]
    },
    "journalEntryRecordRef": {
      "type": "object",
      "title": "Record reference",
      "description": "Links a journal entry to the underlying record that created it.",
      "properties": {
        "id": {
          "type": "string",
          "description": "'id' of the underlying record or data type."
        },
        "dataType": {
          "type": "string",
          "description": "Name of underlying data type.",
          "enum": [
            "bankTransactions",
            "billCreditNotes",
            "billPayments",
            "bills",
            "creditNotes",
            "directCosts",
            "directIncomes",
            "invoices",
            "journalEntries",
            "payments",
            "transfers"
          ],
          "example": "transfers"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/codat-accountingjournalentry"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.