{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/intercompany_transaction/v2.json",
  "title": "intercompany_transaction contract v2",
  "type": "object",
  "required": [
    "amount",
    "direction",
    "external_id",
    "legal_entity",
    "partner_entity",
    "posted_on"
  ],
  "properties": {
    "amount": {
      "type": "number",
      "description": "the transaction amount",
      "x-demiton-requiredness": "required",
      "x-demiton-type": "money"
    },
    "currency": {
      "type": "currency",
      "description": "the currency of the amount",
      "x-demiton-requiredness": "optional"
    },
    "reversed": {
      "type": "boolean",
      "description": "whether the entry has been reversed",
      "x-demiton-requiredness": "optional"
    },
    "direction": {
      "type": "string",
      "description": "outgoing from this entity or incoming to it",
      "x-demiton-requiredness": "required"
    },
    "posted_on": {
      "type": "string",
      "description": "the posting date",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "day",
      "format": "date",
      "x-demiton-type": "date"
    },
    "gl_account": {
      "type": "string",
      "description": "the intercompany account the transaction posts to",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "external_id": {
      "type": "string",
      "description": "the source's intercompany transaction number",
      "x-demiton-requiredness": "required"
    },
    "source_type": {
      "type": "string",
      "description": "whether it came from a journal, a sales document or a purchase document",
      "x-demiton-requiredness": "optional"
    },
    "legal_entity": {
      "type": "string",
      "description": "the legal entity whose books record this side",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "business_unit": {
      "type": "string",
      "description": "the consolidation business unit",
      "x-demiton-requiredness": "optional"
    },
    "document_date": {
      "type": "string",
      "description": "the document's date",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "day",
      "format": "date",
      "x-demiton-type": "date"
    },
    "document_type": {
      "type": "string",
      "description": "payment, invoice, credit memo, refund, order or return order",
      "x-demiton-requiredness": "optional"
    },
    "offset_account": {
      "type": "string",
      "description": "the balancing account in the other branch",
      "x-demiton-requiredness": "optional"
    },
    "partner_action": {
      "type": "string",
      "description": "whether the transaction was accepted, returned or cancelled",
      "x-demiton-requiredness": "optional"
    },
    "partner_entity": {
      "type": "string",
      "description": "the group entity on the other side",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "document_number": {
      "type": "string",
      "description": "the document number in this entity",
      "x-demiton-requiredness": "optional"
    },
    "partner_document_number": {
      "type": "string",
      "description": "the matching document number in the partner entity",
      "x-demiton-requiredness": "optional"
    }
  },
  "x-demiton-register-type": "intercompany_transaction",
  "x-demiton-contract-version": "2.0.2",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "Transactions between companies in your group, for elimination on consolidation.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/intercompany_transaction/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}