openapi: 3.2.0 info: description: Documentation for the Moneyhub data API.
Authentication is via bearer token.
title: Moneyhub Data Transactions API version: 2.0.0 x-build-sha: 5d5191d servers: - url: https://api.moneyhub.co.uk/v2.0 security: - Bearer: [] tags: - name: transactions paths: /transactions: get: summary: Retrieve all transactions for a user that have been enriched with our categorisation engine description: Requires **transactions:read:all** scope. Transactions usually start around the account opening date however in most cases we only retrive the last 12 months before the connection was created. The Opening Date is available at the /accounts endpoint. parameters: - description: Filter on the transaction's Ids (maximum allowed 50) in: query name: ids schema: type: array items: type: string format: uuid maxItems: 50 - description: The total number of records to retrieve in: query name: limit schema: type: integer maximum: 1000 minimum: 0 - description: The offset at which to start retrieving records in: query name: offset schema: type: integer maximum: 1000000000 minimum: 0 - description: The earliest date to receive transactions from (inclusive) in: query name: startDate x-example: '2018-08-15' schema: type: string format: date - description: The latest date to receive transactions from (inclusive) in: query name: endDate x-example: '2018-08-25' schema: type: string format: date - description: The earliest date the transactions were modified (inclusive) in: query name: startDateModified schema: type: string format: date - description: The latest date the transactions were modified (inclusive) in: query name: endDateModified schema: type: string format: date - description: The text to filter transactions descriptions/notes by in: query name: text schema: type: string - description: The category id to filter transactions by in: query name: categoryId x-example: std:39577c49-350f-45a4-8ec3-48ce205585fb schema: type: string - description: The account id to filter transactions by in: query name: accountId x-example: 39577c49-350f-45a4-8ec3-321321213213 schema: type: string - description: The account ids to filter transactions by in: query name: accountIds schema: type: array items: type: string - description: The project id to filter transactions by in: query name: projectId x-example: 39577c49-350f-45a4-8ec3-321321213213 schema: type: string - description: The project ids to filter transactions by in: query name: projectIds schema: type: array items: type: string - description: Filter transactions depending on whether they are credit or debit transactions in: query name: creditDebitIndicator schema: type: string pattern: ^(credit|debit)$ - description: Filter on whether transaction has an attached project in: query name: hasProject schema: type: boolean - description: Ensures ONLY the count of transactions is returned in the meta object in: query name: onlyCount schema: type: boolean default: false - description: Filter on the beginning of words of a transaction's clean description or beginning of transaction amount in: query name: contains schema: type: string - description: A property to check exists within a transaction in: query name: hasEnhancedCategory schema: type: string - description: Filter on the transaction's counterparty Id in: query name: counterpartyIds schema: type: array items: type: string - description: Filter on the transaction's counterparty Id (Deprecated) in: query name: counterpartyIdsV2 schema: type: array items: type: string - description: Counterparties version in: query name: counterpartiesVersion schema: type: string enum: - v2 - v3 - description: An enhanced category to filter transactions by in the form of ${categoryField}:${categoryValue} in: query name: enhancedCategories schema: type: string responses: '200': description: Successful Transactions Response content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Transaction' type: array links: $ref: '#/components/schemas/Links' meta: type: object type: object '400': description: Unsuccessful Response - Bad request - Missing query parameters - Missing body properties content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions post: summary: Create a single transaction for a user description: Requires **transactions:read:all** and **transactions:write:all** scopes. responses: '200': description: Successful Transaction Response content: application/json: schema: properties: data: $ref: '#/components/schemas/Transaction' links: $ref: '#/components/schemas/Links' meta: type: object type: object '400': description: Unsuccessful Response - Bad request - Missing query parameters - Missing body properties content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionPost' /transactions/unenriched: get: summary: Retrieve all transactions for a user - does not include data-enriched transaction properties description: Requires **transactions:read:all** or **transactions_unenriched:read:all** scope. Transactions usually start around the account opening date however in most cases we only retrive the last 12 months before the connection was created. The Opening Date is available at the /accounts endpoint. parameters: - description: Filter on the transaction's Ids (maximum allowed 50) in: query name: ids schema: type: array items: type: string format: uuid maxItems: 50 - description: The total number of records to retrieve in: query name: limit schema: type: integer maximum: 1000 minimum: 0 - description: The offset at which to start retrieving records in: query name: offset schema: type: integer maximum: 1000000000 minimum: 0 - description: The earliest date to receive transactions from (inclusive) in: query name: startDate x-example: '2018-08-15' schema: type: string format: date - description: The latest date to receive transactions from (inclusive) in: query name: endDate x-example: '2018-08-25' schema: type: string format: date - description: The earliest date the transactions were modified (inclusive) in: query name: startDateModified schema: type: string format: date - description: The latest date the transactions were modified (inclusive) in: query name: endDateModified schema: type: string format: date - description: The text to filter transactions descriptions by in: query name: text schema: type: string - description: The account id to filter transactions by in: query name: accountId x-example: 39577c49-350f-45a4-8ec3-321321213213 schema: type: string - description: The account ids to filter transactions by in: query name: accountIds schema: type: array items: type: string - description: Filter transactions depending on whether they are credit or debit transactions in: query name: creditDebitIndicator schema: type: string pattern: ^(credit|debit)$ - description: Ensures ONLY the count of transactions is returned in the meta object in: query name: onlyCount schema: type: boolean default: false responses: '200': description: Successful Transactions Response content: application/json: schema: properties: data: items: $ref: '#/components/schemas/TransactionUnenriched' type: array links: $ref: '#/components/schemas/Links' meta: type: object type: object '400': description: Unsuccessful Response - Bad request - Missing query parameters - Missing body properties content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions /transactions/{transactionId}: get: summary: Retrieve a single transaction that has been enriched with our categorisation engine description: Requires **transactions:read:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid - description: Counterparties version in: query name: counterpartiesVersion schema: type: string enum: - v2 - v3 responses: '200': description: Successful Transaction Response content: application/json: schema: properties: data: $ref: '#/components/schemas/Transaction' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Unsuccessful Response - Too Many Requests - Rate limit has been reached content: application/json: schema: type: object properties: code: type: string example: TooManyRequests message: type: string example: Too Many Requests retryAfterSecs: type: integer description: Number of seconds to wait before retrying the request example: 60 required: - code - message - retryAfterSecs tags: - transactions patch: summary: Update a single transaction description: Requires **transactions:read:all** and either of **transactions:write** or **transactions:write:all** scopes. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '200': description: Successful Transaction Response content: application/json: schema: properties: data: $ref: '#/components/schemas/Transaction' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionPatch' delete: summary: Delete a single transaction description: Requires **transactions:write:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '204': description: Successful Transaction Response '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions /transactions/unenriched/{transactionId}: get: summary: Retrieve a single transaction - does not include data-enriched transaction properties description: Requires **transactions:read:all** or **transactions_unenriched:read:all** scopes. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '200': description: Successful Transaction Response content: application/json: schema: properties: data: $ref: '#/components/schemas/TransactionUnenriched' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions /transactions-collection: post: summary: Create multiple transactions for a user description: Requires **transactions:read:all** and **transactions:write:all** scopes. A maximum of 50 transactions is imposed. parameters: - description: Enable categorisation of transactions in: query name: categorise schema: type: boolean responses: '200': description: Successful Transaction Response content: application/json: schema: properties: data: items: additionalProperties: false properties: id: description: The unique id of the transaction example: c390a94f-3824-4cdf-8d02-b0c5304d9f66 format: uuid type: string type: object required: - id type: array minimum: 1 maximum: 50 links: $ref: '#/components/schemas/Links' meta: type: object type: object '400': description: Unsuccessful Response - Bad request - Missing query parameters - Missing body properties content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionCollectionPost' /transactions/{transactionId}/files: get: summary: Retrieve a transactions attachments description: Requires **transactions:read:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '200': description: Successful Transaction File Response content: application/json: schema: properties: data: items: $ref: '#/components/schemas/TransactionFile' type: array links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions post: summary: Add an attachment to a transaction description: Requires **transactions:read:all** and either of **transactions:write** or **transactions:write:all** scopes. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '200': description: Successful Transaction Response content: application/json: schema: properties: data: $ref: '#/components/schemas/TransactionFile' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions requestBody: content: multipart/form-data: schema: type: object properties: file: type: string description: File to upload, limit of 10MB and must be an image or PDF. format: binary required: - file /transactions/{transactionId}/files/{fileId}: get: summary: Retrieve a transactions attachment description: Requires **transactions:read:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid - description: The file id in: path name: fileId required: true x-example: 0b4e6488-6de0-420a-8f56-fee665707d57 schema: type: string responses: '200': description: Successful Transaction File Response content: application/json: schema: properties: data: $ref: '#/components/schemas/TransactionFile' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions delete: summary: Delete a single attachment on a transaction description: Requires **transactions:read:all** and either of **transactions:write** or **transactions:write:all** scopes. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid - description: The file id in: path name: fileId required: true x-example: 0b4e64886de0420a8f56fee665707d57 schema: type: string responses: '204': description: Successful Transaction Response '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions /transactions/{transactionId}/splits: get: summary: Retrieve a transactions splits description: Requires **transactions:read:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '200': description: Successful Transaction Splits Response content: application/json: schema: properties: data: items: $ref: '#/components/schemas/TransactionSplit' type: array links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions post: summary: Split a transaction description: Requires **transactions:write:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '201': description: Successful Transaction Splits Response content: application/json: schema: properties: data: type: array items: $ref: '#/components/schemas/TransactionSplit' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions requestBody: content: application/json: schema: type: array items: $ref: '#/components/schemas/TransactionSplitPost' example: - categoryId: std:5a7ff1f3-cd2c-4676-a368-caf09f2ca35a description: Split 1 amount: 200 - categoryId: std:eac238ec-3899-49ff-8cce-e3b9f4b1aede description: Split 2 amount: 400 delete: summary: Merge split transactions description: Requires **transactions:write:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid responses: '204': description: Successful Transaction Splits Response '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions /transactions/{transactionId}/splits/{splitId}: patch: summary: Patch a transaction split description: Requires **transactions:write:all** scope. parameters: - description: The transaction id in: path name: transactionId required: true x-example: 0b4e6488-6de0-420c-8f56-fee665707d57 schema: type: string format: uuid - description: The split id in: path name: splitId required: true x-example: 0b4e6488-6de0-670c-8f56-fee665707d57 schema: type: string format: uuid responses: '200': description: Successful Transaction Splits Response content: application/json: schema: properties: data: type: array items: $ref: '#/components/schemas/TransactionSplit' links: $ref: '#/components/schemas/Links' meta: type: object type: object '401': description: Unsuccessful Response - Not authorised - Missing authorization header - Invalid access Token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Unsuccessful Response - Forbidden - Invalid scopes content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Unsuccessful Response - Resource Not found content: application/json: schema: $ref: '#/components/schemas/Error' tags: - transactions requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionSplitPatch' components: schemas: Links: additionalProperties: false properties: next: description: The url to retrieve the next page of results from format: uri type: string prev: description: The url to retrieve the previous page of results from format: uri type: string self: description: The url of the current resource(s) format: uri type: string required: - self type: object TransactionSplit: 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. example: -2323 type: integer majorUnits: description: The major units of the value, based on the values currency, eg. pounds for GBP. example: 23 type: integer minorUnits: description: The minor units of the value, based on the values currency, eg. pennies for GBP. example: 23 type: integer currency: description: The currency of the amount example: GBP type: string categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ description: description: A description of the transaction split example: Groceries contribution type: string id: description: The unique id of the transaction split example: c390a94f-3824-4cdf-8d02-b0c5304d9f66 type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e type: string example: amount: value: -2300 majorUnits: 23 minorUnits: 0 currency: GBP categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d id: c390a94f-3824-4cdf-8d02-b0c5304d9f66 projectId: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e description: Split 1 required: - amount - categoryId - description - id type: object TransactionPost: additionalProperties: false type: object properties: accountId: description: The id of the account the transaction belongs to example: c390a94f-2309-4cdf-8d02-b0c5304d9f66 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. example: -2300 type: integer required: - value type: object categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ categoryIdConfirmed: description: Flag indicating whether the user has confirmed the category id as correct example: false 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. example: '2018-07-10T12:00:00.000Z' format: date-time type: string longDescription: description: The full text description of the transactions - often as it is represented on the users bank statement example: Card Purchase SAINSBURYS S/MKTS BCC type: string shortDescription: description: A cleaned up and shorter description of the transaction, this can be edited example: Sainsburys S/mkts type: string notes: default: '' description: Arbitrary text that a user can add about a transaction example: Some notes about the transaction type: string maxLength: 500 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 example: posted type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e 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 example: income.rent type: string pattern: ^(income|expenditure)\.([a-zA-Z-]+)$ example: uk-tax-hmrc: income.rent example: accountId: c390a94f-2309-4cdf-8d02-b0c5304d9f66 amount: value: -2300 categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d categoryIdConfirmed: true longDescription: New transaction shortDescription: transaction notes: notes status: posted date: '2018-07-10T12:00:00+00:00' required: - accountId - amount - categoryId - date - longDescription TransactionSplitPatch: additionalProperties: false properties: categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ description: description: A description of the transaction split example: Groceries contribution type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e type: string example: categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: object TransactionSplitPost: additionalProperties: false properties: amount: 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. example: -2300 type: integer categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ description: description: A description of the transaction split example: Groceries contribution type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e type: string example: amount: -2300 categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d projectId: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e description: Split 1 required: - amount - categoryId - description type: object TransactionUnenriched: additionalProperties: false type: object properties: accountId: description: The id of the account the transaction belongs to example: c390a94f-2309-4cdf-8d02-b0c5304d9f66 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. example: -2323 type: integer majorUnits: description: The major units of the value, based on the values currency, eg. pounds for GBP. example: 23 type: integer minorUnits: description: The minor units of the value, based on the values currency, eg. pennies for GBP. example: 23 type: integer currency: description: The currency of the amount. It uses the ISO 4217 currency codes. example: GBP type: string required: - value - currency type: object 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. example: '2018-07-10T12:00:00.000Z' 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 example: '2018-07-10T11:39:46.506Z' format: date-time type: string dateCreated: description: The date the transaction was created example: '2018-07-10T11:39:46.506Z' 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. example: '2018-07-10T11:39:46.506Z' format: date-time type: string id: description: The unique id of the transaction example: c390a94f-3824-4cdf-8d02-b0c5304d9f66 type: string longDescription: description: The full text description of the transactions - often as it is represented on the users bank statement example: Card Purchase SAINSBURYS S/MKTS BCC type: string providerId: description: The id of the transaction the banking provider uses example: 139ccc24c1 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 example: posted type: string transactionCode: description: The ISO transaction code type: object properties: code: description: Specifies the family within a domain. example: BAC 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. example: BAC 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. example: -2323 type: integer majorUnits: description: The major units of the value, based on the values currency, eg. pounds for GBP. example: 23 type: integer minorUnits: description: The minor units of the value, based on the values currency, eg. pennies for GBP. example: 23 type: integer currency: description: The currency of the amount example: GBP 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.' example: Information type: string statementReference: description: Unique reference for the statement. This reference may be optionally populated if available. example: Merchant Name Unique Reference type: string merchantName: description: Name by which the merchant is known. example: Merchant Name type: string merchantCategoryCode: description: Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction. example: 50C 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. example: Mrs J Bloggs type: string pan: description: The PAN of the card used in the transaction. This is known by the account owner, and may be masked. example: xxxxxxxxxxxx4321 type: string cardSchemeName: description: Name of the card scheme. example: VISA type: string pattern: ^(AmericanExpress|Diners|Discover|MasterCard|VISA|.*)$ authorisationType: description: The card authorisation type. example: Contactless 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 example: Ref 123 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 example: Cash from Aubrey type: string required: - amount - date - dateModified - id - longDescription - status TransactionCollectionPost: items: additionalProperties: false type: object properties: accountId: description: The id of the account the transaction belongs to example: c390a94f-2309-4cdf-8d02-b0c5304d9f66 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. example: -2300 type: integer required: - value type: object categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ categoryIdConfirmed: description: Flag indicating whether the user has confirmed the category id as correct example: false 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. example: '2018-07-10T12:00:00.000Z' format: date-time type: string longDescription: description: The full text description of the transactions - often as it is represented on the users bank statement example: Card Purchase SAINSBURYS S/MKTS BCC type: string shortDescription: description: A cleaned up and shorter description of the transaction, this can be edited example: Sainsburys S/mkts type: string notes: default: '' description: Arbitrary text that a user can add about a transaction example: Some notes about the transaction type: string maxLength: 500 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 example: posted type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e 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 example: income.rent type: string pattern: ^(income|expenditure)\.([a-zA-Z-]+)$ example: uk-tax-hmrc: income.rent example: accountId: c390a94f-2309-4cdf-8d02-b0c5304d9f66 amount: value: -2300 categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d categoryIdConfirmed: true longDescription: New transaction shortDescription: transaction notes: notes status: posted date: '2018-07-10T12:00:00+00:00' required: - accountId - amount - categoryId - date - longDescription type: array description: List of transactions to be created or updated. Minimum 1 item required. Maximum 50 items allowed. example: - accountId: c390a94f-2309-4cdf-8d02-b0c5304d9f66 amount: value: -4500 categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d categoryIdConfirmed: true longDescription: Long description 1 shortDescription: description 1 notes: notes status: posted date: '2018-07-10T12:00:00+00:00' - accountId: c390a94f-2309-4cdf-8d02-b0c5304d9f66 amount: value: 7800 categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d longDescription: Long description 2 notes: notes status: pending date: '2018-07-10T12:00:00+00:00' TransactionFile: additionalProperties: false type: object properties: id: description: The id of the file attached to the transaction example: c390a94f-2309-4cdf-8d02-b0c5304d9f66 type: string fileType: description: The MIME type of the file example: text/html type: string fileName: description: The name of the file attachment example: receipt.png type: string url: description: The signed URL that is valid for 5 minutes that allows access to the attachment example: https://s3.amazon.com/receipt.png type: string required: - id - fileType - fileName - url Transaction: additionalProperties: false type: object properties: accountId: description: The id of the account the transaction belongs to example: c390a94f-2309-4cdf-8d02-b0c5304d9f66 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. example: -2323 type: integer majorUnits: description: The major units of the value, based on the values currency, eg. pounds for GBP. example: 23 type: integer minorUnits: description: The minor units of the value, based on the values currency, eg. pennies for GBP. example: 23 type: integer currency: description: The currency of the amount. It uses the ISO 4217 currency codes. example: GBP type: string required: - value - currency type: object categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ categoryIdConfirmed: description: Flag indicating whether the user has confirmed the category id as correct example: false 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. example: '2018-07-10T12:00:00.000Z' 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 example: '2018-07-10T11:39:46.506Z' format: date-time type: string dateCreated: description: The date the transaction was created example: '2018-07-10T11:39:46.506Z' 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. example: '2018-07-10T11:39:46.506Z' format: date-time type: string id: description: The unique id of the transaction example: c390a94f-3824-4cdf-8d02-b0c5304d9f66 type: string longDescription: description: The full text description of the transactions - often as it is represented on the users bank statement example: Card Purchase SAINSBURYS S/MKTS BCC type: string providerId: description: The id of the transaction the banking provider uses example: 139ccc24c1 type: string notes: default: '' description: Arbitrary text that a user can add about a transaction example: Some notes about the transaction type: string shortDescription: description: A cleaned up and shorter description of the transaction, this can be edited example: Sainsburys S/mkts type: string counterpartyId: description: An identifier for the counterparty example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e 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 example: posted type: string projectId: description: The project ID the transaction belongs to example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e 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 example: income.rent type: string pattern: ^(income|expenditure)\.([a-zA-Z-]+)$ example: uk-tax-hmrc: income.rent 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. example: -2323 type: integer majorUnits: description: The major units of the value, based on the values currency, eg. pounds for GBP. example: 23 type: integer minorUnits: description: The minor units of the value, based on the values currency, eg. pennies for GBP. example: 23 type: integer currency: description: The currency of the amount example: GBP type: string categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d type: string pattern: ^(std|cus):(\w|-)+$ description: description: A description of the transaction split example: Groceries contribution type: string id: description: The unique id of the transaction split example: c390a94f-3824-4cdf-8d02-b0c5304d9f66 type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e type: string example: amount: value: -2300 majorUnits: 23 minorUnits: 0 currency: GBP categoryId: std:4b0255f0-0309-4509-9e05-4b4e386f9b0d id: c390a94f-3824-4cdf-8d02-b0c5304d9f66 projectId: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e description: Split 1 required: - amount - categoryId - description - id type: object transactionCode: description: The ISO transaction code type: object properties: code: description: Specifies the family within a domain. example: BAC 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. example: BAC 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. example: -2323 type: integer majorUnits: description: The major units of the value, based on the values currency, eg. pounds for GBP. example: 23 type: integer minorUnits: description: The minor units of the value, based on the values currency, eg. pennies for GBP. example: 23 type: integer currency: description: The currency of the amount example: GBP 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.' example: Information type: string statementReference: description: Unique reference for the statement. This reference may be optionally populated if available. example: Merchant Name Unique Reference type: string merchantName: description: Name by which the merchant is known. example: Merchant Name type: string merchantCategoryCode: description: Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction. example: 50C 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. example: Mrs J Bloggs type: string pan: description: The PAN of the card used in the transaction. This is known by the account owner, and may be masked. example: xxxxxxxxxxxx4321 type: string cardSchemeName: description: Name of the card scheme. example: VISA type: string pattern: ^(AmericanExpress|Diners|Discover|MasterCard|VISA|.*)$ authorisationType: description: The card authorisation type. example: Contactless 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 example: Ref 123 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 example: Cash from Aubrey type: string required: - amount - categoryId - categoryIdConfirmed - date - dateModified - id - longDescription - notes - shortDescription - status TransactionPatch: additionalProperties: false type: object properties: accountId: description: Scope 'transactions.write.all' required. The id of the account the transaction belongs to example: c390a94f-2309-4cdf-8d02-b0c5304d9f66 type: string amount: properties: value: description: Scope 'transactions.write.all' required. 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. example: -2300 type: integer required: - value type: object categoryId: description: The category id. Standard categories are prefixed with 'std', custom categories are prefixed with 'cus' example: std:09f5c144-6d90-4228-98c6-cac1331d874b type: string pattern: ^(std|cus):(\w|-)+$ categoryIdConfirmed: description: Flag indicating whether the user has confirmed the category id as correct example: false type: boolean date: description: Scope 'transactions.write.all' required. 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. example: '2018-07-10T12:00:00.000Z' format: date-time type: string longDescription: description: Scope 'transactions.write.all' required. The full text description of the transactions - often as it is represented on the users bank statement example: Card Purchase SAINSBURYS S/MKTS BCC type: string shortDescription: description: A cleaned up and shorter description of the transaction, this can be edited example: Sainsburys S/mkts type: string notes: default: '' description: Arbitrary text that a user can add about a transaction example: Some notes about the transaction type: string maxLength: 500 status: description: Scope 'transactions.write.all' required. 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 example: posted type: string projectId: description: The project ID the transaction is associated with example: 30be8fa43f30fc285e4c479e9dfd6a1dec2bead8ee6cc6276b8dac152c565e9e 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 example: income.rent type: string pattern: ^(income|expenditure)\.([a-zA-Z-]+)$ example: uk-tax-hmrc: income.rent example: accountId: c390a94f-2309-4cdf-8d02-b0c5304d9f66 amount: value: -51000 categoryId: std:09f5c144-6d90-4228-98c6-cac1331d874b categoryIdConfirmed: true longDescription: New long description shortDescription: New short description notes: New notes status: posted date: '2018-07-10T12:00:00+00:00' Error: additionalProperties: false properties: code: description: The error code type: string message: description: The error message type: string correlationId: description: Id that identifies the request and can be used to ask for more details related to the error type: string id: description: Id of the resource type: string userId: description: UserId of the resource type: string required: - code type: object securitySchemes: Bearer: type: apiKey name: Authorization in: header