am.noz.at.spl.expense

noz.am

Documentation

An immutable expense revision header. Items are stored in am.noz.at.spl.item records with the same expenseId and revisionId.

main record

An immutable expense revision header. Items are stored in am.noz.at.spl.item records with the same expenseId and revisionId.

Record Key tid Timestamp-based ID

Properties

category string Optional

No description available.

maxLength: 64 bytes
Known values: food, transport, accommodation, entertainment, groceries, utilities, shopping, other
createdAt string datetime Required

An RFC 3339 formatted timestamp.

currency string Required

Uppercase ISO 4217 currency code.

maxLength: 3 bytesminLength: 3 bytes
description string Required

No description available.

maxLength: 1000 bytesminLength: 1 bytesmaxGraphemes: 200 graphemes
expenseId string Required

Stable application identifier shared by every revision.

maxLength: 64 bytesminLength: 1 bytes
groupId string Optional

Optional organizational group or trip within the ledger Space. Omitted for ungrouped expenses.

maxLength: 64 bytesminLength: 1 bytes
itemCount integer Required

No description available.

minimum: 1maximum: 500
merchant string Optional

No description available.

maxLength: 500 bytesmaxGraphemes: 120 graphemes
minorUnit integer Required

No description available.

minimum: 0maximum: 4
notes string Optional

No description available.

maxLength: 4000 bytesmaxGraphemes: 1000 graphemes
occurredAt string datetime Required

An RFC 3339 formatted timestamp.

receipt blob Optional

No description available.

maxSize: 10.0 MB
receiptAlt string Optional

No description available.

maxLength: 2000 bytesmaxGraphemes: 300 graphemes
recurringSource string at-uri Optional

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

revisionId string Required

No description available.

maxLength: 64 bytesminLength: 1 bytes
schemaVersion integer Required

No description available.

totalMinor integer Required

Exact total in currency minor units; never a floating-point amount.

minimum: 1
voided boolean Required

A voiding revision replaces destructive deletion in normal application flows.

View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "schemaVersion",
      "expenseId",
      "revisionId",
      "description",
      "occurredAt",
      "createdAt",
      "currency",
      "minorUnit",
      "totalMinor",
      "paidBy",
      "itemCount",
      "voided"
    ],
    "properties": {
      "base": {
        "ref": "lex:am.noz.at.spl.expense#recordRef",
        "type": "ref",
        "description": "The effective revision this revision was based on."
      },
      "notes": {
        "type": "string",
        "maxLength": 4000,
        "maxGraphemes": 1000
      },
      "paidBy": {
        "type": "array",
        "items": {
          "ref": "lex:am.noz.at.spl.expense#moneyAllocation",
          "type": "ref"
        },
        "maxLength": 250,
        "minLength": 1
      },
      "voided": {
        "type": "boolean",
        "description": "A voiding revision replaces destructive deletion in normal application flows."
      },
      "groupId": {
        "type": "string",
        "maxLength": 64,
        "minLength": 1,
        "description": "Optional organizational group or trip within the ledger Space. Omitted for ungrouped expenses."
      },
      "receipt": {
        "type": "blob",
        "accept": [
          "image/jpeg",
          "image/png",
          "image/webp",
          "application/pdf"
        ],
        "maxSize": 10000000
      },
      "category": {
        "type": "string",
        "maxLength": 64,
        "knownValues": [
          "food",
          "transport",
          "accommodation",
          "entertainment",
          "groceries",
          "utilities",
          "shopping",
          "other"
        ]
      },
      "currency": {
        "type": "string",
        "maxLength": 3,
        "minLength": 3,
        "description": "Uppercase ISO 4217 currency code."
      },
      "merchant": {
        "type": "string",
        "maxLength": 500,
        "maxGraphemes": 120
      },
      "createdAt": {
        "type": "string",
        "format": "datetime"
      },
      "expenseId": {
        "type": "string",
        "maxLength": 64,
        "minLength": 1,
        "description": "Stable application identifier shared by every revision."
      },
      "itemCount": {
        "type": "integer",
        "maximum": 500,
        "minimum": 1
      },
      "minorUnit": {
        "type": "integer",
        "maximum": 4,
        "minimum": 0
      },
      "occurredAt": {
        "type": "string",
        "format": "datetime"
      },
      "receiptAlt": {
        "type": "string",
        "maxLength": 2000,
        "maxGraphemes": 300
      },
      "revisionId": {
        "type": "string",
        "maxLength": 64,
        "minLength": 1
      },
      "totalMinor": {
        "type": "integer",
        "minimum": 1,
        "description": "Exact total in currency minor units; never a floating-point amount."
      },
      "description": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1,
        "maxGraphemes": 200
      },
      "schemaVersion": {
        "type": "integer",
        "const": 1
      },
      "recurringSource": {
        "type": "string",
        "format": "at-uri"
      }
    }
  },
  "description": "An immutable expense revision header. Items are stored in am.noz.at.spl.item records with the same expenseId and revisionId."
}
moneyAllocation object

No description available.

Properties

amountMinor integer Required

No description available.

minimum: 0
did string did Required

A decentralized identifier (DID).

View raw schema
{
  "type": "object",
  "required": [
    "did",
    "amountMinor"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    },
    "amountMinor": {
      "type": "integer",
      "minimum": 0
    }
  }
}
recordRef object

No description available.

Properties

cid string cid Required

A content identifier (CID) referencing immutable data.

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "uri",
    "cid"
  ],
  "properties": {
    "cid": {
      "type": "string",
      "format": "cid"
    },
    "uri": {
      "type": "string",
      "format": "at-uri"
    }
  }
}

Lexicon Garden

@