{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/moneyhub/main/json-schema/moneyhub-statement-schema.json", "title": "Statement", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/moneyhub-statements-api-openapi.yml#/components/schemas/Statement", "type": "object", "required": [ "id", "accountId", "userId", "providerStatementId", "providerAccountId", "type", "startDate", "endDate", "creationDate" ], "additionalProperties": false, "properties": { "id": { "type": "string" }, "accountId": { "type": "string" }, "userId": { "type": "string" }, "providerStatementId": { "type": "string" }, "providerAccountId": { "type": "string" }, "reference": { "type": "string" }, "type": { "type": "string", "enum": [ "AccountClosure", "AccountOpening", "Annual", "Interim", "RegularPeriodic" ] }, "startDate": { "type": "string", "format": "date-time" }, "endDate": { "type": "string", "format": "date-time" }, "creationDate": { "type": "string", "format": "date-time" }, "description": { "type": "string" }, "benefits": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "amount": { "additionalProperties": false, "type": "object", "properties": { "value": { "description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.", "type": "integer" }, "majorUnits": { "description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.", "type": "integer" }, "minorUnits": { "description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.", "type": "integer" }, "currency": { "description": "The currency of the amount", "type": "string" } }, "required": [ "value", "currency" ] } } } }, "fees": { "type": "array", "items": { "type": "object", "required": [ "creditDebitIndicator", "type", "amount" ], "properties": { "description": { "type": "string" }, "creditDebitIndicator": { "type": "string" }, "type": { "type": "string" }, "rate": { "type": "string" }, "rateType": { "type": "string", "enum": [ "BOEBaseRate", "FixedRate", "Gross", "LoanProviderBaseRate", "Net" ] }, "frequency": { "type": "string", "enum": [ "ChargingPeriod", "PerTransactionAmount", "PerTransactionPercentage", "Quarterly", "StatementMonthly", "Weekly" ] }, "amount": { "additionalProperties": false, "type": "object", "properties": { "value": { "description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.", "type": "integer" }, "majorUnits": { "description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.", "type": "integer" }, "minorUnits": { "description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.", "type": "integer" }, "currency": { "description": "The currency of the amount", "type": "string" } }, "required": [ "value", "currency" ] } } } }, "interest": { "type": "array", "items": { "type": "object", "required": [ "amount" ], "properties": { "description": { "type": "string" }, "creditDebitIndicator": { "type": "string" }, "rate": { "type": "string" }, "rateType": { "type": "string", "enum": [ "BOEBaseRate", "FixedRate", "Gross", "LoanProviderBaseRate", "Net" ] }, "frequency": { "type": "string", "enum": [ "Daily", "HalfYearly", "Monthly", "PerStatementDate", "Quarterly", "Weekly", "Yearly" ] }, "type": { "type": "string" }, "amount": { "additionalProperties": false, "type": "object", "properties": { "value": { "description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.", "type": "integer" }, "majorUnits": { "description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.", "type": "integer" }, "minorUnits": { "description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.", "type": "integer" }, "currency": { "description": "The currency of the amount", "type": "string" } }, "required": [ "value", "currency" ] } } } }, "amounts": { "type": "array", "items": { "type": "object", "required": [ "creditDebitIndicator", "type", "amount" ], "properties": { "creditDebitIndicator": { "type": "string" }, "type": { "type": "string" }, "amount": { "additionalProperties": false, "type": "object", "properties": { "value": { "description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.", "type": "integer" }, "majorUnits": { "description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.", "type": "integer" }, "minorUnits": { "description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.", "type": "integer" }, "currency": { "description": "The currency of the amount", "type": "string" } }, "required": [ "value", "currency" ] }, "amountSubType": { "type": "string", "enum": [ "BaseCurrency", "LocalCurrency" ] }, "localAmount": { "additionalProperties": false, "type": "object", "properties": { "value": { "description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.", "type": "integer" }, "majorUnits": { "description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.", "type": "integer" }, "minorUnits": { "description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.", "type": "integer" }, "currency": { "description": "The currency of the amount", "type": "string" } }, "required": [ "value", "currency" ] }, "localAmountSubType": { "type": "string", "enum": [ "BaseCurrency", "LocalCurrency" ] } } } }, "dates": { "type": "array", "items": { "type": "object", "required": [ "date", "type" ], "properties": { "date": { "type": "string", "format": "date-time" }, "type": { "type": "string" } } } }, "rates": { "type": "array", "items": { "type": "object", "required": [ "rate", "type" ], "properties": { "rate": { "type": "string" }, "type": { "type": "string" } } } }, "values": { "type": "array", "items": { "type": "object", "required": [ "value", "type" ], "properties": { "value": { "type": "string" }, "type": { "type": "string" } } } }, "totalValue": { "additionalProperties": false, "type": "object", "properties": { "value": { "description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.", "type": "integer" }, "majorUnits": { "description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.", "type": "integer" }, "minorUnits": { "description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.", "type": "integer" }, "currency": { "description": "The currency of the amount", "type": "string" } }, "required": [ "value", "currency" ] }, "currency": { "type": "string" } } }