Moneyhub · Schema

Transaction

PaymentsUnited KingdomOpen BankingOpen FinanceAccount-to-AccountPayment InitiationData AggregationAISPPISPFintech

Properties

Name Type Description
accountId string The id of the account the transaction belongs to
amount object
categoryId string The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus'
categoryIdConfirmed boolean Flag indicating whether the user has confirmed the category id as correct
date string The date that the transaction occurred. Where available this will contain an accurate time, where the time is not available it will default to midday.
dateModified string The date the transaction was modified - this could be when it was added, or a category changed, or when notes were added
dateCreated string The date the transaction was created
valueDate string The date when funds become available to the account owner (for credits) or are withdrawn (for debits). This date may be different from the transaction date.
id string The unique id of the transaction
longDescription string The full text description of the transactions - often as it is represented on the users bank statement
providerId string The id of the transaction the banking provider uses
notes string Arbitrary text that a user can add about a transaction
shortDescription string A cleaned up and shorter description of the transaction, this can be edited
counterpartyId string An identifier for the counterparty
status string Whether the transaction has been posted (booked) or is still a pending transaction. During the transition from pending to posted the description will normally change.
projectId string The project ID the transaction belongs to
enhancedCategories object Categories to enrich a transaction with
splits array List of transaction splits
transactionCode object The ISO transaction code
proprietaryTransactionCode object Set of elements to fully identify a proprietary bank transaction code.
balance object The amount of the account post transaction in minor units of the currency, eg. pennies for GBP.
balanceType string Balance type, in a coded form. Options include: ClosingAvailable ClosingBooked ClosingCleared Expected ForwardAvailable Information InterimAvailable InterimBooked InterimCleared OpeningAvailable Openi
statementReference string Unique reference for the statement. This reference may be optionally populated if available.
merchantName string Name by which the merchant is known.
merchantCategoryCode string Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.
cardInstrument object Set of elements to describe the card instrument used in the transaction.
creditorAccount object Unambiguous identification of the account of the creditor, in the case of a debit transaction.
creditorAgent object Financial institution servicing an account for the creditor.
debtorAccount object Unambiguous identification of the account of the debtor, in the case of a credit transaction.
debtorAgent object Financial institution servicing an account for the debtor.
transactionReference string Unique reference for the transaction. This reference is optionally populated, and may as an example be the FPID in the Faster Payments context. This field is only available for open banking connection
transactionInformation string Further details of the transaction. This is the transaction narrative, which is unstructured text. This field is only available for open banking connections
View JSON Schema on GitHub

JSON Schema

moneyhub-transaction-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/moneyhub/main/json-schema/moneyhub-transaction-schema.json",
  "title": "Transaction",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/moneyhub-transactions-api-openapi.yml#/components/schemas/Transaction",
  "additionalProperties": false,
  "type": "object",
  "properties": {
    "accountId": {
      "description": "The id of the account the transaction belongs to",
      "type": "string"
    },
    "amount": {
      "properties": {
        "value": {
          "description": "The amount of the transaction 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 major units of the value, based on the values currency, eg. pounds for GBP.",
          "type": "integer"
        },
        "minorUnits": {
          "description": "The minor units of the value, based on the values currency, eg. pennies for GBP.",
          "type": "integer"
        },
        "currency": {
          "description": "The currency of the amount. It uses the ISO 4217 currency codes.",
          "type": "string"
        }
      },
      "required": [
        "value",
        "currency"
      ],
      "type": "object"
    },
    "categoryId": {
      "description": "The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus'",
      "type": "string",
      "pattern": "^(std|cus):(\\w|-)+$"
    },
    "categoryIdConfirmed": {
      "description": "Flag indicating whether the user has confirmed the category id as correct",
      "type": "boolean"
    },
    "date": {
      "description": "The date that the transaction occurred. Where available this will contain an accurate time, where the time is not available it will default to midday.",
      "format": "date-time",
      "type": "string"
    },
    "dateModified": {
      "description": "The date the transaction was modified - this could be when it was added, or a category changed, or when notes were added",
      "format": "date-time",
      "type": "string"
    },
    "dateCreated": {
      "description": "The date the transaction was created",
      "format": "date-time",
      "type": "string"
    },
    "valueDate": {
      "description": "The date when funds become available to the account owner (for credits) or are withdrawn (for debits). This date may be different from the transaction date.",
      "format": "date-time",
      "type": "string"
    },
    "id": {
      "description": "The unique id of the transaction",
      "type": "string"
    },
    "longDescription": {
      "description": "The full text description of the transactions - often as it is represented on the users bank statement",
      "type": "string"
    },
    "providerId": {
      "description": "The id of the transaction the banking provider uses",
      "type": "string"
    },
    "notes": {
      "default": "",
      "description": "Arbitrary text that a user can add about a transaction",
      "type": "string"
    },
    "shortDescription": {
      "description": "A cleaned up and shorter description of the transaction, this can be edited",
      "type": "string"
    },
    "counterpartyId": {
      "description": "An identifier for the counterparty",
      "type": "string"
    },
    "status": {
      "description": "Whether the transaction has been posted (booked) or is still a pending transaction. During the transition from pending to posted the description will normally change.",
      "enum": [
        "posted",
        "pending"
      ],
      "type": "string"
    },
    "projectId": {
      "description": "The project ID the transaction belongs to",
      "type": "string"
    },
    "enhancedCategories": {
      "additionalProperties": false,
      "type": "object",
      "description": "Categories to enrich a transaction with",
      "properties": {
        "uk-tax-hmrc": {
          "description": "The UK HMRC Tax category to aid in tax return queries",
          "type": "string",
          "pattern": "^(income|expenditure)\\.([a-zA-Z-]+)$"
        }
      }
    },
    "splits": {
      "description": "List of transaction splits",
      "type": "array",
      "items": {
        "additionalProperties": false,
        "properties": {
          "amount": {
            "properties": {
              "value": {
                "description": "The amount of the transaction 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 major units of the value, based on the values currency, eg. pounds for GBP.",
                "type": "integer"
              },
              "minorUnits": {
                "description": "The 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"
              }
            }
          },
          "categoryId": {
            "description": "The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus'",
            "type": "string",
            "pattern": "^(std|cus):(\\w|-)+$"
          },
          "description": {
            "description": "A description of the transaction split",
            "type": "string"
          },
          "id": {
            "description": "The unique id of the transaction split",
            "type": "string"
          },
          "projectId": {
            "description": "The project ID the transaction is associated with",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "categoryId",
          "description",
          "id"
        ],
        "type": "object"
      }
    },
    "transactionCode": {
      "description": "The ISO transaction code",
      "type": "object",
      "properties": {
        "code": {
          "description": "Specifies the family within a domain.",
          "type": "string"
        },
        "subCode": {
          "description": "Specifies the sub-product family within a specific family.",
          "type": "string"
        }
      },
      "required": [
        "code",
        "subCode"
      ]
    },
    "proprietaryTransactionCode": {
      "description": "Set of elements to fully identify a proprietary bank transaction code.",
      "type": "object",
      "properties": {
        "code": {
          "description": "Proprietary bank transaction code to identify the underlying transaction.",
          "type": "string"
        },
        "issuer": {
          "description": "Identification of the issuer of the proprietary bank transaction code.",
          "type": "string"
        }
      },
      "required": [
        "code"
      ]
    },
    "balance": {
      "description": "The amount of the account post transaction in minor units of the currency, eg. pennies for GBP.",
      "properties": {
        "value": {
          "description": "The amount of the transaction 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 major units of the value, based on the values currency, eg. pounds for GBP.",
          "type": "integer"
        },
        "minorUnits": {
          "description": "The 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"
        }
      }
    },
    "balanceType": {
      "description": "Balance type, in a coded form. Options include: ClosingAvailable ClosingBooked ClosingCleared Expected ForwardAvailable Information InterimAvailable InterimBooked InterimCleared OpeningAvailable OpeningBooked OpeningCleared PreviouslyClosedBooked.",
      "type": "string"
    },
    "statementReference": {
      "description": "Unique reference for the statement. This reference may be optionally populated if available.",
      "type": "string"
    },
    "merchantName": {
      "description": "Name by which the merchant is known.",
      "type": "string"
    },
    "merchantCategoryCode": {
      "description": "Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.",
      "type": "string"
    },
    "cardInstrument": {
      "description": "Set of elements to describe the card instrument used in the transaction.",
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the cardholder using the card instrument.",
          "type": "string"
        },
        "pan": {
          "description": "The PAN of the card used in the transaction. This is known by the account owner, and may be masked.",
          "type": "string"
        },
        "cardSchemeName": {
          "description": "Name of the card scheme.",
          "type": "string",
          "pattern": "^(AmericanExpress|Diners|Discover|MasterCard|VISA|.*)$"
        },
        "authorisationType": {
          "description": "The card authorisation type.",
          "type": "string",
          "pattern": "^(ConsumerDevice|Contactless|None|PIN|.*)$"
        }
      }
    },
    "creditorAccount": {
      "description": "Unambiguous identification of the account of the creditor, in the case of a debit transaction.",
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "name": {
          "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.",
          "type": "string"
        },
        "sortCode": {
          "description": "The sort code of the creditor account",
          "type": "string"
        },
        "accountNumber": {
          "description": "The account number of the creditor account",
          "type": "string"
        },
        "iban": {
          "description": "The IBAN of the creditor account",
          "type": "string"
        },
        "pan": {
          "description": "The PAN of the creditor account",
          "type": "string"
        }
      }
    },
    "creditorAgent": {
      "description": "Financial institution servicing an account for the creditor.",
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "name": {
          "description": "Name by which an agent is known and which is usually used to identify that agent.",
          "type": "string"
        },
        "postalAddress": {
          "description": "The postal address for the financial institution",
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "debtorAccount": {
      "description": "Unambiguous identification of the account of the debtor, in the case of a credit transaction.",
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "name": {
          "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.",
          "type": "string"
        },
        "sortCode": {
          "description": "The sort code of the debtor account",
          "type": "string"
        },
        "accountNumber": {
          "description": "The account number of the debtor account",
          "type": "string"
        },
        "iban": {
          "description": "The IBAN of the debtor account",
          "type": "string"
        },
        "pan": {
          "description": "The PAN of the debtor account",
          "type": "string"
        }
      }
    },
    "debtorAgent": {
      "description": "Financial institution servicing an account for the debtor.",
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "name": {
          "description": "Name by which an agent is known and which is usually used to identify that agent.",
          "type": "string"
        },
        "postalAddress": {
          "description": "The postal address for the financial institution",
          "type": "object",
          "additionalProperties": true
        }
      }
    },
    "transactionReference": {
      "description": "Unique reference for the transaction. This reference is optionally populated, and may as an example be the FPID in the Faster Payments context. This field is only available for open banking connections",
      "type": "string"
    },
    "transactionInformation": {
      "description": "Further details of the transaction. This is the transaction narrative, which is unstructured text. This field is only available for open banking connections",
      "type": "string"
    }
  },
  "required": [
    "amount",
    "categoryId",
    "categoryIdConfirmed",
    "date",
    "dateModified",
    "id",
    "longDescription",
    "notes",
    "shortDescription",
    "status"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/moneyhub-transaction"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.