{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/gl_journal_entry/v2.json",
  "title": "gl_journal_entry contract v2",
  "type": "object",
  "required": [
    "credit_amount",
    "debit_amount",
    "external_id",
    "financial_period",
    "gl_account",
    "occurred_at"
  ],
  "properties": {
    "project": {
      "type": "string",
      "description": "the job the entry is attributed to, when the source supplies one",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "currency": {
      "type": "currency",
      "description": "reporting currency of the amounts",
      "x-demiton-requiredness": "optional"
    },
    "gl_account": {
      "type": "string",
      "description": "the ledger account the line posts to",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "description": {
      "type": "string",
      "description": "the source's free-text journal description",
      "x-demiton-requiredness": "optional"
    },
    "external_id": {
      "type": "number",
      "description": "the source system's own entry identifier, e.g. BC `entryNumber`",
      "x-demiton-requiredness": "required"
    },
    "occurred_at": {
      "type": "string",
      "description": "the posting date the entry was booked on",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "instant",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "debit_amount": {
      "type": "number",
      "description": "debit movement of the line",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "AUD (by coordinate)",
      "x-demiton-type": "decimal"
    },
    "legal_entity": {
      "type": "string",
      "description": "the company whose ledger the entry belongs to",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "credit_amount": {
      "type": "number",
      "description": "credit movement of the line",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "AUD (by coordinate)",
      "x-demiton-type": "decimal"
    },
    "document_type": {
      "type": "string",
      "description": "the journal/document type of the entry",
      "x-demiton-requiredness": "optional"
    },
    "document_number": {
      "type": "string",
      "description": "the source document the entry belongs to",
      "x-demiton-requiredness": "optional"
    },
    "financial_period": {
      "type": "string",
      "description": "the accounting period the entry falls in",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    }
  },
  "x-demiton-register-type": "gl_journal_entry",
  "x-demiton-contract-version": "2.0.1",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "gl_account",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "legal_entity",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "financial_period",
      "requirement": "required",
      "role": "context"
    },
    {
      "axis": "project",
      "requirement": "optional",
      "role": "subject"
    },
    {
      "axis": "currency",
      "requirement": "optional",
      "role": "context"
    }
  ],
  "x-demiton-measures": [
    {
      "key": "credit_amount",
      "accumulation": "additive",
      "dtype": "decimal",
      "unit": "by_coordinate"
    },
    {
      "key": "debit_amount",
      "accumulation": "additive",
      "dtype": "decimal",
      "unit": "by_coordinate"
    }
  ],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "ATO record-keeping rules",
        "title": "ATO business record-keeping rules (ITAA 1936 s 262A; TAA 1953 Sch 1 s 382-5)",
        "access": "public_summary",
        "region": "Australia",
        "edition": "ATO page updated 2025-08-01",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Corporations Act 2001 (Cth) s 286",
        "title": "Corporations Act 2001 (Cth) - obligation to keep financial records",
        "access": "full_text_verified",
        "clause": "s 286(1), 286(2) (7 years)",
        "region": "Australia",
        "edition": "current",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "General ledger journal entries: payroll, payables, receivables and manual postings.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/gl_journal_entry/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}