An immutable expense revision header. Items are stored in am.noz.at.spl.item records with the same expenseId and revisionId.
tid
Timestamp-based ID
Properties
base
ref
lex:am.noz.at.spl.expense#recordRef
Optional
The effective revision this revision was based on.
category
string
Optional
No description available.
maxLength: 64 bytesfood, transport, accommodation, entertainment, groceries, utilities, shopping, othercreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
currency
string
Required
Uppercase ISO 4217 currency code.
maxLength: 3 bytesminLength: 3 bytesdescription
string
Required
No description available.
maxLength: 1000 bytesminLength: 1 bytesmaxGraphemes: 200 graphemesexpenseId
string
Required
Stable application identifier shared by every revision.
maxLength: 64 bytesminLength: 1 bytesgroupId
string
Optional
Optional organizational group or trip within the ledger Space. Omitted for ungrouped expenses.
maxLength: 64 bytesminLength: 1 bytesitemCount
integer
Required
No description available.
minimum: 1maximum: 500merchant
string
Optional
No description available.
maxLength: 500 bytesmaxGraphemes: 120 graphemesminorUnit
integer
Required
No description available.
minimum: 0maximum: 4notes
string
Optional
No description available.
maxLength: 4000 bytesmaxGraphemes: 1000 graphemesoccurredAt
string
datetime
Required
An RFC 3339 formatted timestamp.
paidBy
array
of
ref
lex:am.noz.at.spl.expense#moneyAllocation
Required
No description available.
maxLength: 250 itemsminLength: 1 itemsreceipt
blob
Optional
No description available.
maxSize: 10.0 MBreceiptAlt
string
Optional
No description available.
maxLength: 2000 bytesmaxGraphemes: 300 graphemesrecurringSource
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 bytesschemaVersion
integer
Required
No description available.
totalMinor
integer
Required
Exact total in currency minor units; never a floating-point amount.
minimum: 1voided
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."
}