openapi: 3.0.0 info: title: Firefly III API v2.0.14 description: | This is the documentation of the Firefly III API. You can find accompanying documentation on the website of Firefly III itself (see below). Please report any bugs or issues. You may use the "Authorize" button to try the API below. This file was last generated on 2024-04-20T05:28:29+00:00 Please keep in mind that the demo site does not accept requests from curl, colly, wget, etc. You must use a browser or a tool like Postman to make requests. Too many script kiddies out there, sorry about that. contact: name: James Cole url: https://firefly-iii.org email: james@firefly-iii.org license: name: AGPLv3 url: https://www.gnu.org/licenses/agpl-3.0.en.html version: 2.0.14 servers: - url: https://demo.firefly-iii.org/api description: Firefly III demo site security: - firefly_iii_auth: [] - local_bearer_auth: [] tags: - name: about description: "These endpoints deliver general system information, version- and meta\ \ information." - name: accounts description: "Endpoints that deliver all of the user's asset, expense and other\ \ accounts (and the metadata) together with related transactions, piggy banks\ \ and other objects. Also delivers endpoints for CRUD operations for accounts." - name: attachments description: "Endpoints to manage the attachments of the authenticated user, including\ \ up- and downloading of the files." - name: autocomplete description: "Auto-complete endpoints show basic information about Firefly III models,\ \ like the name and maybe some amounts. They all support a search query and can\ \ be used to autocomplete data in forms. Autocomplete return values always have\ \ a "name"-field." - name: available_budgets description: Endpoints to manage the total available amount that the user has made available to themselves. Used in periodic budgeting. - name: bills description: Endpoints to manage a user's bills and all related objects. - name: budgets description: "Endpoints to manage a user's budgets and get info on the related\ \ objects, like limits." - name: categories description: Endpoints to manage a user's categories and get information on transactions and other related objects. - name: charts description: The "charts" endpoints deliver optimised data for charts and graphs. - name: configuration description: These endpoints allow you to manage and update the Firefly III configuration. You need to have the "owner" role to update configuration. - name: currencies description: "Endpoints to manage the currencies in Firefly III. Depending on the\ \ user's role you can also disable and enable them, or add new ones." - name: data description: The "data"-endpoints manage generic Firefly III and user-specific data. - name: insight description: "The "insight" endpoints try to deliver sums, balances and\ \ insightful information in the broadest sense of the word." - name: links description: "Endpoints to manage links between transactions, and manage the type\ \ of links available." - name: object_groups description: Endpoints to control and manage all of the user's object groups. Can only be created in conjunction with another object (for example a piggy bank) and will auto-delete when no other items are linked to it. - name: piggy_banks description: Endpoints to control and manage all of the user's piggy banks and related objects and information. - name: preferences description: "These endpoints can be used to manage the user's preferences,\ \ including some hidden ones." - name: recurrences description: "Use these endpoints to manage the user's recurring transactions,\ \ trigger the creation of transactions and manage the settings." - name: rule_groups description: Manage all of the user's groups of rules and trigger the execution of entire groups. - name: rules description: These endpoints can be used to manage all of the user's rules. Also includes triggers to execute or test rules and individual triggers. - name: search description: "Endpoints that allow you to search through the user's financial\ \ data. Different from the autocomplete endpoints, the search accepts more advanced\ \ arguments." - name: summary description: "These endpoints deliver summaries, like sums, lists of numbers and\ \ other processed information. Mainly used for the main dashboard and pretty specific\ \ for Firefly III itself." - name: tags description: This endpoint manages all of the user's tags. - name: transactions description: "The most-used endpoints in Firefly III, these endpoints are used to\ \ manage the user's transactions." - name: users description: Use these endpoints to manage the users registered within Firefly III. You need to have the "owner" role to access these endpoints. - name: webhooks description: These endpoints can be used to manage the user's webhooks and triggers them if necessary. paths: /v1/autocomplete/accounts: get: tags: - autocomplete summary: Returns all accounts of the user returned in a basic auto-complete array. operationId: getAccountsAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: date in: query description: "If the account is an asset account or a liability, the autocomplete\ \ will also return the balance of the account on this date." required: false style: form explode: true schema: type: string format: string example: 2020-09-17 - name: types in: query description: Optional filter on the account type(s) used in the autocomplete. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/AccountTypeFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of accounts with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteAccountArray' /v1/autocomplete/bills: get: tags: - autocomplete summary: Returns all bills of the user returned in a basic auto-complete array. operationId: getBillsAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of bills with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteBillArray' /v1/autocomplete/budgets: get: tags: - autocomplete summary: Returns all budgets of the user returned in a basic auto-complete array. operationId: getBudgetsAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of budgets with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteBudgetArray' /v1/autocomplete/categories: get: tags: - autocomplete summary: Returns all categories of the user returned in a basic auto-complete array. operationId: getCategoriesAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of categories with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteCategoryArray' /v1/autocomplete/currencies: get: tags: - autocomplete summary: Returns all currencies of the user returned in a basic auto-complete array. operationId: getCurrenciesAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of currencies with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteCurrencyArray' /v1/autocomplete/currencies-with-code: get: tags: - autocomplete summary: Returns all currencies of the user returned in a basic auto-complete array. This endpoint is DEPRECATED and I suggest you DO NOT use it. operationId: getCurrenciesCodeAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of currencies with very basic information and the currency code between brackets. This endpoint is DEPRECATED and I suggest you DO NOT use it. content: application/json: schema: $ref: '#/components/schemas/AutocompleteCurrencyCodeArray' /v1/autocomplete/object-groups: get: tags: - autocomplete summary: Returns all object groups of the user returned in a basic auto-complete array. operationId: getObjectGroupsAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of object groups with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteObjectGroupArray' /v1/autocomplete/piggy-banks: get: tags: - autocomplete summary: Returns all piggy banks of the user returned in a basic auto-complete array. operationId: getPiggiesAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of piggy banks with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompletePiggyArray' /v1/autocomplete/piggy-banks-with-balance: get: tags: - autocomplete summary: Returns all piggy banks of the user returned in a basic auto-complete array complemented with balance information. operationId: getPiggiesBalanceAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of piggy banks with very basic balance information. content: application/json: schema: $ref: '#/components/schemas/AutocompletePiggyBalanceArray' /v1/autocomplete/recurring: get: tags: - autocomplete summary: Returns all recurring transactions of the user returned in a basic auto-complete array. operationId: getRecurringAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of recurring transactions with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteRecurrenceArray' /v1/autocomplete/rule-groups: get: tags: - autocomplete summary: Returns all rule groups of the user returned in a basic auto-complete array. operationId: getRuleGroupsAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of rule groups with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteRuleGroupArray' /v1/autocomplete/rules: get: tags: - autocomplete summary: Returns all rules of the user returned in a basic auto-complete array. operationId: getRulesAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of rules with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteRuleArray' /v1/autocomplete/tags: get: tags: - autocomplete summary: Returns all tags of the user returned in a basic auto-complete array. operationId: getTagAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of tags with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteTagArray' /v1/autocomplete/transaction-types: get: tags: - autocomplete summary: Returns all transaction types returned in a basic auto-complete array. English only. operationId: getTransactionTypesAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transaction types with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteTransactionTypeArray' /v1/autocomplete/transactions: get: tags: - autocomplete summary: Returns all transaction descriptions of the user returned in a basic auto-complete array. operationId: getTransactionsAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transaction descriptions with very basic information. content: application/json: schema: $ref: '#/components/schemas/AutocompleteTransactionArray' /v1/autocomplete/transactions-with-id: get: tags: - autocomplete summary: "Returns all transactions, complemented with their ID, of the user\ \ returned in a basic auto-complete array. This endpoint is DEPRECATED and\ \ I suggest you DO NOT use it." operationId: getTransactionsIDAC parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: query in: query description: The autocomplete search query. required: false style: form explode: true schema: type: string format: string example: string - name: limit in: query description: The number of items returned. required: false style: form explode: true schema: type: integer format: int32 example: 10 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transactions with very basic information. This endpoint is DEPRECATED and I suggest you DO NOT use it. content: application/json: schema: $ref: '#/components/schemas/AutocompleteTransactionIDArray' /v1/chart/account/overview: get: tags: - charts summary: Dashboard chart with asset account balance information. description: | This endpoint returns the data required to generate a chart with basic asset account balance information. operationId: getChartAccountOverview parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: Line chart oriented chart information. Check out the model for more details. Each entry is a line (or bar) in the chart. content: application/json: schema: $ref: '#/components/schemas/ChartLine' /v1/data/bulk/transactions: post: tags: - data summary: "Bulk update transaction properties. For more information, see https://docs.firefly-iii.org/references/firefly-iii/api/specials/" description: | Allows you to update transactions in bulk. operationId: bulkUpdateTransactions parameters: - name: query in: query description: The JSON query. required: true style: form explode: true schema: type: string format: json responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "204": description: Empty response when the update was successful. A future improvement is to include the changed transactions. /v1/data/destroy: delete: tags: - data summary: Endpoint to destroy user data description: | A call to this endpoint deletes the requested data type. Use it with care and always with user permission. The demo user is incapable of using this endpoint. operationId: destroyData parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: objects in: query description: The type of data that you wish to destroy. You can only use one at a time. required: true style: form explode: true schema: $ref: '#/components/schemas/DataDestroyObject' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "204": description: Empty response when data has been destroyed. /v1/data/export/accounts: get: tags: - data summary: Export account data from Firefly III description: | This endpoint allows you to export your accounts from Firefly III into a file. Currently supports CSV exports only. operationId: exportAccounts parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/bills: get: tags: - data summary: Export bills from Firefly III description: | This endpoint allows you to export your bills from Firefly III into a file. Currently supports CSV exports only. operationId: exportBills parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/budgets: get: tags: - data summary: Export budgets and budget amount data from Firefly III description: | This endpoint allows you to export your budgets and associated budget data from Firefly III into a file. Currently supports CSV exports only. operationId: exportBudgets parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/categories: get: tags: - data summary: Export category data from Firefly III description: | This endpoint allows you to export your categories from Firefly III into a file. Currently supports CSV exports only. operationId: exportCategories parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/piggy-banks: get: tags: - data summary: Export piggy banks from Firefly III description: | This endpoint allows you to export your piggy banks from Firefly III into a file. Currently supports CSV exports only. operationId: exportPiggies parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/recurring: get: tags: - data summary: Export recurring transaction data from Firefly III description: | This endpoint allows you to export your recurring transactions from Firefly III into a file. Currently supports CSV exports only. operationId: exportRecurring parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/rules: get: tags: - data summary: Export rule groups and rule data from Firefly III description: | This endpoint allows you to export your rules and rule groups from Firefly III into a file. Currently supports CSV exports only. operationId: exportRules parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/tags: get: tags: - data summary: Export tag data from Firefly III description: | This endpoint allows you to export your tags from Firefly III into a file. Currently supports CSV exports only. operationId: exportTags parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/export/transactions: get: tags: - data summary: Export transaction data from Firefly III description: | This endpoint allows you to export transactions from Firefly III into a file. Currently supports CSV exports only. operationId: exportTransactions parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: accounts in: query description: | Limit the export of transactions to these accounts only. Only asset accounts will be accepted. Other types will be silently dropped. required: false style: form explode: false schema: type: string format: string example: "1,2,3" - name: type in: query description: The file type the export file (CSV is currently the only option). required: false style: form explode: true schema: $ref: '#/components/schemas/ExportFileFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The exported transaction in a file. content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream /v1/data/purge: delete: tags: - data summary: Endpoint to purge user data description: | A call to this endpoint purges all previously deleted data. Use it with care and always with user permission. The demo user is incapable of using this endpoint. operationId: purgeData parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "204": description: Empty response when data has been purged. /v1/insight/expense/expense: get: tags: - insight summary: "Insight into expenses, grouped by expense account." description: | This endpoint gives a summary of the expenses made by the user, grouped by expense account. operationId: insightExpenseExpense parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you add the accounts ID's of expense accounts, only those accounts are included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. You can combine both asset / liability and expense account ID's. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of expense accounts and expense details. Each expense acccount has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/expense/asset: get: tags: - insight summary: "Insight into expenses, grouped by asset account." description: | This endpoint gives a summary of the expenses made by the user, grouped by asset account. operationId: insightExpenseAsset parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of asset accounts and expense details. Each asset account has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/income/revenue: get: tags: - insight summary: "Insight into income, grouped by revenue account." description: | This endpoint gives a summary of the income received by the user, grouped by revenue account. operationId: insightIncomeRevenue parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you add the accounts ID's of revenue accounts, only those accounts are included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. You can combine both asset / liability and deposit account ID's. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of revenue accounts and income details. Each revenue acccount has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/income/asset: get: tags: - insight summary: "Insight into income, grouped by asset account." description: | This endpoint gives a summary of the income received by the user, grouped by asset account. operationId: insightIncomeAsset parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of asset accounts and income details. Each asset account has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/transfer/asset: get: tags: - insight summary: "Insight into transfers, grouped by account." description: | This endpoint gives a summary of the transfers made by the user, grouped by asset account or lability. operationId: insightTransfers parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of asset accounts and transfer details. Each asset account has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTransfer' /v1/insight/expense/bill: get: tags: - insight summary: "Insight into expenses, grouped by bill." description: | This endpoint gives a summary of the expenses made by the user, grouped by (any) bill. operationId: insightExpenseBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "bills[]" in: query description: | The bills to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of budget and expense details. Each budget has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/expense/no-bill: get: tags: - insight summary: "Insight into expenses, without bill." description: | This endpoint gives a summary of the expenses made by the user, including only expenses with no bill. operationId: insightExpenseNoBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of expense details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/expense/budget: get: tags: - insight summary: "Insight into expenses, grouped by budget." description: | This endpoint gives a summary of the expenses made by the user, grouped by (any) budget. operationId: insightExpenseBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "budgets[]" in: query description: | The budgets to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of budget and expense details. Each budget has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/expense/no-budget: get: tags: - insight summary: "Insight into expenses, without budget." description: | This endpoint gives a summary of the expenses made by the user, including only expenses with no budget. operationId: insightExpenseNoBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of expense details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/expense/category: get: tags: - insight summary: "Insight into expenses, grouped by category." description: | This endpoint gives a summary of the expenses made by the user, grouped by (any) category. operationId: insightExpenseCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "categories[]" in: query description: | The categories to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of category and expense details. Each category has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/expense/no-category: get: tags: - insight summary: "Insight into expenses, without category." description: | This endpoint gives a summary of the expenses made by the user, including only expenses with no category. operationId: insightExpenseNoCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of expense details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/income/category: get: tags: - insight summary: "Insight into income, grouped by category." description: | This endpoint gives a summary of the income received by the user, grouped by (any) category. operationId: insightIncomeCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "categories[]" in: query description: | The categories to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of category and income details. Each category has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/income/no-category: get: tags: - insight summary: "Insight into income, without category." description: | This endpoint gives a summary of the income received by the user, including only income with no category. operationId: insightIncomeNoCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of income details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/transfer/category: get: tags: - insight summary: "Insight into transfers, grouped by category." description: | This endpoint gives a summary of the transfers made by the user, grouped by (any) category. operationId: insightTransferCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "categories[]" in: query description: | The categories to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of category and transfer details. Each category has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/transfer/no-category: get: tags: - insight summary: "Insight into transfers, without category." description: | This endpoint gives a summary of the transfers made by the user, including only transfers with no category. operationId: insightTransferNoCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transfer details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/expense/tag: get: tags: - insight summary: "Insight into expenses, grouped by tag." description: | This endpoint gives a summary of the expenses made by the user, grouped by (any) tag. operationId: insightExpenseTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "tags[]" in: query description: | The tags to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of tag and expense details. Each tag has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/expense/no-tag: get: tags: - insight summary: "Insight into expenses, without tag." description: | This endpoint gives a summary of the expenses made by the user, including only expenses with no tag. operationId: insightExpenseNoTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of expense details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/income/tag: get: tags: - insight summary: "Insight into income, grouped by tag." description: | This endpoint gives a summary of the income received by the user, grouped by (any) tag. operationId: insightIncomeTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "tags[]" in: query description: | The tags to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of tag and income details. Each tag has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/income/no-tag: get: tags: - insight summary: "Insight into income, without tag." description: | This endpoint gives a summary of the income received by the user, including only income with no tag. operationId: insightIncomeNoTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of income details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/transfer/tag: get: tags: - insight summary: "Insight into transfers, grouped by tag." description: | This endpoint gives a summary of the transfers created by the user, grouped by (any) tag. operationId: insightTransferTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "tags[]" in: query description: | The tags to be included in the results. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of tag and transfer details. Each tag has one row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightGroup' /v1/insight/transfer/no-tag: get: tags: - insight summary: "Insight into expenses, without tag." description: | This endpoint gives a summary of the transfers made by the user, including only transfers with no tag. operationId: insightTransferNoTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only transfers from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transfer details. One row per currency. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/expense/total: get: tags: - insight summary: Insight into total expenses. description: | This endpoint gives a sum of the total expenses made by the user. operationId: insightExpenseTotal parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only withdrawals from those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of sums in different currencies. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/income/total: get: tags: - insight summary: Insight into total income. description: | This endpoint gives a sum of the total income received by the user. operationId: insightIncomeTotal parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only deposits to those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of sums in different currencies. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/insight/transfer/total: get: tags: - insight summary: Insight into total transfers. description: | This endpoint gives a sum of the total amount transfers made by the user. operationId: insightTransferTotal parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: "accounts[]" in: query description: | The accounts to be included in the results. If you include ID's of asset accounts or liabilities, only transfers between those asset accounts / liabilities will be included. Other account ID's will be ignored. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of sums in different currencies. content: application/json: schema: $ref: '#/components/schemas/InsightTotal' /v1/accounts/{id}/transactions: get: tags: - accounts summary: List all transactions related to the account. description: | This endpoint returns a list of all the transactions connected to the account. operationId: listTransactionByAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: type in: query description: Optional filter on the transaction type(s) returned. required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transactions content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' /v1/accounts/{id}/attachments: get: tags: - accounts summary: Lists all attachments. description: Lists all attachments. operationId: listAttachmentByAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' /v1/accounts/{id}/piggy-banks: get: tags: - accounts summary: List all piggy banks related to the account. description: | This endpoint returns a list of all the piggy banks connected to the account. operationId: listPiggyBankByAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of piggy banks content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankArray' /v1/accounts: get: tags: - accounts summary: List all accounts. description: | This endpoint returns a list of all the accounts owned by the authenticated user. operationId: listAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: date in: query description: | A date formatted YYYY-MM-DD. When added to the request, Firefly III will show the account's balance on that day. required: false style: form explode: true schema: type: string format: date - name: type in: query description: Optional filter on the account type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/AccountTypeFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of accounts content: application/vnd.api+json: schema: $ref: '#/components/schemas/AccountArray' post: tags: - accounts summary: Create new account. description: "Creates a new account. The data required can be submitted as a\ \ JSON body or as a list of parameters (in key=value pairs, like a webform)." operationId: storeAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array with the necessary account information or key=value pairs. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/AccountStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccountStore' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "200": description: "New account stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/AccountSingle' /v1/accounts/{id}: get: tags: - accounts summary: Get single account. description: | Returns a single account by its ID. operationId: getAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" - name: date in: query description: | A date formatted YYYY-MM-DD. When added to the request, Firefly III will show the account's balance on that day. required: false style: form explode: true schema: type: string format: date responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The requested account content: application/vnd.api+json: schema: $ref: '#/components/schemas/AccountSingle' put: tags: - accounts summary: Update existing account. description: | Used to update a single account. All fields that are not submitted will be cleared (set to NULL). The model will tell you which fields are mandatory. operationId: updateAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array or formdata with updated account information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/AccountUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AccountUpdate' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "200": description: "Updated account stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/AccountSingle' delete: tags: - accounts summary: Permanently delete account. description: | Will permanently delete an account. Any associated transactions and piggy banks are ALSO deleted. Cannot be recovered from. operationId: deleteAccount parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "204": description: Account deleted /v1/attachments: get: tags: - attachments summary: List all attachments. description: | This endpoint lists all attachments. operationId: listAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of attachments. content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' post: tags: - attachments summary: Store a new attachment. description: | Creates a new attachment. The data required can be submitted as a JSON body or as a list of parameters. You cannot use this endpoint to upload the actual file data (see below). This endpoint only creates the attachment object. operationId: storeAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary attachment information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/AttachmentStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AttachmentStore' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: "New attachment stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' /v1/attachments/{id}: get: tags: - attachments summary: Get a single attachment. description: | Get a single attachment. This endpoint only returns the available metadata for the attachment. Actual file data is handled in two other endpoints (see below). operationId: getAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the attachment. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The requested attachment content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentSingle' put: tags: - attachments summary: Update existing attachment. description: | Update the meta data for an existing attachment. This endpoint does not allow you to upload or download data. For that, see below. operationId: updateAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the attachment. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated attachment information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/AttachmentUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/AttachmentUpdate' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: "Updated attachment stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' delete: tags: - attachments summary: Delete an attachment. description: | With this endpoint you delete an attachment, including any stored file data. operationId: deleteAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the single attachment. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "204": description: Attachment deleted. /v1/attachments/{id}/download: get: tags: - attachments summary: Download a single attachment. description: | This endpoint allows you to download the binary content of a transaction. It will be sent to you as a download, using the content type "application/octet-stream" and content disposition "attachment; filename=example.pdf". operationId: downloadAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the attachment. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested attachment content: application/octet-stream: schema: type: string format: binary x-content-type: application/octet-stream "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/attachments/{id}/upload: post: tags: - attachments summary: Upload an attachment. description: | Use this endpoint to upload (and possible overwrite) the file contents of an attachment. Simply put the entire file in the body as binary data. operationId: uploadAttachment parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the attachment. required: true style: simple explode: false schema: type: string example: "123" requestBody: content: application/octet-stream: schema: type: string format: binary responses: "204": description: Upload was a success "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' /v1/available-budgets: get: tags: - available_budgets summary: List all available budget amounts. description: | Firefly III allows users to set the amount that is available to be budgeted in so-called "available budgets". For example, the user could have 1200,- available to be divided during the coming month. This amount is used on the /budgets page. This endpoint returns all of these amounts and the periods for which they are set. operationId: listAvailableBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: start in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of available budget amounts. content: application/vnd.api+json: schema: $ref: '#/components/schemas/AvailableBudgetArray' /v1/available-budgets/{id}: get: tags: - available_budgets summary: Get a single available budget. description: "Get a single available budget, by ID." operationId: getAvailableBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the available budget. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The requested available budget content: application/vnd.api+json: schema: $ref: '#/components/schemas/AvailableBudgetSingle' /v1/bills/{id}/attachments: get: tags: - bills summary: List all attachments uploaded to the bill. description: This endpoint will list all attachments linked to the bill. operationId: listAttachmentByBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the bill. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' /v1/bills/{id}/rules: get: tags: - bills summary: List all rules associated with the bill. description: This endpoint will list all rules that have an action to set the bill to this bill. operationId: listRuleByBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the bill. required: true style: simple explode: false schema: type: string example: "123" responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of rules content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleArray' /v1/bills/{id}/transactions: get: tags: - bills summary: List all transactions associated with the bill. description: This endpoint will list all transactions linked to this bill. operationId: listTransactionByBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the bill. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 - name: type in: query description: Optional filter on the transaction type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of transactions content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' /v1/bills: get: tags: - bills summary: List all bills. description: This endpoint will list all the user's bills. operationId: listBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: start in: query description: | A date formatted YYYY-MM-DD. If it is are added to the request, Firefly III will calculate the appropriate payment and paid dates. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. If it is added to the request, Firefly III will calculate the appropriate payment and paid dates. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: A list of bills content: application/vnd.api+json: schema: $ref: '#/components/schemas/BillArray' post: tags: - bills summary: Store a new bill description: Creates a new bill. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary bill information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/BillStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BillStore' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: "New bill stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/BillSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' /v1/bills/{id}: get: tags: - bills summary: Get a single bill. description: Get a single bill. operationId: getBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the bill. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD. If it is are added to the request, Firefly III will calculate the appropriate payment and paid dates. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. If it is added to the request, Firefly III will calculate the appropriate payment and paid dates. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The requested bill content: application/vnd.api+json: schema: $ref: '#/components/schemas/BillSingle' put: tags: - bills summary: Update existing bill. description: Update existing bill. operationId: updateBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the bill. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array or key=value pairs with updated bill information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/BillUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BillUpdate' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: "Updated bill stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/BillSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' delete: tags: - bills summary: Delete a bill. description: Delete a bill. This will not delete any associated rules. Will not remove associated transactions. WILL remove all associated attachments. operationId: deleteBill parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the bill. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Bill deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets/{id}/limits/{limitId}/transactions: get: tags: - budgets summary: List all transactions by a budget limit ID. description: List all the transactions within one budget limit. The start and end date are dictated by the budget limit. operationId: listTransactionByBudgetLimit parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the budget. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" - name: limitId in: path description: The ID of the budget limit. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" - name: type in: query description: Optional filter on the transaction type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets/{id}/limits: get: tags: - budgets summary: Get all limits for a budget. description: | Get all budget limits for this budget and the money spent, and money left. You can limit the list by submitting a date range as well. The "spent" array for each budget limit is NOT influenced by the start and end date of your query, but by the start and end date of the budget limit itself. operationId: listBudgetLimitByBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the requested budget. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "200": description: A list of budget limits applicable to this budget. content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetLimitArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - budgets summary: Store new budget limit. description: Store a new budget limit under this budget. operationId: storeBudgetLimit parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the budget. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array or key=value pairs with the necessary budget information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/BudgetLimitStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BudgetLimitStore' required: true responses: "200": description: "New budget limit stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetLimitSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets/{id}/limits/{limitId}: get: tags: - budgets summary: Get single budget limit. operationId: getBudgetLimit parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the budget. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" - name: limitId in: path description: The ID of the budget limit. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: minimum: 1 type: integer example: 1 responses: "200": description: The requested budget limit content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetLimitSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - budgets summary: Update existing budget limit. description: Update existing budget limit. operationId: updateBudgetLimit parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the budget. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" - name: limitId in: path description: The ID of the budget limit. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated budget limit information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/BudgetLimit' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BudgetLimit' required: true responses: "200": description: "Updated budget limit stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetLimitSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - budgets summary: Delete a budget limit. description: Delete a budget limit. operationId: deleteBudgetLimit parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the budget. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" - name: limitId in: path description: The ID of the budget limit. The budget limit MUST be associated to the budget ID. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Budget limit deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budget-limits: get: tags: - budgets summary: Get list of budget limits by date description: | Get all budget limits for for this date range. operationId: listBudgetLimit parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "200": description: A list of budget limits. content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetLimitArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets/{id}/transactions: get: tags: - budgets summary: All transactions to a budget. description: "Get all transactions linked to a budget, possibly limited by start\ \ and end" operationId: listTransactionByBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the budget. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 - name: type in: query description: Optional filter on the transaction type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets/{id}/attachments: get: tags: - budgets summary: Lists all attachments of a budget. description: Lists all attachments. operationId: listAttachmentByBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the budget. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets: get: tags: - budgets summary: List all budgets. description: "List all the budgets the user has made. If the start date and\ \ end date are submitted as well, the \"spent\" array will be updated accordingly." operationId: listBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: start in: query description: | A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to get info on how much the user has spent. You must submit both start and end. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "200": description: A list of budgets. content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - budgets summary: Store a new budget description: Creates a new budget. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary budget information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/BudgetStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BudgetStore' required: true responses: "200": description: "New budget stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/budgets/{id}: get: tags: - budgets summary: Get a single budget. description: "Get a single budget. If the start date and end date are submitted\ \ as well, the \"spent\" array will be updated accordingly." operationId: getBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the requested budget. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to get info on how much the user has spent. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to get info on how much the user has spent. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "200": description: The requested budget content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - budgets summary: Update existing budget. description: Update existing budget. This endpoint cannot be used to set budget amount limits. operationId: updateBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the budget. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated budget information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/BudgetUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BudgetUpdate' required: true responses: "200": description: "Updated budget stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - budgets summary: Delete a budget. description: Delete a budget. Transactions will not be deleted. operationId: deleteBudget parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the budget. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Budget deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/categories/{id}/transactions: get: tags: - categories summary: List all transactions in a category. description: "List all transactions in a category, optionally limited to the\ \ date ranges specified." operationId: listTransactionByCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the category. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the result list. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the result list. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 - name: type in: query description: Optional filter on the transaction type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/categories/{id}/attachments: get: tags: - categories summary: Lists all attachments. description: Lists all attachments. operationId: listAttachmentByCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the category. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/categories: get: tags: - categories summary: List all categories. description: List all categories. operationId: listCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of categories. content: application/vnd.api+json: schema: $ref: '#/components/schemas/CategoryArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - categories summary: Store a new category description: Creates a new category. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary category information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/Category' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Category' required: true responses: "200": description: "New category stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/CategorySingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/categories/{id}: get: tags: - categories summary: Get a single category. description: Get a single category. operationId: getCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the category. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to show spent and earned info. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to show spent and earned info. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 responses: "200": description: The requested category content: application/vnd.api+json: schema: $ref: '#/components/schemas/CategorySingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - categories summary: Update existing category. description: Update existing category. operationId: updateCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the category. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated category information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/CategoryUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CategoryUpdate' required: true responses: "200": description: "Updated category stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/CategorySingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - categories summary: Delete a category. description: Delete a category. Transactions will not be removed. operationId: deleteCategory parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the category. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Category deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/link-types/{id}/transactions: get: tags: - links summary: List all transactions under this link type. description: | List all transactions under this link type, both the inward and outward transactions. operationId: listTransactionByLinkType parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the link type. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the results. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the results. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: type in: query description: Optional filter on the transaction type(s) returned. required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions content: application/json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/link-types: get: tags: - links summary: List all types of links. description: | List all the link types the system has. These include the default ones as well as any new ones. operationId: listLinkType parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of link types. content: application/vnd.api+json: schema: $ref: '#/components/schemas/LinkTypeArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - links summary: Create a new link type description: "Creates a new link type. The data required can be submitted as\ \ a JSON body or as a list of parameters (in key=value pairs, like a webform)." operationId: storeLinkType parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array with the necessary link type information or key=value pairs. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/LinkType' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LinkType' required: true responses: "200": description: "New link type stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/LinkTypeSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/link-types/{id}: get: tags: - links summary: Get single a link type. description: | Returns a single link type by its ID. operationId: getLinkType parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the link type. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested link type content: application/vnd.api+json: schema: $ref: '#/components/schemas/LinkTypeSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - links summary: Update existing link type. description: | Used to update a single link type. All fields that are not submitted will be cleared (set to NULL). The model will tell you which fields are mandatory. You cannot update some of the system provided link types, indicated by the editable=false flag when you list it. operationId: updateLinkType parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the link type. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array or formdata with updated link type information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/LinkTypeUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/LinkTypeUpdate' required: true responses: "200": description: "Updated link type stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/LinkTypeSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - links summary: Permanently delete link type. description: | Will permanently delete a link type. The links between transactions will be removed. The transactions themselves remain. You cannot delete some of the system provided link types, indicated by the editable=false flag when you list it. operationId: deleteLinkType parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the link type. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Link type deleted "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transaction-links: get: tags: - links summary: List all transaction links. description: | List all the transaction links. operationId: listTransactionLink parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of transaction links content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionLinkArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - links summary: Create a new link between transactions description: Store a new link between two transactions. For this end point you need the journal_id from a transaction. operationId: storeTransactionLink parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array with the necessary link type information or key=value pairs. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/TransactionLinkStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TransactionLinkStore' required: true responses: "200": description: "New transaction link stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionLinkSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transaction-links/{id}: get: tags: - links summary: Get a single link. description: | Returns a single link by its ID. operationId: getTransactionLink parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction link. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested link content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionLinkSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - links summary: Update an existing link between transactions. description: | Used to update a single existing link. operationId: updateTransactionLink parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction link. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array or formdata with updated link type information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/TransactionLinkUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TransactionLinkUpdate' required: true responses: "200": description: "Updated link type stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionLinkSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - links summary: Permanently delete link between transactions. description: | Will permanently delete link. Transactions remain. operationId: deleteTransactionLink parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction link. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Transaction link deleted "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/object-groups/{id}/piggy-banks: get: tags: - object_groups summary: List all piggy banks related to the object group. description: | This endpoint returns a list of all the piggy banks connected to the object group. operationId: listPiggyBankByObjectGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of piggy banks content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/object-groups/{id}/bills: get: tags: - object_groups summary: List all bills with this object group. description: List all bills with this object group. operationId: listBillByObjectGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the account. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of bills. content: application/vnd.api+json: schema: $ref: '#/components/schemas/BillArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/object-groups: get: tags: - object_groups summary: List all oject groups. description: List all oject groups. operationId: listObjectGroups parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of object groups content: application/vnd.api+json: schema: $ref: '#/components/schemas/ObjectGroupArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/object-groups/{id}: get: tags: - object_groups summary: Get a single object group. description: Get a single object group. operationId: getObjectGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the object group. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested object group content: application/vnd.api+json: schema: $ref: '#/components/schemas/ObjectGroupSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - object_groups summary: Update existing object group. description: Update existing object group. operationId: updateObjectGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the object group required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated piggy bank information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/ObjectGroupUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ObjectGroupUpdate' required: true responses: "200": description: "Updated object group stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/ObjectGroupSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - object_groups summary: Delete a object group. description: Delete a object group. operationId: deleteObjectGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the object group. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Object group deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/piggy-banks/{id}/events: get: tags: - piggy_banks summary: List all events linked to a piggy bank. description: List all events linked to a piggy bank (adding and removing money). operationId: listEventByPiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the piggy bank required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of piggy bank related events content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankEventArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/piggy-banks/{id}/attachments: get: tags: - piggy_banks summary: Lists all attachments. description: Lists all attachments. operationId: listAttachmentByPiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the piggy bank. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/piggy-banks: get: tags: - piggy_banks summary: List all piggy banks. description: List all piggy banks. operationId: listPiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of piggy banks content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - piggy_banks summary: Store a new piggy bank description: Creates a new piggy bank. The data required can be submitted as a JSON body or as a list of parameters. operationId: storePiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary piggy bank information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/PiggyBankStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PiggyBankStore' required: true responses: "200": description: "New piggy bank stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/piggy-banks/{id}: get: tags: - piggy_banks summary: Get a single piggy bank. description: Get a single piggy bank. operationId: getPiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the piggy bank. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested piggy bank content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - piggy_banks summary: Update existing piggy bank. description: Update existing piggy bank. operationId: updatePiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the piggy bank required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated piggy bank information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/PiggyBankUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PiggyBankUpdate' required: true responses: "200": description: "Updated piggy bank stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - piggy_banks summary: Delete a piggy bank. description: Delete a piggy bank. operationId: deletePiggyBank parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the piggy bank. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Piggy bank deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/recurrences/{id}/transactions: get: tags: - recurrences summary: List all transactions created by a recurring transaction. description: "List all transactions created by a recurring transaction, optionally\ \ limited to the date ranges specified." operationId: listTransactionByRecurrence parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the recurring transaction. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD. Both the start and end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. Both the start and end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: type in: query description: Optional filter on the transaction type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/recurrences: get: tags: - recurrences summary: List all recurring transactions. description: List all recurring transactions. operationId: listRecurrence parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of recurring transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/RecurrenceArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - recurrences summary: Store a new recurring transaction description: Creates a new recurring transaction. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeRecurrence parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary recurring transaction information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/RecurrenceStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RecurrenceStore' required: true responses: "200": description: "New recurring transaction stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/RecurrenceSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/recurrences/{id}: get: tags: - recurrences summary: Get a single recurring transaction. description: Get a single recurring transaction. operationId: getRecurrence parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the recurring transaction. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested recurring transaction content: application/vnd.api+json: schema: $ref: '#/components/schemas/RecurrenceSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - recurrences summary: Update existing recurring transaction. description: Update existing recurring transaction. operationId: updateRecurrence parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the recurring transaction. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated recurring transaction information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/RecurrenceUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RecurrenceUpdate' required: true responses: "200": description: "Updated recurring transaction stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/RecurrenceSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - recurrences summary: Delete a recurring transaction. description: Delete a recurring transaction. Transactions created by the recurring transaction will not be deleted. operationId: deleteRecurrence parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the recurring transaction. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Recurring transaction deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rule-groups/{id}/rules: get: tags: - rule_groups summary: List rules in this rule group. description: List rules in this rule group. operationId: listRuleByGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the rule group. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of rules. content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rule-groups/{id}/test: get: tags: - rule_groups summary: Test which transactions would be hit by the rule group. No changes will be made. description: Test which transactions would be hit by the rule group. No changes will be made. Limit the result if you want to. operationId: testRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the rule group. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: search_limit in: query description: | Maximum number of transactions Firefly III will try. Don't set this too high, or it will take Firefly III very long to run the test. I suggest a max of 200. required: false style: form explode: true schema: type: integer - name: triggered_limit in: query description: | Maximum number of transactions the rule group can actually trigger on, before Firefly III stops. I would suggest setting this to 10 or 15. Don't go above the user's page size, because browsing to page 2 or 3 of a test result would fire the test again, making any navigation efforts very slow. required: false style: form explode: true schema: type: integer - name: "accounts[]" in: query description: | Limit the testing of the rule group to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "200": description: A list of transactions that would be changed by any of the rules of the rule group. No changes will be made. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rule-groups/{id}/trigger: post: tags: - rule_groups summary: Fire the rule group on your transactions. description: Fire the rule group on your transactions. Changes will be made by the rules in the rule group! Limit the result if you want to. operationId: fireRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule group. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. Both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. Both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: "accounts[]" in: query description: | Limit the triggering of the rule group to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "204": description: The rules in the group are executed. Due to the setup of this function (asynchronous job execution) the result cannot be displayed. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rule-groups: get: tags: - rule_groups summary: List all rule groups. description: List all rule groups. operationId: listRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of rule groups. content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleGroupArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - rule_groups summary: Store a new rule group. description: Creates a new rule group. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary rule group information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/RuleGroupStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RuleGroupStore' required: true responses: "200": description: "New rule group stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleGroupSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rule-groups/{id}: get: tags: - rule_groups summary: Get a single rule group. description: "Get a single rule group. This does not include the rules. For\ \ that, see below." operationId: getRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule group. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested rule group content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleGroupSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - rule_groups summary: Update existing rule group. description: Update existing rule group. operationId: updateRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule group. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated rule group information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/RuleGroupUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RuleGroupUpdate' required: true responses: "200": description: "Updated rule group stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleGroupSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - rule_groups summary: Delete a rule group. description: Delete a rule group. operationId: deleteRuleGroup parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule group. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Rule group deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rules/{id}/test: get: tags: - rules summary: Test which transactions would be hit by the rule. No changes will be made. description: Test which transactions would be hit by the rule. No changes will be made. Limit the result if you want to. operationId: testRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the test will be applied to. Both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: "accounts[]" in: query description: | Limit the testing of the rule to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "200": description: A list of transactions that would be changed by the rule. No changes will be made. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rules/{id}/trigger: post: tags: - rules summary: Fire the rule on your transactions. description: Fire the rule group on your transactions. Changes will be made by the rules in the group! Limit the result if you want to. operationId: fireRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule. required: true style: simple explode: false schema: type: string example: "123" - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. If the start date is not present, it will be set to one year ago. If you use this field, both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the transactions the actions will be applied to. If the end date is not present, it will be set to today. If you use this field, both the start date and the end date must be present. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: "accounts[]" in: query description: | Limit the triggering of the rule to these asset accounts or liabilities. Only asset accounts and liabilities will be accepted. Other types will be silently dropped. required: false style: form explode: true schema: type: array example: - 1 - 2 - 3 items: type: integer format: int64 responses: "204": description: The rules in the group are executed. Due to the setup of this function (asynchronous job execution) the result cannot be displayed. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rules: get: tags: - rules summary: List all rules. description: List all rules. operationId: listRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of rules content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - rules summary: Store a new rule description: Creates a new rule. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary rule information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/RuleStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RuleStore' required: true responses: "200": description: "New rule stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/rules/{id}: get: tags: - rules summary: Get a single rule. description: Get a single rule. operationId: getRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the object. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested rule content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - rules summary: Update existing rule. description: Update existing rule. operationId: updateRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the object. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated rule information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/RuleUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RuleUpdate' required: true responses: "200": description: "Updated rule stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - rules summary: Delete an rule. description: Delete an rule. operationId: deleteRule parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the rule. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Rule deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/tags/{tag}/attachments: get: tags: - tags summary: Lists all attachments. description: Lists all attachments. operationId: listAttachmentByTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: tag in: path description: Either the tag itself or the tag ID. required: true style: simple explode: false schema: type: string format: string example: groceries responses: "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/tags/{tag}/transactions: get: tags: - tags summary: List all transactions with this tag. description: List all transactions with this tag. operationId: listTransactionByTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: tag in: path description: Either the tag itself or the tag ID. required: true style: simple explode: false schema: type: string format: string example: groceries - name: start in: query description: | A date formatted YYYY-MM-DD. This is the start date of the selected range (inclusive). required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. This is the end date of the selected range (inclusive). required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: type in: query description: Optional filter on the transaction type(s) returned. required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/tags: get: tags: - tags summary: List all tags. description: List all of the user's tags. operationId: listTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of tags content: application/vnd.api+json: schema: $ref: '#/components/schemas/TagArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - tags summary: Store a new tag description: Creates a new tag. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary tag information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/TagModelStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TagModelStore' required: true responses: "200": description: "New tag stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/TagSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/tags/{tag}: get: tags: - tags summary: Get a single tag. description: Get a single tag. operationId: getTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: tag in: path description: "Either the tag itself or the tag ID. If you use the tag itself,\ \ and it contains international (non-ASCII) characters, your milage may\ \ vary." required: true style: simple explode: false schema: type: string format: string example: groceries responses: "200": description: The requested tag content: application/vnd.api+json: schema: $ref: '#/components/schemas/TagSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - tags summary: Update existing tag. description: Update existing tag. operationId: updateTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: tag in: path description: "Either the tag itself or the tag ID. If you use the tag itself,\ \ and it contains international (non-ASCII) characters, your milage may\ \ vary." required: true style: simple explode: false schema: type: string format: string example: groceries requestBody: description: JSON array with updated tag information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/TagModelUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TagModelUpdate' required: true responses: "200": description: "Updated tag stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/TagSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - tags summary: Delete an tag. description: Delete an tag. operationId: deleteTag parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: tag in: path description: "Either the tag itself or the tag ID. If you use the tag itself,\ \ and it contains international (non-ASCII) characters, your milage may\ \ vary." required: true style: simple explode: false schema: type: string format: string example: groceries responses: "204": description: Tag deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/accounts: get: tags: - currencies summary: List all accounts with this currency. description: List all accounts with this currency. operationId: listAccountByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD - name: date in: query description: | A date formatted YYYY-MM-DD. When added to the request, Firefly III will show the account's balance on that day. required: false style: form explode: true schema: type: string format: date - name: type in: query description: Optional filter on the account type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/AccountTypeFilter' responses: "200": description: A list of accounts content: application/vnd.api+json: schema: $ref: '#/components/schemas/AccountArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/available-budgets: get: tags: - currencies summary: List all available budgets with this currency. description: List all available budgets with this currency. operationId: listAvailableBudgetByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: EUR responses: "200": description: A list of available budgets content: application/vnd.api+json: schema: $ref: '#/components/schemas/AvailableBudgetArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/bills: get: tags: - currencies summary: List all bills with this currency. description: List all bills with this currency. operationId: listBillByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD responses: "200": description: A list of bills. content: application/vnd.api+json: schema: $ref: '#/components/schemas/BillArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/budget_limits: get: tags: - currencies summary: List all budget limits with this currency description: List all budget limits with this currency operationId: listBudgetLimitByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD - name: start in: query description: Start date for the budget limit list. required: false style: form explode: true schema: type: string format: date example: 2018-01-01 - name: end in: query description: End date for the budget limit list. required: false style: form explode: true schema: type: string format: date example: 2018-01-31 responses: "200": description: A list of budget limits. content: application/vnd.api+json: schema: $ref: '#/components/schemas/BudgetLimitArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/recurrences: get: tags: - currencies summary: List all recurring transactions with this currency. description: List all recurring transactions with this currency. operationId: listRecurrenceByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: EUR responses: "200": description: A list of recurring transactions content: application/vnd.api+json: schema: $ref: '#/components/schemas/RecurrenceArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/rules: get: tags: - currencies summary: List all rules with this currency. description: List all rules with this currency. operationId: listRuleByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD responses: "200": description: A list of rules content: application/vnd.api+json: schema: $ref: '#/components/schemas/RuleArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/transactions: get: tags: - currencies summary: List all transactions with this currency. description: List all transactions with this currency. operationId: listTransactionByCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD - name: start in: query description: | A date formatted YYYY-MM-DD, to limit the list of transactions. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD, to limit the list of transactions. required: false style: form explode: true schema: type: string format: date example: 2018-12-31 - name: type in: query description: Optional filter on the transaction type(s) returned required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies: get: tags: - currencies summary: List all currencies. description: List all currencies. operationId: listCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of currencies. content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencyArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - currencies summary: Store a new currency description: Creates a new currency. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary currency information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/CurrencyStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CurrencyStore' required: true responses: "200": description: "New currency stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencySingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/enable: post: tags: - currencies summary: Enable a single currency. description: Enable a single currency. operationId: enableCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD responses: "204": description: Currency was enabled. content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencySingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/disable: post: tags: - currencies summary: Disable a currency. description: Disable a currency. operationId: disableCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string example: GBP responses: "204": description: Currency was disabled. content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencySingle' "409": description: "Currency cannot be disabled, because it is still in use." "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}/default: post: tags: - currencies summary: Make currency default currency. description: "Make this currency the default currency for the user. If the currency\ \ is not enabled, it will be enabled as well." operationId: defaultCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD responses: "204": description: Currency has been made the default currency. content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencySingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/{code}: get: tags: - currencies summary: Get a single currency. description: Get a single currency. operationId: getCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: USD responses: "200": description: The requested currency content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencySingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - currencies summary: Update existing currency. description: Update existing currency. operationId: updateCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: EUR requestBody: description: JSON array with updated currency information. See the model for the exact specifications. content: application/vnd.api+json: schema: $ref: '#/components/schemas/CurrencyUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CurrencyUpdate' required: true responses: "200": description: "Updated currency stored, result in response" content: application/json: schema: $ref: '#/components/schemas/CurrencySingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - currencies summary: Delete a currency. description: Delete a currency. operationId: deleteCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: code in: path description: The currency code. required: true style: simple explode: false schema: type: string format: string example: GBP responses: "204": description: Currency deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/currencies/default: get: tags: - currencies summary: Get the user's default currency. description: Get the user's default currency. operationId: getDefaultCurrency parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid responses: "200": description: The default currency content: application/json: schema: $ref: '#/components/schemas/CurrencySingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transaction-journals/{id}/links: get: tags: - transactions summary: Lists all the transaction links for an individual journal (individual split). description: "Lists all the transaction links for an individual journal (a split).\ \ Don't use the group ID, you need the actual underlying journal (the split)." operationId: listLinksByJournal parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the transaction journal / the split. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of transaction links. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionLinkArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transaction-journals/{id}: get: tags: - transactions summary: "Get a single transaction, based on one of the underlying transaction\ \ journals (transaction splits)." description: Get a single transaction by underlying journal (split). operationId: getTransactionByJournal parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction journal (split). required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested transaction. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - transactions summary: Delete split from transaction description: Delete an individual journal (split) from a transaction. operationId: deleteTransactionJournal parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction journal (the split) you wish to delete. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Transaction journal (split) deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transactions/{id}/attachments: get: tags: - transactions summary: Lists all attachments. description: Lists all attachments. operationId: listAttachmentByTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the transaction. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of attachments content: application/vnd.api+json: schema: $ref: '#/components/schemas/AttachmentArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transactions/{id}/piggy-bank-events: get: tags: - transactions summary: Lists all piggy bank events. description: Lists all piggy bank events. operationId: listEventByTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The ID of the transaction. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of piggy bank events. content: application/vnd.api+json: schema: $ref: '#/components/schemas/PiggyBankEventArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transactions: get: tags: - transactions summary: | List all the user's transactions. description: List all the user's transactions. operationId: listTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: start in: query description: | A date formatted YYYY-MM-DD. This is the start date of the selected range (inclusive). required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: end in: query description: | A date formatted YYYY-MM-DD. This is the end date of the selected range (inclusive). required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: type in: query description: Optional filter on the transaction type(s) returned. required: false style: form explode: true schema: $ref: '#/components/schemas/TransactionTypeFilter' responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - transactions summary: Store a new transaction description: Creates a new transaction. The data required can be submitted as a JSON body or as a list of parameters. operationId: storeTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary transaction information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/TransactionStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TransactionStore' required: true responses: "200": description: "New transaction stored(s), result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/transactions/{id}: get: tags: - transactions summary: Get a single transaction. description: Get a single transaction. operationId: getTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested transaction. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - transactions summary: "Update existing transaction. For more information, see https://docs.firefly-iii.org/references/firefly-iii/api/specials/" description: Update an existing transaction. operationId: updateTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated transaction information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/TransactionUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/TransactionUpdate' required: true responses: "200": description: "Updated transaction stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - transactions summary: Delete a transaction. description: Delete a transaction. operationId: deleteTransaction parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The ID of the transaction. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Transaction deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/search/accounts: get: tags: - search summary: Search for accounts description: Search for accounts operationId: searchAccounts parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: query in: query description: The query you wish to search for. required: true style: form explode: true schema: type: string example: checking - name: type in: query description: The type of accounts you wish to limit the search to. required: false style: form explode: true schema: $ref: '#/components/schemas/AccountTypeFilter' - name: field in: query description: The account field(s) you want to search in. required: true style: form explode: true schema: $ref: '#/components/schemas/AccountSearchFieldFilter' responses: "200": description: A list of accounts. content: application/vnd.api+json: schema: $ref: '#/components/schemas/AccountArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/search/transactions: get: tags: - search summary: Search for transactions description: Searches through the users transactions. externalDocs: description: Search Documentation url: https://docs.firefly-iii.org/how-to/firefly-iii/features/search/ operationId: searchTransactions parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: query in: query description: The query you wish to search for. required: true style: form explode: true schema: type: string example: groceries responses: "200": description: A list of transactions. content: application/vnd.api+json: schema: $ref: '#/components/schemas/TransactionArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/summary/basic: get: tags: - summary summary: Returns basic sums of the users data. description: | Returns basic sums of the users data, like the net worth, spent and earned amounts. It is multi-currency, and is used in Firefly III to populate the dashboard. operationId: getBasicSummary parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: start in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: end in: query description: | A date formatted YYYY-MM-DD. required: true style: form explode: true schema: type: string format: date - name: currency_code in: query description: | A currency code like EUR or USD, to filter the result. required: false style: form explode: true schema: type: string format: string responses: "200": description: "An array of sums. It depends on the user what you can expect\ \ to get back, so please try this out on the demo site." content: application/vnd.api+json: schema: $ref: '#/components/schemas/BasicSummary' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/about: get: tags: - about summary: System information end point. description: | Returns general system information and versions of the (supporting) software. operationId: getAbout parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The available system information content: application/json: schema: $ref: '#/components/schemas/SystemInfo' /v1/about/user: get: tags: - about summary: Currently authenticated user endpoint. description: | Returns the currently authenticated user. operationId: getCurrentUser parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: The user content: application/vnd.api+json: schema: $ref: '#/components/schemas/UserSingle' /v1/configuration: get: tags: - configuration summary: Get Firefly III system configuration values. description: Returns all editable and not-editable configuration values for this Firefly III installation operationId: getConfiguration parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: System configuration values content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ConfigurationArray' application/json: schema: $ref: '#/components/schemas/ConfigurationArray' /v1/configuration/{name}: get: tags: - configuration summary: Get a single Firefly III system configuration value description: Returns one configuration variable for this Firefly III installation operationId: getSingleConfiguration parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: name in: path description: The name of the configuration value you want to know. required: true style: simple explode: false schema: $ref: '#/components/schemas/ConfigValueFilter' responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: One system configuration value content: application/json: schema: $ref: '#/components/schemas/ConfigurationSingle' put: tags: - configuration summary: Update configuration value description: Set a single configuration value. Not all configuration values can be updated so the list of accepted configuration variables is small. operationId: setConfiguration parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: name in: path description: The name of the configuration value you want to update. required: true style: simple explode: false schema: $ref: '#/components/schemas/ConfigValueUpdateFilter' requestBody: description: JSON array with the necessary account information or key=value pairs. See the model for the exact specifications. content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ConfigurationUpdate' application/json: schema: $ref: '#/components/schemas/ConfigurationUpdate' required: true responses: "200": description: "New configuration value stored, result in response." content: application/json: schema: $ref: '#/components/schemas/ConfigurationSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/cron/{cliToken}: get: tags: - about summary: Cron job endpoint description: | Firefly III has one endpoint for its various cron related tasks. Send a GET to this endpoint to run the cron. The cron requires the CLI token to be present. The cron job will fire for all users. operationId: getCron parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: cliToken in: path description: "The CLI token of any user in Firefly III, required to run the\ \ cron job." required: true style: simple explode: false schema: type: string format: string example: d5ea6b5fb774618dd6ad6ba6e0a7f55c - name: date in: query description: | A date formatted YYYY-MM-DD. This can be used to make the cron job pretend it's running on another day. required: false style: form explode: true schema: type: string format: date example: 2018-09-17 - name: force in: query description: | Forces the cron job to fire, regardless of whether it has fired before. This may result in double transactions or weird budgets, so be careful. required: false style: form explode: true schema: type: boolean format: boolean example: false responses: "200": description: The result of the cron job(s) firing. content: application/json: schema: $ref: '#/components/schemas/CronResult' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/users: get: tags: - users summary: List all users. description: List all the users in this instance of Firefly III. operationId: listUser parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of users. content: application/vnd.api+json: schema: $ref: '#/components/schemas/UserArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - users summary: Store a new user description: | Creates a new user. The data required can be submitted as a JSON body or as a list of parameters. The user will be given a random password, which they can reset using the "forgot password" function. operationId: storeUser parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary user information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' required: true responses: "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' "200": description: "New user stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/UserSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' /v1/users/{id}: get: tags: - users summary: Get a single user. description: Gets all info of a single user. operationId: getUser parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The user ID. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested user. content: application/vnd.api+json: schema: $ref: '#/components/schemas/UserSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - users summary: Update an existing user's information. description: Update existing user. operationId: updateUser parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The user ID. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated user information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' required: true responses: "200": description: "Updated user stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/UserSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - users summary: Delete a user. description: Delete a user. You cannot delete the user you're authenticated with. This cannot be undone. Be careful! operationId: deleteUser parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The user ID. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: User deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/preferences: get: tags: - preferences summary: List all users preferences. description: List all of the preferences of the user. operationId: listPreference parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of preferences. content: application/vnd.api+json: schema: $ref: '#/components/schemas/PreferenceArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - preferences summary: Store a new preference for this user. description: "This endpoint creates a new preference. The name and data are\ \ free-format, and entirely up to you. If the preference is not used in Firefly\ \ III itself it may not be configurable through the user interface, but you\ \ can use this endpoint to persist custom data for your own app." operationId: storePreference parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array with the necessary preference information or key=value pairs. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/Preference' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Preference' required: true responses: "200": description: "New account stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/PreferenceSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/preferences/{name}: get: tags: - preferences summary: Return a single preference. description: Return a single preference and the value. operationId: getPreference parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: name in: path description: The name of the preference. required: true style: simple explode: false schema: type: string format: string example: currencyPreference responses: "200": description: A single preference. content: application/vnd.api+json: schema: $ref: '#/components/schemas/PreferenceSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - preferences summary: Update preference description: Update a user's preference. operationId: updatePreference parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: name in: path description: The name of the preference. Will always overwrite. Will be created if it does not exist. required: true style: simple explode: false schema: type: string format: string example: currencyPreference requestBody: description: JSON array or key=value pairs with the necessary preference information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/PreferenceUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PreferenceUpdate' required: true responses: "200": description: Updated preference. content: application/vnd.api+json: schema: $ref: '#/components/schemas/PreferenceSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/webhooks/{id}/messages: get: tags: - webhooks summary: Get all the messages of a single webhook. description: When a webhook is triggered the actual message that will be send is stored in a "message". You can view and analyse these messages. operationId: getWebhookMessages parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: A list of webhook messages. content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookMessageArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/webhooks/{id}/messages/{messageId}: get: tags: - webhooks summary: Get a single message from a webhook. description: When a webhook is triggered it will store the actual content of the webhook in a webhook message. You can view and analyse a single one using this endpoint. operationId: getSingleWebhookMessage parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" - name: messageId in: path description: The webhook message ID. required: true style: simple explode: false schema: type: integer example: 1 responses: "200": description: A single webhook message. content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookMessageSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - webhooks summary: Delete a webhook message. description: Delete a webhook message. Any time a webhook is triggered the message is stored before it's sent. You can delete them before or after sending. operationId: deleteWebhookMessage parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" - name: messageId in: path description: The webhook message ID. required: true style: simple explode: false schema: type: integer example: 1 responses: "204": description: Webhook message deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/webhooks/{id}/messages/{messageId}/attempts: get: tags: - webhooks summary: Get all the failed attempts of a single webhook message. description: When a webhook message fails to send it will store the failure in an "attempt". You can view and analyse these. Webhook messages that receive too many attempts (failures) will not be sent again. You must first clear out old attempts before the message can go out again. operationId: getWebhookMessageAttempts parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" - name: messageId in: path description: The webhook message ID. required: true style: simple explode: false schema: type: integer example: 1 responses: "200": description: A list of webhook attempts. content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookAttemptArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/webhooks/{id}/messages/{messageId}/attempts/{attemptId}: get: tags: - webhooks summary: Get a single failed attempt from a single webhook message. description: When a webhook message fails to send it will store the failure in an "attempt". You can view and analyse these. Webhooks messages that receive too many attempts (failures) will not be fired. You must first clear out old attempts and try again. This endpoint shows you the details of a single attempt. The ID of the attempt must match the corresponding webhook and webhook message. operationId: getSingleWebhookMessageAttempt parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" - name: messageId in: path description: The webhook message ID. required: true style: simple explode: false schema: type: integer example: 1 - name: attemptId in: path description: The webhook attempt ID. required: true style: simple explode: false schema: type: integer example: 1 responses: "200": description: A single webhook attempt. content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookAttemptSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - webhooks summary: Delete a webhook attempt. description: "Delete a webhook message attempt. If you delete all attempts for\ \ a webhook message, Firefly III will (once again) assume all is well with\ \ the webhook message and will try to send it again." operationId: deleteWebhookMessageAttempt parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" - name: messageId in: path description: The webhook message ID. required: true style: simple explode: false schema: type: integer example: 1 - name: attemptId in: path description: The webhook message attempt ID. required: true style: simple explode: false schema: type: integer example: 1 responses: "204": description: Webhook message attempt deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/webhooks/{id}/submit: post: tags: - webhooks summary: Submit messages for a webhook. description: "This endpoint will submit any open messages for this webhook.\ \ This is an asynchronous operation, so you can't see the result. Refresh\ \ the webhook message and/or the webhook message attempts to see the results.\ \ This may take some time if the webhook receiver is slow." operationId: submitWebook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: OK! "204": description: "No messages to send, so did nothing." "404": description: Webhook not found. "500": description: Error while sending. /v1/webhooks/{id}/trigger-transaction/{transactionId}: post: tags: - webhooks summary: Trigger webhook for a given transaction. description: "This endpoint will execute this webhook for a given transaction\ \ ID. This is an asynchronous operation, so you can't see the result. Refresh\ \ the webhook message and/or the webhook message attempts to see the results.\ \ This may take some time if the webhook receiver is slow." operationId: triggerTransactionWebhook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" - name: transactionId in: path description: The transaction ID. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Webhook triggered successfully. "404": description: Webhook or transaction not found. "500": description: Error while sending. /v1/webhooks: get: tags: - webhooks summary: List all webhooks. description: List all the user's webhooks. operationId: listWebhook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: limit in: query description: Number of items per page. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 10 - name: page in: query description: Page number. The default pagination is per 50 items. required: false style: form explode: true schema: type: integer format: int32 example: 1 responses: "200": description: A list of webhooks. content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookArray' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' post: tags: - webhooks summary: Store a new webhook description: | Creates a new webhook. The data required can be submitted as a JSON body or as a list of parameters. The webhook will be given a random secret. operationId: storeWebhook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid requestBody: description: JSON array or key=value pairs with the necessary webhook information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/WebhookStore' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/WebhookStore' required: true responses: "200": description: "New webhook stored, result in response." content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' /v1/webhooks/{id}: get: tags: - webhooks summary: Get a single webhook. description: Gets all info of a single webhook. operationId: getWebhook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" responses: "200": description: The requested webhook. content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookSingle' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' put: tags: - webhooks summary: Update existing webhook. description: "Update an existing webhook's information. If you wish to reset\ \ the secret, submit any value as the \"secret\". Firefly III will take this\ \ as a hint and reset the secret of the webhook." operationId: updateWebhook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" requestBody: description: JSON array with updated webhook information. See the model for the exact specifications. content: application/json: schema: $ref: '#/components/schemas/WebhookUpdate' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/WebhookUpdate' required: true responses: "200": description: "Updated webhook stored, result in response" content: application/vnd.api+json: schema: $ref: '#/components/schemas/WebhookSingle' "422": description: Validation error. The body will have the exact details. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' delete: tags: - webhooks summary: Delete a webhook. description: Delete a webhook. operationId: deleteWebhook parameters: - name: X-Trace-Id in: header description: Unique identifier associated with this request. required: false style: simple explode: false schema: type: string format: uuid - name: id in: path description: The webhook ID. required: true style: simple explode: false schema: type: string example: "123" responses: "204": description: Webhook deleted. "401": description: Unauthenticated content: application/json: schema: $ref: '#/components/schemas/UnauthenticatedResponse' "404": description: Page not found content: application/json: schema: $ref: '#/components/schemas/NotFoundResponse' "400": description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' "500": description: Internal exception content: application/json: schema: $ref: '#/components/schemas/InternalExceptionResponse' components: schemas: AccountArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/AccountRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: account_number: "7009312345678" notes: Some example notes account_role: defaultAsset latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 zoom_level: 6 type: asset currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 current_balance_date: 2018-09-17T12:46:47+01:00 interest: "5.3" current_balance: "123.45" opening_balance: "-1012.12" interest_period: monthly order: 1 current_debt: "1012.12" longitude: 5.916667 include_net_worth: true opening_balance_date: 2018-09-17T12:46:47+01:00 currency_symbol: $ active: false monthly_payment_date: 2018-09-17T12:46:47+01:00 virtual_balance: "123.45" liability_type: loan credit_card_type: monthlyFull iban: GB98MIDL07009312345678 name: My checking account bic: BOFAUS3N liability_direction: credit currency_id: "12" id: "2" type: accounts - attributes: account_number: "7009312345678" notes: Some example notes account_role: defaultAsset latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 zoom_level: 6 type: asset currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 current_balance_date: 2018-09-17T12:46:47+01:00 interest: "5.3" current_balance: "123.45" opening_balance: "-1012.12" interest_period: monthly order: 1 current_debt: "1012.12" longitude: 5.916667 include_net_worth: true opening_balance_date: 2018-09-17T12:46:47+01:00 currency_symbol: $ active: false monthly_payment_date: 2018-09-17T12:46:47+01:00 virtual_balance: "123.45" liability_type: loan credit_card_type: monthlyFull iban: GB98MIDL07009312345678 name: My checking account bic: BOFAUS3N liability_direction: credit currency_id: "12" id: "2" type: accounts meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 AttachmentArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/AttachmentRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: filename: file.pdf notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 size: 48211 mime: application/pdf attachable_id: "134" download_url: https://demo.firefly-iii.org/api/v1/attachments/191/download created_at: 2018-09-17T12:46:47+01:00 upload_url: https://demo.firefly-iii.org/api/v1/attachments/191/download title: Some PDF file attachable_type: Bill md5: 0c3f95f34370baa88f9fd9a671fea305 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: attachments - attributes: filename: file.pdf notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 size: 48211 mime: application/pdf attachable_id: "134" download_url: https://demo.firefly-iii.org/api/v1/attachments/191/download created_at: 2018-09-17T12:46:47+01:00 upload_url: https://demo.firefly-iii.org/api/v1/attachments/191/download title: Some PDF file attachable_type: Bill md5: 0c3f95f34370baa88f9fd9a671fea305 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: attachments meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 AutocompleteAccountArray: type: array items: $ref: '#/components/schemas/AutocompleteAccount' x-schema-name: AutocompleteAccountArray AutocompleteBillArray: type: array items: $ref: '#/components/schemas/AutocompleteBill' x-schema-name: AutocompleteBillArray AutocompleteBudgetArray: type: array items: $ref: '#/components/schemas/AutocompleteBudget' x-schema-name: AutocompleteBudgetArray AutocompleteCategoryArray: type: array items: $ref: '#/components/schemas/AutocompleteCategory' x-schema-name: AutocompleteCategoryArray AutocompleteCurrencyArray: type: array items: $ref: '#/components/schemas/AutocompleteCurrency' x-schema-name: AutocompleteCurrencyArray AutocompleteCurrencyCodeArray: type: array items: $ref: '#/components/schemas/AutocompleteCurrencyCode' x-schema-name: AutocompleteCurrencyCodeArray AutocompleteObjectGroupArray: type: array items: $ref: '#/components/schemas/AutocompleteObjectGroup' x-schema-name: AutocompleteObjectGroupArray AutocompletePiggyArray: type: array items: $ref: '#/components/schemas/AutocompletePiggy' x-schema-name: AutocompletePiggyArray AutocompletePiggyBalanceArray: type: array items: $ref: '#/components/schemas/AutocompletePiggyBalance' x-schema-name: AutocompletePiggyBalanceArray AutocompleteRecurrenceArray: type: array items: $ref: '#/components/schemas/AutocompleteRecurrence' x-schema-name: AutocompleteRecurrenceArray AutocompleteRuleArray: type: array items: $ref: '#/components/schemas/AutocompleteRule' x-schema-name: AutocompleteRuleArray AutocompleteRuleGroupArray: type: array items: $ref: '#/components/schemas/AutocompleteRuleGroup' x-schema-name: AutocompleteRuleGroupArray AutocompleteTagArray: type: array items: $ref: '#/components/schemas/AutocompleteTag' x-schema-name: AutocompleteTagArray AutocompleteTransactionArray: type: array items: $ref: '#/components/schemas/AutocompleteTransaction' x-schema-name: AutocompleteTransactionArray AutocompleteTransactionIDArray: type: array items: $ref: '#/components/schemas/AutocompleteTransactionID' x-schema-name: AutocompleteTransactionIDArray AutocompleteTransactionTypeArray: type: array items: $ref: '#/components/schemas/AutocompleteTransactionType' x-schema-name: AutocompleteTransactionTypeArray AvailableBudgetArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/AvailableBudgetRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: amount: "123.45" spent_outside_budget: - null - null updated_at: 2018-09-17T12:46:47+01:00 spent_in_budgets: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 currency_symbol: $ start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 id: "2" type: available_budgets - attributes: amount: "123.45" spent_outside_budget: - null - null updated_at: 2018-09-17T12:46:47+01:00 spent_in_budgets: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 currency_symbol: $ start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 id: "2" type: available_budgets meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 BillArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/BillRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: date: 2018-09-17T12:46:47+01:00 end_date: 2018-09-17T12:46:47+01:00 notes: Some example notes currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 active: true amount_max: "123.45" skip: 0 next_expected_match: 2018-09-17T12:46:47+01:00 object_group_order: 5 next_expected_match_diff: today repeat_freq: monthly currency_code: EUR currency_decimal_places: 2 extension_date: 2018-09-17T12:46:47+01:00 pay_dates: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" paid_dates: - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" name: Rent amount_min: "123.45" currency_id: "5" order: 1 object_group_title: Example Group id: "2" type: bills - attributes: date: 2018-09-17T12:46:47+01:00 end_date: 2018-09-17T12:46:47+01:00 notes: Some example notes currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 active: true amount_max: "123.45" skip: 0 next_expected_match: 2018-09-17T12:46:47+01:00 object_group_order: 5 next_expected_match_diff: today repeat_freq: monthly currency_code: EUR currency_decimal_places: 2 extension_date: 2018-09-17T12:46:47+01:00 pay_dates: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" paid_dates: - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" name: Rent amount_min: "123.45" currency_id: "5" order: 1 object_group_title: Example Group id: "2" type: bills meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 BudgetArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/BudgetRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: auto_budget_currency_id: "12" auto_budget_amount: "-1012.12" auto_budget_period: monthly notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 auto_budget_type: reset spent: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Bills created_at: 2018-09-17T12:46:47+01:00 active: false auto_budget_currency_code: EUR order: 5 id: "2" type: budgets - attributes: auto_budget_currency_id: "12" auto_budget_amount: "-1012.12" auto_budget_period: monthly notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 auto_budget_type: reset spent: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Bills created_at: 2018-09-17T12:46:47+01:00 active: false auto_budget_currency_code: EUR order: 5 id: "2" type: budgets meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 BudgetLimitArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/BudgetLimitRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: period: monthly amount: "123.45" currency_name: Euro currency_symbol: $ budget_id: "23" spent: "-1012.12" start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" id: "2" type: budget_limits - attributes: period: monthly amount: "123.45" currency_name: Euro currency_symbol: $ budget_id: "23" spent: "-1012.12" start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" id: "2" type: budget_limits meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 CategoryArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/CategoryRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: earned: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 spent: - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Lunch created_at: 2018-09-17T12:46:47+01:00 id: "2" type: categories - attributes: earned: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 spent: - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Lunch created_at: 2018-09-17T12:46:47+01:00 id: "2" type: categories meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 ConfigurationArray: type: array items: $ref: '#/components/schemas/Configuration' x-schema-name: ConfigurationArray CurrencyArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/CurrencyRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: symbol: AM$ default: false code: AMS updated_at: 2018-09-17T12:46:47+01:00 name: Ankh-Morpork dollar created_at: 2018-09-17T12:46:47+01:00 enabled: true decimal_places: 2 id: "2" type: currencies - attributes: symbol: AM$ default: false code: AMS updated_at: 2018-09-17T12:46:47+01:00 name: Ankh-Morpork dollar created_at: 2018-09-17T12:46:47+01:00 enabled: true decimal_places: 2 id: "2" type: currencies meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 LinkTypeArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/LinkTypeRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: inward: is (partially) paid for by editable: false name: Paid outward: (partially) pays for links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: link_types - attributes: inward: is (partially) paid for by editable: false name: Paid outward: (partially) pays for links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: link_types meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 ObjectGroupArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/ObjectGroupRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 title: My object group order: 1 id: "2" type: object_groups - attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 title: My object group order: 1 id: "2" type: object_groups meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 PiggyBankArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/PiggyBankRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: target_amount: "123.45" notes: Some notes target_date: 2018-09-17T00:00:00.000+00:00 currency_symbol: $ left_to_save: "700.00" created_at: 2018-09-17T12:46:47+01:00 active: true object_group_order: 5 currency_code: USD currency_decimal_places: 2 current_amount: "123.45" account_id: "13" updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" account_name: Savings account percentage: 12.5 name: New digital camera currency_id: "5" save_per_month: "12.45" start_date: 2018-09-17T00:00:00.000+00:00 order: 5 object_group_title: Example Group links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_banks - attributes: target_amount: "123.45" notes: Some notes target_date: 2018-09-17T00:00:00.000+00:00 currency_symbol: $ left_to_save: "700.00" created_at: 2018-09-17T12:46:47+01:00 active: true object_group_order: 5 currency_code: USD currency_decimal_places: 2 current_amount: "123.45" account_id: "13" updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" account_name: Savings account percentage: 12.5 name: New digital camera currency_id: "5" save_per_month: "12.45" start_date: 2018-09-17T00:00:00.000+00:00 order: 5 object_group_title: Example Group links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_banks meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 PiggyBankEventArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/PiggyBankEventRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: amount: "123.45" transaction_journal_id: "4291" transaction_group_id: "4291" updated_at: 2018-09-17T12:46:47+01:00 currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_bank_events - attributes: amount: "123.45" transaction_journal_id: "4291" transaction_group_id: "4291" updated_at: 2018-09-17T12:46:47+01:00 currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_bank_events meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 PreferenceArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/PreferenceRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: updated_at: 2018-09-17T12:46:47+01:00 data: "" name: currencyPreference created_at: 2018-09-17T12:46:47+01:00 id: "2" type: preferences - attributes: updated_at: 2018-09-17T12:46:47+01:00 data: "" name: currencyPreference created_at: 2018-09-17T12:46:47+01:00 id: "2" type: preferences meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 RecurrenceArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/RecurrenceRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: apply_rules: true nr_of_repetitions: 5 notes: Some notes repeat_until: 2018-09-17T00:00:00.000+00:00 created_at: 2018-09-17T12:46:47+01:00 description: Recurring transaction for the monthly rent active: true type: withdrawal title: Rent transactions: - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" repetitions: - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" updated_at: 2018-09-17T12:46:47+01:00 latest_date: 2018-09-17T00:00:00.000+00:00 first_date: 2018-09-17T00:00:00.000+00:00 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: recurrences - attributes: apply_rules: true nr_of_repetitions: 5 notes: Some notes repeat_until: 2018-09-17T00:00:00.000+00:00 created_at: 2018-09-17T12:46:47+01:00 description: Recurring transaction for the monthly rent active: true type: withdrawal title: Rent transactions: - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" repetitions: - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" updated_at: 2018-09-17T12:46:47+01:00 latest_date: 2018-09-17T00:00:00.000+00:00 first_date: 2018-09-17T00:00:00.000+00:00 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: recurrences meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 RuleArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/RuleRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: created_at: 2018-09-17T12:46:47+01:00 description: First rule description active: true trigger: store-journal title: First rule title. rule_group_id: "81" triggers: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 rule_group_title: New rule group strict: true actions: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 order: 5 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules - attributes: created_at: 2018-09-17T12:46:47+01:00 description: First rule description active: true trigger: store-journal title: First rule title. rule_group_id: "81" triggers: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 rule_group_title: New rule group strict: true actions: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 order: 5 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 RuleGroupArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/RuleGroupRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 description: Description of this rule group active: true title: Default rule group order: 4 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules_group - attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 description: Description of this rule group active: true title: Default rule group order: 4 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules_group meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 TagArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/TagRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: date: 2018-09-17T00:00:00.000+00:00 updated_at: 2018-09-17T12:46:47+01:00 latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 description: Tag for expensive stuff tag: expensive zoom_level: 6 longitude: 5.916667 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: tags - attributes: date: 2018-09-17T00:00:00.000+00:00 updated_at: 2018-09-17T12:46:47+01:00 latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 description: Tag for expensive stuff tag: expensive zoom_level: 6 longitude: 5.916667 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: tags meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 TransactionArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/TransactionRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: group_title: Split transaction title. updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 transactions: - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci user: "3" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactions - attributes: group_title: Split transaction title. updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 transactions: - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci user: "3" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactions meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 TransactionLinkArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/TransactionLinkRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 link_type_id: "5" link_type_name: Is paid by outward_id: "131" created_at: 2018-09-17T12:46:47+01:00 inward_id: "131" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactionLinks - attributes: notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 link_type_id: "5" link_type_name: Is paid by outward_id: "131" created_at: 2018-09-17T12:46:47+01:00 inward_id: "131" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactionLinks meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 UserArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/UserRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: role: owner updated_at: 2018-09-17T12:46:47+01:00 blocked: false created_at: 2018-09-17T12:46:47+01:00 blocked_code: email_changed email: james@firefly-iii.org links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: users - attributes: role: owner updated_at: 2018-09-17T12:46:47+01:00 blocked: false created_at: 2018-09-17T12:46:47+01:00 blocked_code: email_changed email: james@firefly-iii.org links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: users meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 WebhookArray: required: - data - links - meta type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookRead' meta: $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PageLink' example: data: - attributes: delivery: JSON updated_at: 2018-09-17T12:46:47+01:00 response: RESPONSE_TRANSACTIONS created_at: 2018-09-17T12:46:47+01:00 active: false secret: iMLZLtLx2JHWhK9Dtyuoqyir trigger: DESTROY_TRANSACTION title: Update magic mirror on new transaction url: https://example.com links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: webhooks - attributes: delivery: JSON updated_at: 2018-09-17T12:46:47+01:00 response: RESPONSE_TRANSACTIONS created_at: 2018-09-17T12:46:47+01:00 active: false secret: iMLZLtLx2JHWhK9Dtyuoqyir trigger: DESTROY_TRANSACTION title: Update magic mirror on new transaction url: https://example.com links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: webhooks meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 links: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 WebhookAttemptArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookAttemptRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: status_code: 404 updated_at: 2018-09-17T12:46:47+01:00 response: Page not found created_at: 2018-09-17T12:46:47+01:00 webhook_message_id: "5" logs: Page not found id: "2" type: webhook_attempts - attributes: status_code: 404 updated_at: 2018-09-17T12:46:47+01:00 response: Page not found created_at: 2018-09-17T12:46:47+01:00 webhook_message_id: "5" logs: Page not found id: "2" type: webhook_attempts meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 WebhookMessageArray: required: - data - meta type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookMessageRead' meta: $ref: '#/components/schemas/Meta' example: data: - attributes: updated_at: 2018-09-17T12:46:47+01:00 webhook_id: "5" created_at: 2018-09-17T12:46:47+01:00 message: "{some:message}" sent: false uuid: 7a344c02-5b52-46b1-90e6-a437431dcf07 errored: false id: "2" type: webhook_messages - attributes: updated_at: 2018-09-17T12:46:47+01:00 webhook_id: "5" created_at: 2018-09-17T12:46:47+01:00 message: "{some:message}" sent: false uuid: 7a344c02-5b52-46b1-90e6-a437431dcf07 errored: false id: "2" type: webhook_messages meta: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 AutocompleteAccount: required: - currency_code - currency_decimal_places - currency_id - currency_name - currency_symbol - id - name - name_with_balance - type type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the account found by an auto-complete search. format: string example: Checking Account name_with_balance: type: string description: Asset accounts and liabilities have a second field with the given date's account balance. format: string example: Checking Account ($123.45) type: type: string description: Account type of the account found by the auto-complete search. format: string example: Asset account currency_id: type: string description: ID for the currency used by this account. format: string example: "12" currency_name: type: string description: Currency name for the currency used by this account. format: string example: Euro currency_code: type: string description: Currency code for the currency used by this account. format: string example: EUR currency_symbol: type: string description: Currency symbol for the currency used by this account. format: string example: $ currency_decimal_places: type: integer description: Number of decimal places for the currency used by this account. format: int32 example: 2 example: currency_name: Euro currency_symbol: $ name: Checking Account id: "2" name_with_balance: Checking Account ($123.45) type: Asset account currency_id: "12" currency_code: EUR currency_decimal_places: 2 AutocompleteBill: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the bill found by an auto-complete search. format: string example: Yearly bill active: type: boolean description: Is the bill active or not? format: boolean example: true example: name: Yearly bill active: true id: "2" AutocompleteBudget: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the budget found by an auto-complete search. format: string example: Groceries example: name: Groceries id: "2" AutocompleteCategory: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the category found by an auto-complete search. format: string example: Category X example: name: Category X id: "2" AutocompleteCurrency: required: - code - decimal_places - id - name - symbol type: object properties: id: type: string format: string example: "2" name: type: string description: Currency name. format: string example: Currency name code: type: string description: Currency code. format: string example: EUR symbol: type: string format: string example: $ decimal_places: type: integer format: int32 example: 2 example: symbol: $ code: EUR name: Currency name id: "2" decimal_places: 2 AutocompleteCurrencyCode: required: - code - decimal_places - id - name - symbol type: object properties: id: type: string format: string example: "2" name: type: string description: Currency name with the code between brackets. format: string example: Currency name (XCN) code: type: string description: Currency code. format: string example: EUR symbol: type: string format: string example: $ decimal_places: type: integer format: int32 example: 2 example: symbol: $ code: EUR name: Currency name (XCN) id: "2" decimal_places: 2 AutocompleteObjectGroup: required: - id - name - title type: object properties: id: type: string format: string example: "2" title: type: string description: Title of the object group found by an auto-complete search. format: string example: Object Group one name: type: string description: Title of the object group found by an auto-complete search. format: string example: Object Group one example: name: Object Group one id: "2" title: Object Group one AutocompletePiggy: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the piggy bank found by an auto-complete search. format: string example: New couch currency_id: type: string description: Currency ID for this piggy bank. format: string example: "12" currency_code: type: string description: Currency code for this piggy bank. format: string example: EUR currency_symbol: type: string format: string example: $ currency_name: type: string description: Currency name for the currency used by this account. format: string example: Euro currency_decimal_places: type: integer format: int32 example: 2 object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group example: currency_name: Euro currency_symbol: $ object_group_id: "5" name: New couch id: "2" currency_id: "12" currency_code: EUR currency_decimal_places: 2 object_group_title: Example Group AutocompletePiggyBalance: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the piggy bank found by an auto-complete search. format: string example: New couch name_with_balance: type: string description: Name of the piggy bank found by an auto-complete search with the current balance formatted nicely. format: string example: New couch ($ 12.34) currency_id: type: string description: Currency ID for this piggy bank. format: string example: "12" currency_code: type: string description: Currency code for this piggy bank. format: string example: EUR currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer format: int32 example: 2 object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group example: currency_symbol: $ object_group_id: "5" name: New couch id: "2" name_with_balance: New couch ($ 12.34) currency_id: "12" currency_code: EUR currency_decimal_places: 2 object_group_title: Example Group AutocompleteRecurrence: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the recurrence found by an auto-complete search. format: string example: Yearly bill description: type: string description: Description of the recurrence found by auto-complete. format: string example: Should trigger daily. example: name: Yearly bill description: Should trigger daily. id: "2" AutocompleteRule: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the rule found by an auto-complete search. format: string example: Rule one description: type: string description: Description of the rule found by auto-complete. format: string example: Useful rule. example: name: Rule one description: Useful rule. id: "2" AutocompleteRuleGroup: required: - id - name type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the rule group found by an auto-complete search. format: string example: Rule group one description: type: string description: Description of the rule group found by auto-complete. format: string example: Some rule group. example: name: Rule group one description: Some rule group. id: "2" AutocompleteTag: required: - id - name - tag type: object properties: id: type: string format: string example: "2" name: type: string description: Name of the tag found by an auto-complete search. format: string example: too-expensive-tag-example tag: type: string description: Name of the tag found by an auto-complete search. format: string example: too-expensive-tag-example example: name: too-expensive-tag-example id: "2" tag: too-expensive-tag-example AutocompleteTransaction: required: - description - id - name type: object properties: id: type: string description: The ID of a transaction journal (basically a single split). format: string example: "2" transaction_group_id: type: string description: The ID of the underlying transaction group. format: string example: "2" name: type: string description: Transaction description format: string example: Transaction description: type: string description: Transaction description format: string example: Transaction example: transaction_group_id: "2" name: Transaction description: Transaction id: "2" AutocompleteTransactionID: required: - description - id - name type: object properties: id: type: string description: The ID of a transaction journal (basically a single split). format: string example: "2" transaction_group_id: type: string description: The ID of the underlying transaction group. format: string example: "2" name: type: string description: Transaction description with ID in the name. format: string example: "#12: Transaction" description: type: string description: Transaction description with ID in the name. format: string example: "#12: Transaction" example: transaction_group_id: "2" name: "#12: Transaction" description: "#12: Transaction" id: "2" AutocompleteTransactionType: required: - id - name - type type: object properties: id: type: string format: string example: "2" name: type: string description: Type of the object found by an auto-complete search. format: string example: Withdrawal type: type: string description: Name of the object found by an auto-complete search. format: string example: Withdrawal example: name: Withdrawal id: "2" type: Withdrawal ChartDataPoint: type: object properties: key: type: string description: "The key is the label of the value, so for example: '2018-01-01'\ \ => 13 or 'Groceries' => -123." format: string example: value example: key: value ChartDataSet: type: object properties: label: type: string description: "This is the title of the current set. It can refer to an account,\ \ a budget or another object (by name)." format: string example: Checking account currency_id: type: string description: The currency ID of the currency associated to the data in the entries. format: string example: "5" currency_code: type: string format: string example: EUR currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer description: Number of decimals for the currency associated to the data in the entries. format: int32 example: 2 start_date: type: string format: date-time example: 2018-09-17T12:46:47+01:00 end_date: type: string format: date-time example: 2018-09-17T12:46:47+01:00 type: type: string description: Indicated the type of chart that is expected to be rendered. You can safely ignore this if you want. format: string example: line yAxisID: type: integer description: Used to indicate the Y axis for this data set. Is usually between 0 and 1 (left and right side of the chart). format: int32 example: 0 entries: type: array description: The actual entries for this data set. They 'key' value is the label for the data point. The value is the actual (numerical) value. items: $ref: '#/components/schemas/ChartDataPoint' example: end_date: 2018-09-17T12:46:47+01:00 entries: - key: value - key: value currency_symbol: $ label: Checking account type: line yAxisID: 0 currency_id: "5" currency_code: EUR currency_decimal_places: 2 start_date: 2018-09-17T12:46:47+01:00 ChartLine: type: array items: $ref: '#/components/schemas/ChartDataSet' x-schema-name: ChartLine DataDestroyObject: type: string enum: - not_assets_liabilities - budgets - bills - piggy_banks - rules - recurring - categories - tags - object_groups - accounts - asset_accounts - expense_accounts - revenue_accounts - liabilities - transactions - withdrawals - deposits - transfers AccountSearchFieldFilter: type: string enum: - all - iban - name - number - id ConfigValueFilter: type: string description: Title of the configuration value. example: configuration.is_demo_site enum: - configuration.is_demo_site - configuration.permission_update_check - configuration.last_update_check - configuration.single_user_mode - firefly.version - firefly.api_version - firefly.default_location - firefly.account_to_transaction - firefly.allowed_opposing_types - firefly.accountRoles - firefly.valid_liabilities - firefly.interest_periods - firefly.enable_external_map - firefly.expected_source_types - app.timezone - firefly.bill_periods - firefly.credit_card_types - firefly.languages - firefly.valid_view_ranges ConfigValueUpdateFilter: type: string enum: - configuration.is_demo_site - configuration.permission_update_check - configuration.last_update_check - configuration.single_user_mode ExportFileFilter: type: string enum: - csv InsightGroup: type: array items: $ref: '#/components/schemas/InsightGroupEntry' x-schema-name: InsightGroup InsightGroupEntry: type: object properties: id: type: string description: This ID is a reference to the original object. format: string example: "123" name: type: string description: This is the name of the object. format: string example: Land lord difference: type: string description: "The amount spent or earned between start date and end date,\ \ a number defined as a string, for this object and all asset accounts." format: string example: "-123.45" difference_float: type: number description: "The amount spent or earned between start date and end date,\ \ a number as a float, for this object and all asset accounts. May have\ \ rounding errors." format: double example: -123.45 currency_id: type: string description: The currency ID of the expenses listed for this account. format: string example: "5" currency_code: type: string description: The currency code of the expenses listed for this account. format: string example: EUR example: name: Land lord difference: "-123.45" id: "123" difference_float: -123.45 currency_id: "5" currency_code: EUR InsightTotal: type: array items: $ref: '#/components/schemas/InsightTotalEntry' x-schema-name: InsightTotal InsightTotalEntry: type: object properties: difference: type: string description: "The amount spent between start date and end date, defined\ \ as a string, for this expense account and all asset accounts." format: string example: "123.45" difference_float: type: number description: "The amount spent between start date and end date, defined\ \ as a string, for this expense account and all asset accounts. This number\ \ is a float (double) and may have rounding errors." format: double example: 123.45 currency_id: type: string description: The currency ID of the expenses listed for this expense account. format: string example: "5" currency_code: type: string description: The currency code of the expenses listed for this expense account. format: string example: EUR example: difference: "123.45" difference_float: 123.45 currency_id: "5" currency_code: EUR InsightTransfer: type: array items: $ref: '#/components/schemas/InsightTransferEntry' x-schema-name: InsightTransfer InsightTransferEntry: type: object properties: id: type: string description: This ID is a reference to the original object. format: string example: "123" name: type: string description: This is the name of the object. format: string example: Land lord difference: type: string description: "The total amount transferred between start date and end date,\ \ a number defined as a string, for this asset account." format: string example: "-123.45" difference_float: type: number description: "The total amount transferred between start date and end date,\ \ a number as a float, for this asset account. May have rounding errors." format: double example: -123.45 in: type: string description: "The total amount transferred TO this account between start\ \ date and end date, a number defined as a string, for this asset account." format: string example: "123.45" in_float: type: number description: "The total amount transferred FROM this account between start\ \ date and end date, a number as a float, for this asset account. May\ \ have rounding errors." format: double example: 123.45 out: type: string description: "The total amount transferred FROM this account between start\ \ date and end date, a number defined as a string, for this asset account." format: string example: "123.45" out_float: type: number description: "The total amount transferred TO this account between start\ \ date and end date, a number as a float, for this asset account. May\ \ have rounding errors." format: double example: 123.45 currency_id: type: string description: The currency ID of the expenses listed for this account. format: string example: "5" currency_code: type: string description: The currency code of the expenses listed for this account. format: string example: EUR example: in: "123.45" in_float: 123.45 name: Land lord difference: "-123.45" id: "123" difference_float: -123.45 out_float: 123.45 currency_id: "5" currency_code: EUR out: "123.45" AccountRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: accounts id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Account' example: attributes: account_number: "7009312345678" notes: Some example notes account_role: defaultAsset latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 zoom_level: 6 type: asset currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 current_balance_date: 2018-09-17T12:46:47+01:00 interest: "5.3" current_balance: "123.45" opening_balance: "-1012.12" interest_period: monthly order: 1 current_debt: "1012.12" longitude: 5.916667 include_net_worth: true opening_balance_date: 2018-09-17T12:46:47+01:00 currency_symbol: $ active: false monthly_payment_date: 2018-09-17T12:46:47+01:00 virtual_balance: "123.45" liability_type: loan credit_card_type: monthlyFull iban: GB98MIDL07009312345678 name: My checking account bic: BOFAUS3N liability_direction: credit currency_id: "12" id: "2" type: accounts AccountSingle: required: - data type: object properties: data: $ref: '#/components/schemas/AccountRead' example: data: attributes: account_number: "7009312345678" notes: Some example notes account_role: defaultAsset latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 zoom_level: 6 type: asset currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 current_balance_date: 2018-09-17T12:46:47+01:00 interest: "5.3" current_balance: "123.45" opening_balance: "-1012.12" interest_period: monthly order: 1 current_debt: "1012.12" longitude: 5.916667 include_net_worth: true opening_balance_date: 2018-09-17T12:46:47+01:00 currency_symbol: $ active: false monthly_payment_date: 2018-09-17T12:46:47+01:00 virtual_balance: "123.45" liability_type: loan credit_card_type: monthlyFull iban: GB98MIDL07009312345678 name: My checking account bic: BOFAUS3N liability_direction: credit currency_id: "12" id: "2" type: accounts AttachmentRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: attachments id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Attachment' links: $ref: '#/components/schemas/ObjectLink' example: attributes: filename: file.pdf notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 size: 48211 mime: application/pdf attachable_id: "134" download_url: https://demo.firefly-iii.org/api/v1/attachments/191/download created_at: 2018-09-17T12:46:47+01:00 upload_url: https://demo.firefly-iii.org/api/v1/attachments/191/download title: Some PDF file attachable_type: Bill md5: 0c3f95f34370baa88f9fd9a671fea305 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: attachments AttachmentSingle: required: - data type: object properties: data: $ref: '#/components/schemas/AttachmentRead' example: data: attributes: filename: file.pdf notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 size: 48211 mime: application/pdf attachable_id: "134" download_url: https://demo.firefly-iii.org/api/v1/attachments/191/download created_at: 2018-09-17T12:46:47+01:00 upload_url: https://demo.firefly-iii.org/api/v1/attachments/191/download title: Some PDF file attachable_type: Bill md5: 0c3f95f34370baa88f9fd9a671fea305 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: attachments AvailableBudgetRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: available_budgets id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/AvailableBudget' example: attributes: amount: "123.45" spent_outside_budget: - null - null updated_at: 2018-09-17T12:46:47+01:00 spent_in_budgets: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 currency_symbol: $ start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 id: "2" type: available_budgets AvailableBudgetSingle: required: - data type: object properties: data: $ref: '#/components/schemas/AvailableBudgetRead' example: data: attributes: amount: "123.45" spent_outside_budget: - null - null updated_at: 2018-09-17T12:46:47+01:00 spent_in_budgets: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 currency_symbol: $ start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 id: "2" type: available_budgets BillRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: bills id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Bill' example: attributes: date: 2018-09-17T12:46:47+01:00 end_date: 2018-09-17T12:46:47+01:00 notes: Some example notes currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 active: true amount_max: "123.45" skip: 0 next_expected_match: 2018-09-17T12:46:47+01:00 object_group_order: 5 next_expected_match_diff: today repeat_freq: monthly currency_code: EUR currency_decimal_places: 2 extension_date: 2018-09-17T12:46:47+01:00 pay_dates: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" paid_dates: - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" name: Rent amount_min: "123.45" currency_id: "5" order: 1 object_group_title: Example Group id: "2" type: bills BillSingle: required: - data type: object properties: data: $ref: '#/components/schemas/BillRead' example: data: attributes: date: 2018-09-17T12:46:47+01:00 end_date: 2018-09-17T12:46:47+01:00 notes: Some example notes currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 active: true amount_max: "123.45" skip: 0 next_expected_match: 2018-09-17T12:46:47+01:00 object_group_order: 5 next_expected_match_diff: today repeat_freq: monthly currency_code: EUR currency_decimal_places: 2 extension_date: 2018-09-17T12:46:47+01:00 pay_dates: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" paid_dates: - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" name: Rent amount_min: "123.45" currency_id: "5" order: 1 object_group_title: Example Group id: "2" type: bills BudgetLimitRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: budget_limits id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/BudgetLimit' example: attributes: period: monthly amount: "123.45" currency_name: Euro currency_symbol: $ budget_id: "23" spent: "-1012.12" start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" id: "2" type: budget_limits BudgetLimitSingle: required: - data type: object properties: data: $ref: '#/components/schemas/BudgetLimitRead' example: data: attributes: period: monthly amount: "123.45" currency_name: Euro currency_symbol: $ budget_id: "23" spent: "-1012.12" start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" id: "2" type: budget_limits BudgetRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: budgets id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Budget' example: attributes: auto_budget_currency_id: "12" auto_budget_amount: "-1012.12" auto_budget_period: monthly notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 auto_budget_type: reset spent: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Bills created_at: 2018-09-17T12:46:47+01:00 active: false auto_budget_currency_code: EUR order: 5 id: "2" type: budgets BudgetSingle: required: - data type: object properties: data: $ref: '#/components/schemas/BudgetRead' example: data: attributes: auto_budget_currency_id: "12" auto_budget_amount: "-1012.12" auto_budget_period: monthly notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 auto_budget_type: reset spent: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Bills created_at: 2018-09-17T12:46:47+01:00 active: false auto_budget_currency_code: EUR order: 5 id: "2" type: budgets CategoryRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: categories id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Category' example: attributes: earned: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 spent: - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Lunch created_at: 2018-09-17T12:46:47+01:00 id: "2" type: categories CategorySingle: required: - data type: object properties: data: $ref: '#/components/schemas/CategoryRead' example: data: attributes: earned: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 spent: - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Lunch created_at: 2018-09-17T12:46:47+01:00 id: "2" type: categories ConfigurationSingle: required: - data type: object properties: data: $ref: '#/components/schemas/Configuration' example: data: editable: true title: configuration.is_demo_site value: "" CurrencyRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: currencies id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Currency' example: attributes: symbol: AM$ default: false code: AMS updated_at: 2018-09-17T12:46:47+01:00 name: Ankh-Morpork dollar created_at: 2018-09-17T12:46:47+01:00 enabled: true decimal_places: 2 id: "2" type: currencies CurrencySingle: required: - data type: object properties: data: $ref: '#/components/schemas/CurrencyRead' example: data: attributes: symbol: AM$ default: false code: AMS updated_at: 2018-09-17T12:46:47+01:00 name: Ankh-Morpork dollar created_at: 2018-09-17T12:46:47+01:00 enabled: true decimal_places: 2 id: "2" type: currencies LinkTypeRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: link_types id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/LinkType' links: $ref: '#/components/schemas/ObjectLink' example: attributes: inward: is (partially) paid for by editable: false name: Paid outward: (partially) pays for links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: link_types LinkTypeSingle: required: - data type: object properties: data: $ref: '#/components/schemas/LinkTypeRead' example: data: attributes: inward: is (partially) paid for by editable: false name: Paid outward: (partially) pays for links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: link_types ObjectGroupRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: object_groups id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/ObjectGroup' example: attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 title: My object group order: 1 id: "2" type: object_groups ObjectGroupSingle: required: - data type: object properties: data: $ref: '#/components/schemas/ObjectGroupRead' example: data: attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 title: My object group order: 1 id: "2" type: object_groups PiggyBankEventRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: piggy_bank_events id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/PiggyBankEvent' links: $ref: '#/components/schemas/ObjectLink' example: attributes: amount: "123.45" transaction_journal_id: "4291" transaction_group_id: "4291" updated_at: 2018-09-17T12:46:47+01:00 currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_bank_events PiggyBankRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: piggy_banks id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/PiggyBank' links: $ref: '#/components/schemas/ObjectLink' example: attributes: target_amount: "123.45" notes: Some notes target_date: 2018-09-17T00:00:00.000+00:00 currency_symbol: $ left_to_save: "700.00" created_at: 2018-09-17T12:46:47+01:00 active: true object_group_order: 5 currency_code: USD currency_decimal_places: 2 current_amount: "123.45" account_id: "13" updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" account_name: Savings account percentage: 12.5 name: New digital camera currency_id: "5" save_per_month: "12.45" start_date: 2018-09-17T00:00:00.000+00:00 order: 5 object_group_title: Example Group links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_banks PiggyBankSingle: required: - data type: object properties: data: $ref: '#/components/schemas/PiggyBankRead' example: data: attributes: target_amount: "123.45" notes: Some notes target_date: 2018-09-17T00:00:00.000+00:00 currency_symbol: $ left_to_save: "700.00" created_at: 2018-09-17T12:46:47+01:00 active: true object_group_order: 5 currency_code: USD currency_decimal_places: 2 current_amount: "123.45" account_id: "13" updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" account_name: Savings account percentage: 12.5 name: New digital camera currency_id: "5" save_per_month: "12.45" start_date: 2018-09-17T00:00:00.000+00:00 order: 5 object_group_title: Example Group links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: piggy_banks PreferenceRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: preferences id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Preference' example: attributes: updated_at: 2018-09-17T12:46:47+01:00 data: "" name: currencyPreference created_at: 2018-09-17T12:46:47+01:00 id: "2" type: preferences PreferenceSingle: required: - data type: object properties: data: $ref: '#/components/schemas/PreferenceRead' example: data: attributes: updated_at: 2018-09-17T12:46:47+01:00 data: "" name: currencyPreference created_at: 2018-09-17T12:46:47+01:00 id: "2" type: preferences RecurrenceRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: recurrences id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Recurrence' links: $ref: '#/components/schemas/ObjectLink' example: attributes: apply_rules: true nr_of_repetitions: 5 notes: Some notes repeat_until: 2018-09-17T00:00:00.000+00:00 created_at: 2018-09-17T12:46:47+01:00 description: Recurring transaction for the monthly rent active: true type: withdrawal title: Rent transactions: - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" repetitions: - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" updated_at: 2018-09-17T12:46:47+01:00 latest_date: 2018-09-17T00:00:00.000+00:00 first_date: 2018-09-17T00:00:00.000+00:00 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: recurrences RecurrenceSingle: required: - data type: object properties: data: $ref: '#/components/schemas/RecurrenceRead' example: data: attributes: apply_rules: true nr_of_repetitions: 5 notes: Some notes repeat_until: 2018-09-17T00:00:00.000+00:00 created_at: 2018-09-17T12:46:47+01:00 description: Recurring transaction for the monthly rent active: true type: withdrawal title: Rent transactions: - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" repetitions: - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" updated_at: 2018-09-17T12:46:47+01:00 latest_date: 2018-09-17T00:00:00.000+00:00 first_date: 2018-09-17T00:00:00.000+00:00 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: recurrences RuleGroupRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: rules_group id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/RuleGroup' links: $ref: '#/components/schemas/ObjectLink' example: attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 description: Description of this rule group active: true title: Default rule group order: 4 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules_group RuleGroupSingle: required: - data type: object properties: data: $ref: '#/components/schemas/RuleGroupRead' example: data: attributes: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 description: Description of this rule group active: true title: Default rule group order: 4 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules_group RuleRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: rules id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Rule' links: $ref: '#/components/schemas/ObjectLink' example: attributes: created_at: 2018-09-17T12:46:47+01:00 description: First rule description active: true trigger: store-journal title: First rule title. rule_group_id: "81" triggers: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 rule_group_title: New rule group strict: true actions: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 order: 5 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules RuleSingle: required: - data type: object properties: data: $ref: '#/components/schemas/RuleRead' example: data: attributes: created_at: 2018-09-17T12:46:47+01:00 description: First rule description active: true trigger: store-journal title: First rule title. rule_group_id: "81" triggers: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 rule_group_title: New rule group strict: true actions: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 order: 5 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: rules TagRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: tags id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/TagModel' links: $ref: '#/components/schemas/ObjectLink' example: attributes: date: 2018-09-17T00:00:00.000+00:00 updated_at: 2018-09-17T12:46:47+01:00 latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 description: Tag for expensive stuff tag: expensive zoom_level: 6 longitude: 5.916667 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: tags TagSingle: required: - data type: object properties: data: $ref: '#/components/schemas/TagRead' example: data: attributes: date: 2018-09-17T00:00:00.000+00:00 updated_at: 2018-09-17T12:46:47+01:00 latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 description: Tag for expensive stuff tag: expensive zoom_level: 6 longitude: 5.916667 links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: tags TransactionLinkRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: transactionLinks id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/TransactionLink' links: $ref: '#/components/schemas/ObjectLink' example: attributes: notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 link_type_id: "5" link_type_name: Is paid by outward_id: "131" created_at: 2018-09-17T12:46:47+01:00 inward_id: "131" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactionLinks TransactionLinkSingle: required: - data type: object properties: data: $ref: '#/components/schemas/TransactionLinkRead' example: data: attributes: notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 link_type_id: "5" link_type_name: Is paid by outward_id: "131" created_at: 2018-09-17T12:46:47+01:00 inward_id: "131" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactionLinks TransactionRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: transactions id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Transaction' links: $ref: '#/components/schemas/ObjectLink' example: attributes: group_title: Split transaction title. updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 transactions: - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci user: "3" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactions TransactionSingle: required: - data type: object properties: data: $ref: '#/components/schemas/TransactionRead' example: data: attributes: group_title: Split transaction title. updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 transactions: - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci user: "3" links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: transactions UserRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: users id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/User' links: $ref: '#/components/schemas/ObjectLink' example: attributes: role: owner updated_at: 2018-09-17T12:46:47+01:00 blocked: false created_at: 2018-09-17T12:46:47+01:00 blocked_code: email_changed email: james@firefly-iii.org links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: users WebhookAttemptRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: webhook_attempts id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/WebhookAttempt' example: attributes: status_code: 404 updated_at: 2018-09-17T12:46:47+01:00 response: Page not found created_at: 2018-09-17T12:46:47+01:00 webhook_message_id: "5" logs: Page not found id: "2" type: webhook_attempts WebhookAttemptSingle: required: - data type: object properties: data: $ref: '#/components/schemas/WebhookAttemptRead' example: data: attributes: status_code: 404 updated_at: 2018-09-17T12:46:47+01:00 response: Page not found created_at: 2018-09-17T12:46:47+01:00 webhook_message_id: "5" logs: Page not found id: "2" type: webhook_attempts WebhookMessageRead: required: - attributes - id - type type: object properties: type: type: string description: Immutable value format: string example: webhook_messages id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/WebhookMessage' example: attributes: updated_at: 2018-09-17T12:46:47+01:00 webhook_id: "5" created_at: 2018-09-17T12:46:47+01:00 message: "{some:message}" sent: false uuid: 7a344c02-5b52-46b1-90e6-a437431dcf07 errored: false id: "2" type: webhook_messages WebhookMessageSingle: required: - data type: object properties: data: $ref: '#/components/schemas/WebhookMessageRead' example: data: attributes: updated_at: 2018-09-17T12:46:47+01:00 webhook_id: "5" created_at: 2018-09-17T12:46:47+01:00 message: "{some:message}" sent: false uuid: 7a344c02-5b52-46b1-90e6-a437431dcf07 errored: false id: "2" type: webhook_messages WebhookRead: required: - attributes - id - links - type type: object properties: type: type: string description: Immutable value format: string example: webhooks id: type: string format: string example: "2" attributes: $ref: '#/components/schemas/Webhook' links: $ref: '#/components/schemas/ObjectLink' example: attributes: delivery: JSON updated_at: 2018-09-17T12:46:47+01:00 response: RESPONSE_TRANSACTIONS created_at: 2018-09-17T12:46:47+01:00 active: false secret: iMLZLtLx2JHWhK9Dtyuoqyir trigger: DESTROY_TRANSACTION title: Update magic mirror on new transaction url: https://example.com links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: webhooks WebhookSingle: required: - data type: object properties: data: $ref: '#/components/schemas/WebhookRead' example: data: attributes: delivery: JSON updated_at: 2018-09-17T12:46:47+01:00 response: RESPONSE_TRANSACTIONS created_at: 2018-09-17T12:46:47+01:00 active: false secret: iMLZLtLx2JHWhK9Dtyuoqyir trigger: DESTROY_TRANSACTION title: Update magic mirror on new transaction url: https://example.com links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: webhooks Account: required: - name - type type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 active: type: boolean description: "If omitted, defaults to true." format: boolean example: false default: true order: type: integer description: Order of the account. Is NULL if account is not asset or liability. format: int32 nullable: true example: 1 name: type: string format: string example: My checking account type: $ref: '#/components/schemas/ShortAccountTypeProperty' account_role: $ref: '#/components/schemas/AccountRoleProperty' currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: "12" currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: EUR currency_symbol: type: string format: string readOnly: true example: $ currency_decimal_places: type: integer format: int32 readOnly: true example: 2 current_balance: type: string format: amount readOnly: true example: "123.45" current_balance_date: type: string description: "The timestamp for this date is always 23:59:59, to indicate\ \ it's the balance at the very END of that particular day." format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 iban: type: string format: iban nullable: true example: GB98MIDL07009312345678 bic: type: string format: string nullable: true example: BOFAUS3N account_number: type: string format: string nullable: true example: "7009312345678" opening_balance: type: string description: "Represents the opening balance, the initial amount this account\ \ holds." format: amount example: "-1012.12" current_debt: type: string description: Represents the current debt for liabilities. format: amount nullable: true example: "1012.12" opening_balance_date: type: string description: Represents the date of the opening balance. format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 virtual_balance: type: string format: amount example: "123.45" include_net_worth: type: boolean description: "If omitted, defaults to true." format: boolean example: true default: true credit_card_type: $ref: '#/components/schemas/CreditCardTypeProperty' monthly_payment_date: type: string description: Mandatory when the account_role is ccAsset. Moment at which CC payment installments are asked for by the bank. format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 liability_type: $ref: '#/components/schemas/LiabilityTypeProperty' liability_direction: $ref: '#/components/schemas/LiabilityDirectionProperty' interest: type: string description: Mandatory when type is liability. Interest percentage. format: string nullable: true example: "5.3" interest_period: $ref: '#/components/schemas/InterestPeriodProperty' notes: type: string format: string nullable: true example: Some example notes latitude: type: number description: "Latitude of the accounts's location, if applicable. Can be\ \ used to draw a map." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the accounts's location, if applicable. Can be\ \ used to draw a map." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels." format: int32 nullable: true example: 6 example: account_number: "7009312345678" notes: Some example notes account_role: defaultAsset latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 zoom_level: 6 type: asset currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 current_balance_date: 2018-09-17T12:46:47+01:00 interest: "5.3" current_balance: "123.45" opening_balance: "-1012.12" interest_period: monthly order: 1 current_debt: "1012.12" longitude: 5.916667 include_net_worth: true opening_balance_date: 2018-09-17T12:46:47+01:00 currency_symbol: $ active: false monthly_payment_date: 2018-09-17T12:46:47+01:00 virtual_balance: "123.45" liability_type: loan credit_card_type: monthlyFull iban: GB98MIDL07009312345678 name: My checking account bic: BOFAUS3N liability_direction: credit currency_id: "12" AccountStore: required: - name - type type: object properties: name: type: string format: string example: My checking account type: $ref: '#/components/schemas/ShortAccountTypeProperty' iban: type: string format: iban nullable: true example: GB98MIDL07009312345678 bic: type: string format: string nullable: true example: BOFAUS3N account_number: type: string format: string nullable: true example: "7009312345678" opening_balance: type: string description: "Represents the opening balance, the initial amount this account\ \ holds." format: amount example: "-1012.12" opening_balance_date: type: string description: Represents the date of the opening balance. format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 virtual_balance: type: string format: amount example: "123.45" currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: "12" currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: EUR active: type: boolean description: "If omitted, defaults to true." format: boolean example: false default: true order: type: integer description: Order of the account format: int32 example: 1 include_net_worth: type: boolean description: "If omitted, defaults to true." format: boolean example: true default: true account_role: $ref: '#/components/schemas/AccountRoleProperty' credit_card_type: $ref: '#/components/schemas/CreditCardTypeProperty' monthly_payment_date: type: string description: Mandatory when the account_role is ccAsset. Moment at which CC payment installments are asked for by the bank. format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 liability_type: $ref: '#/components/schemas/LiabilityTypeProperty' liability_direction: $ref: '#/components/schemas/LiabilityDirectionProperty' interest: type: string description: Mandatory when type is liability. Interest percentage. format: string nullable: true example: "5.3" default: "0" interest_period: $ref: '#/components/schemas/InterestPeriodProperty' notes: type: string format: string nullable: true example: Some example notes latitude: type: number description: "Latitude of the accounts's location, if applicable. Can be\ \ used to draw a map." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the accounts's location, if applicable. Can be\ \ used to draw a map." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels." format: int32 nullable: true example: 6 AccountUpdate: required: - name - type type: object properties: name: type: string format: string example: My checking account iban: type: string format: iban nullable: true example: GB98MIDL07009312345678 bic: type: string format: string nullable: true example: BOFAUS3N account_number: type: string format: string nullable: true example: "7009312345678" opening_balance: type: string format: amount example: "-1012.12" opening_balance_date: type: string format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 virtual_balance: type: string format: amount example: "123.45" currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: "12" currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: EUR active: type: boolean description: "If omitted, defaults to true." format: boolean example: false default: true order: type: integer description: Order of the account format: int32 example: 1 include_net_worth: type: boolean description: "If omitted, defaults to true." format: boolean example: true default: true account_role: $ref: '#/components/schemas/AccountRoleProperty' credit_card_type: $ref: '#/components/schemas/CreditCardTypeProperty' monthly_payment_date: type: string description: Mandatory when the account_role is ccAsset. Moment at which CC payment installments are asked for by the bank. format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 liability_type: $ref: '#/components/schemas/LiabilityTypeProperty' interest: type: string description: Mandatory when type is liability. Interest percentage. format: string nullable: true example: "5.3" interest_period: $ref: '#/components/schemas/InterestPeriodProperty' notes: type: string format: string nullable: true example: Some example notes latitude: type: number description: "Latitude of the account's location, if applicable. Can be\ \ used to draw a map. If omitted, the existing location will be kept.\ \ If submitted as NULL, the current location will be removed." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the account's location, if applicable. Can be\ \ used to draw a map. If omitted, the existing location will be kept.\ \ If submitted as NULL, the current location will be removed." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels. If omitted, the existing location will be\ \ kept. If submitted as NULL, the current location will be removed." format: int32 nullable: true example: 6 Attachment: required: - attachable_id - attachable_type - filename type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 attachable_type: $ref: '#/components/schemas/AttachableType' attachable_id: type: string description: ID of the model this attachment is linked to. format: string example: "134" md5: type: string description: MD5 hash of the file for basic duplicate detection. format: string example: 0c3f95f34370baa88f9fd9a671fea305 filename: type: string format: string example: file.pdf download_url: type: string format: string example: https://demo.firefly-iii.org/api/v1/attachments/191/download upload_url: type: string format: string example: https://demo.firefly-iii.org/api/v1/attachments/191/download title: type: string format: string nullable: true example: Some PDF file notes: type: string format: string nullable: true example: Some notes mime: type: string format: string readOnly: true example: application/pdf size: type: integer format: int32 readOnly: true example: 48211 example: filename: file.pdf notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 size: 48211 mime: application/pdf attachable_id: "134" download_url: https://demo.firefly-iii.org/api/v1/attachments/191/download created_at: 2018-09-17T12:46:47+01:00 upload_url: https://demo.firefly-iii.org/api/v1/attachments/191/download title: Some PDF file attachable_type: Bill md5: 0c3f95f34370baa88f9fd9a671fea305 AttachmentStore: required: - attachable_id - attachable_type - filename type: object properties: filename: type: string format: string example: file.pdf attachable_type: $ref: '#/components/schemas/AttachableType' attachable_id: type: string description: ID of the model this attachment is linked to. format: string example: "134" title: type: string format: string example: Some PDF file notes: type: string format: string nullable: true example: Some notes AttachmentUpdate: type: object properties: filename: type: string format: string example: file.pdf title: type: string format: string example: Some PDF file notes: type: string format: string nullable: true example: Some notes AvailableBudget: required: - amount - end - start type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 currency_id: type: string description: Use either currency_id or currency_code. format: string example: "5" currency_code: type: string description: Use either currency_id or currency_code. format: string example: EUR currency_symbol: type: string format: string readOnly: true example: $ currency_decimal_places: type: integer format: int32 readOnly: true example: 2 amount: type: string format: amount example: "123.45" start: type: string description: Start date of the available budget. format: date-time example: 2018-09-17T12:46:47+01:00 end: type: string description: End date of the available budget. format: date-time example: 2018-09-17T12:46:47+01:00 spent_in_budgets: type: array readOnly: true items: $ref: '#/components/schemas/BudgetSpent' spent_outside_budget: type: array readOnly: true items: $ref: '#/components/schemas/BudgetSpent' example: amount: "123.45" spent_outside_budget: - null - null updated_at: 2018-09-17T12:46:47+01:00 spent_in_budgets: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 currency_symbol: $ start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 Bill: required: - amount_max - amount_min - date - name - repeat_freq type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 currency_id: type: string description: Use either currency_id or currency_code format: string example: "5" currency_code: type: string description: Use either currency_id or currency_code format: string example: EUR currency_symbol: type: string format: string readOnly: true example: $ currency_decimal_places: type: integer format: int32 readOnly: true example: 2 name: type: string format: string example: Rent amount_min: type: string format: amount example: "123.45" amount_max: type: string format: amount example: "123.45" date: type: string format: date-time example: 2018-09-17T12:46:47+01:00 end_date: type: string description: The date after which this bill is no longer valid or applicable format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 extension_date: type: string description: The date before which the bill must be renewed (or cancelled) format: date-time nullable: true example: 2018-09-17T12:46:47+01:00 repeat_freq: $ref: '#/components/schemas/BillRepeatFrequency' skip: type: integer description: How often the bill must be skipped. 1 means a bi-monthly bill. format: int32 example: 0 active: type: boolean description: If the bill is active. format: boolean example: true order: type: integer description: Order of the bill. format: int32 example: 1 notes: type: string format: string nullable: true example: Some example notes next_expected_match: type: string description: When the bill is expected to be due. format: date-time nullable: true readOnly: true example: 2018-09-17T12:46:47+01:00 next_expected_match_diff: type: string description: Formatted (locally) when the bill is due. format: string nullable: true readOnly: true example: today object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_order: type: integer description: "The order of the group. At least 1, for the highest sorting." format: int32 nullable: true readOnly: true example: 5 object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group pay_dates: type: array description: Array of future dates when the bill is expected to be paid. Autogenerated. readOnly: true items: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 paid_dates: type: array description: Array of past transactions when the bill was paid. readOnly: true items: $ref: '#/components/schemas/Bill_paid_dates' example: date: 2018-09-17T12:46:47+01:00 end_date: 2018-09-17T12:46:47+01:00 notes: Some example notes currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 active: true amount_max: "123.45" skip: 0 next_expected_match: 2018-09-17T12:46:47+01:00 object_group_order: 5 next_expected_match_diff: today repeat_freq: monthly currency_code: EUR currency_decimal_places: 2 extension_date: 2018-09-17T12:46:47+01:00 pay_dates: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" paid_dates: - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" - date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" name: Rent amount_min: "123.45" currency_id: "5" order: 1 object_group_title: Example Group BillStore: required: - amount_max - amount_min - date - name - repeat_freq type: object properties: currency_id: type: string description: Use either currency_id or currency_code format: string example: "5" currency_code: type: string description: Use either currency_id or currency_code format: string example: EUR name: type: string format: string example: Rent amount_min: type: string format: amount example: "123.45" amount_max: type: string format: amount example: "123.45" date: type: string format: date-time example: 2018-09-17T12:46:47+01:00 end_date: type: string description: The date after which this bill is no longer valid or applicable format: date-time example: 2018-09-17T12:46:47+01:00 extension_date: type: string description: The date before which the bill must be renewed (or cancelled) format: date-time example: 2018-09-17T12:46:47+01:00 repeat_freq: $ref: '#/components/schemas/BillRepeatFrequency' skip: type: integer description: How often the bill must be skipped. 1 means a bi-monthly bill. format: int32 example: 0 active: type: boolean description: If the bill is active. format: boolean example: true notes: type: string format: string nullable: true example: Some example notes object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group BillUpdate: required: - name type: object properties: currency_id: type: string description: Use either currency_id or currency_code format: string example: "5" currency_code: type: string description: Use either currency_id or currency_code format: string example: EUR name: type: string format: string example: Rent amount_min: type: string format: amount example: "123.45" amount_max: type: string format: amount example: "123.45" date: type: string format: date-time example: 2018-09-17T12:46:47+01:00 end_date: type: string description: The date after which this bill is no longer valid or applicable format: date-time example: 2018-09-17T12:46:47+01:00 extension_date: type: string description: The date before which the bill must be renewed (or cancelled) format: date-time example: 2018-09-17T12:46:47+01:00 repeat_freq: $ref: '#/components/schemas/BillRepeatFrequency' skip: type: integer description: How often the bill must be skipped. 1 means a bi-monthly bill. format: int32 example: 0 active: type: boolean description: If the bill is active. format: boolean example: true notes: type: string format: string nullable: true example: Some example notes object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group Budget: required: - name type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 name: type: string format: string example: Bills active: type: boolean format: boolean example: false notes: type: string format: string nullable: true example: Some notes order: type: integer format: int32 readOnly: true example: 5 auto_budget_type: $ref: '#/components/schemas/AutoBudgetType' auto_budget_currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string nullable: true example: "12" auto_budget_currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string nullable: true example: EUR auto_budget_amount: type: string format: amount nullable: true example: "-1012.12" auto_budget_period: $ref: '#/components/schemas/AutoBudgetPeriod' spent: type: array description: Information on how much was spent in this budget. Is only filled in when the start and end date are submitted. readOnly: true items: $ref: '#/components/schemas/BudgetSpent' example: auto_budget_currency_id: "12" auto_budget_amount: "-1012.12" auto_budget_period: monthly notes: Some notes updated_at: 2018-09-17T12:46:47+01:00 auto_budget_type: reset spent: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Bills created_at: 2018-09-17T12:46:47+01:00 active: false auto_budget_currency_code: EUR order: 5 BudgetStore: required: - name type: object properties: name: type: string format: string example: Bills active: type: boolean format: boolean example: false order: type: integer format: int32 readOnly: true example: 5 notes: type: string format: string nullable: true example: Some notes auto_budget_type: $ref: '#/components/schemas/AutoBudgetType' auto_budget_currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string nullable: true example: "12" auto_budget_currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string nullable: true example: EUR auto_budget_amount: type: string format: amount nullable: true example: "-1012.12" auto_budget_period: $ref: '#/components/schemas/AutoBudgetPeriod' BudgetUpdate: required: - name type: object properties: name: type: string format: string example: Bills active: type: boolean format: boolean example: false order: type: integer format: int32 example: 5 notes: type: string format: string nullable: true example: Some notes auto_budget_type: $ref: '#/components/schemas/AutoBudgetType' auto_budget_currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string nullable: true example: "12" auto_budget_currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string nullable: true example: EUR auto_budget_amount: type: string format: amount nullable: true example: "-1012.12" auto_budget_period: $ref: '#/components/schemas/AutoBudgetPeriod' BudgetLimit: required: - amount - budget_id - end - start type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 start: type: string description: Start date of the budget limit. format: date-time example: 2018-09-17T12:46:47+01:00 end: type: string description: End date of the budget limit. format: date-time example: 2018-09-17T12:46:47+01:00 currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: "5" currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: EUR currency_name: type: string format: string readOnly: true example: Euro currency_symbol: type: string format: string readOnly: true example: $ currency_decimal_places: type: integer format: int32 readOnly: true example: 2 budget_id: type: string description: The budget ID of the associated budget. format: string readOnly: true example: "23" period: type: string description: Period of the budget limit. Only used when auto-generated by auto-budget. format: string nullable: true readOnly: true example: monthly amount: type: string format: amount example: "123.45" spent: type: string format: amount nullable: true readOnly: true example: "-1012.12" example: period: monthly amount: "123.45" currency_name: Euro currency_symbol: $ budget_id: "23" spent: "-1012.12" start: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 currency_code: EUR currency_decimal_places: 2 updated_at: 2018-09-17T12:46:47+01:00 end: 2018-09-17T12:46:47+01:00 currency_id: "5" BudgetLimitStore: required: - amount - budget_id - end - start type: object properties: currency_id: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: "5" currency_code: type: string description: Use either currency_id or currency_code. Defaults to the user's default currency. format: string example: EUR budget_id: type: string description: The budget ID of the associated budget. format: string readOnly: true example: "23" start: type: string description: Start date of the budget limit. format: date example: 2017-09-17 period: type: string description: Period of the budget limit. Only used when auto-generated by auto-budget. format: string nullable: true readOnly: true example: monthly end: type: string description: End date of the budget limit. format: date example: 2017-09-17 amount: type: string format: amount example: "123.45" BudgetSpent: type: object properties: sum: type: string description: The amount spent. format: amount example: "123.45" currency_id: type: string format: string example: "5" currency_code: type: string format: string example: USD currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer description: Number of decimals supported by the currency format: int32 example: 2 example: currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 Category: required: - name type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 name: type: string format: string example: Lunch notes: type: string format: string nullable: true example: Some example notes spent: type: array readOnly: true items: $ref: '#/components/schemas/CategorySpent' earned: type: array readOnly: true items: $ref: '#/components/schemas/CategoryEarned' example: earned: - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 spent: - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 - currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 name: Lunch created_at: 2018-09-17T12:46:47+01:00 CategoryUpdate: required: - name type: object properties: name: type: string format: string example: Lunch notes: type: string format: string nullable: true example: Some example notes CategoryEarned: type: object properties: currency_id: type: string format: string example: "5" currency_code: type: string format: string example: USD currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer description: Number of decimals supported by the currency format: int32 example: 2 sum: type: string description: The amount earned. format: amount example: "123.45" example: currency_symbol: $ sum: "123.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 CategorySpent: type: object properties: currency_id: type: string format: string example: "5" currency_code: type: string format: string example: USD currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer description: Number of decimals supported by the currency format: int32 example: 2 sum: type: string description: The amount spent. format: amount example: "-12423.45" example: currency_symbol: $ sum: "-12423.45" currency_id: "5" currency_code: USD currency_decimal_places: 2 ObjectGroup: required: - order - title type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 title: type: string format: string example: My object group order: type: integer description: Order of the object group format: int32 example: 1 example: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 title: My object group order: 1 ObjectGroupUpdate: required: - title type: object properties: title: type: string format: string example: My object group order: type: integer description: Order of the object group format: int32 example: 1 ObjectLink: type: object properties: "0": $ref: '#/components/schemas/ObjectLink_0' self: type: string format: uri example: https://demo.firefly-iii.org/api/v1/OBJECTS/1 example: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 PageLink: type: object properties: self: type: string format: uri example: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: type: string format: uri example: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 next: type: string format: uri nullable: true example: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 prev: type: string format: uri nullable: true example: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 last: type: string format: uri example: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 example: next: https://demo.firefly-iii.org/api/v1/OBJECT?&page=3 last: https://demo.firefly-iii.org/api/v1/OBJECT?&page=12 prev: https://demo.firefly-iii.org/api/v1/OBJECT?&page=2 self: https://demo.firefly-iii.org/api/v1/OBJECT?&page=4 first: https://demo.firefly-iii.org/api/v1/OBJECT?&page=1 PiggyBank: required: - account_id - name - target_amount type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 account_id: type: string description: The ID of the asset account this piggy bank is connected to. format: string example: "13" account_name: type: string description: The name of the asset account this piggy bank is connected to. format: string readOnly: true example: Savings account name: type: string format: string example: New digital camera currency_id: type: string format: string readOnly: true example: "5" currency_code: type: string format: string readOnly: true example: USD currency_symbol: type: string format: string readOnly: true example: $ currency_decimal_places: type: integer description: Number of decimals supported by the currency format: int32 readOnly: true example: 2 target_amount: type: string format: amount nullable: true example: "123.45" percentage: type: number format: float nullable: true readOnly: true example: 12.5 current_amount: type: string format: amount example: "123.45" left_to_save: type: string format: string nullable: true readOnly: true example: "700.00" save_per_month: type: string format: string nullable: true readOnly: true example: "12.45" start_date: type: string description: The date you started with this piggy bank. format: date example: 2018-09-17 target_date: type: string description: The date you intend to finish saving money. format: date nullable: true example: 2018-09-17 order: type: integer format: int32 example: 5 active: type: boolean format: boolean readOnly: true example: true notes: type: string format: string nullable: true example: Some notes object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_order: type: integer description: "The order of the group. At least 1, for the highest sorting." format: int32 nullable: true readOnly: true example: 5 object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group example: target_amount: "123.45" notes: Some notes target_date: 2018-09-17T00:00:00.000+00:00 currency_symbol: $ left_to_save: "700.00" created_at: 2018-09-17T12:46:47+01:00 active: true object_group_order: 5 currency_code: USD currency_decimal_places: 2 current_amount: "123.45" account_id: "13" updated_at: 2018-09-17T12:46:47+01:00 object_group_id: "5" account_name: Savings account percentage: 12.5 name: New digital camera currency_id: "5" save_per_month: "12.45" start_date: 2018-09-17T00:00:00.000+00:00 order: 5 object_group_title: Example Group PiggyBankStore: required: - account_id - name - target_amount type: object properties: name: type: string format: string example: New digital camera account_id: type: string description: The ID of the asset account this piggy bank is connected to. format: string example: "13" target_amount: type: string format: amount nullable: true example: "123.45" current_amount: type: string format: amount example: "123.45" start_date: type: string description: The date you started with this piggy bank. format: date example: 2018-09-17 target_date: type: string description: The date you intend to finish saving money. format: date nullable: true example: 2018-09-17 order: type: integer format: int32 example: 5 active: type: boolean format: boolean readOnly: true example: true notes: type: string format: string nullable: true example: Some notes object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group PiggyBankUpdate: type: object properties: name: type: string format: string example: New digital camera account_id: type: string description: The ID of the asset account this piggy bank is connected to. format: string example: "13" currency_id: type: string format: string readOnly: true example: "5" currency_code: type: string format: string readOnly: true example: USD target_amount: type: string format: amount nullable: true example: "123.45" current_amount: type: string format: amount example: "123.45" start_date: type: string description: The date you started with this piggy bank. format: date example: 2018-09-17 target_date: type: string description: The date you intend to finish saving money. format: date nullable: true example: 2018-09-17 order: type: integer format: int32 example: 5 active: type: boolean format: boolean readOnly: true example: true notes: type: string format: string nullable: true example: Some notes object_group_id: type: string description: The group ID of the group this object is part of. NULL if no group. format: string nullable: true example: "5" object_group_title: type: string description: The name of the group. NULL if no group. format: string nullable: true example: Example Group PiggyBankEvent: type: object properties: created_at: type: string format: date-time example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time example: 2018-09-17T12:46:47+01:00 currency_id: type: string format: string example: "5" currency_code: type: string format: string example: EUR currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer format: int32 example: 2 amount: type: string format: amount example: "123.45" transaction_journal_id: type: string description: The journal associated with the event. format: string nullable: true example: "4291" transaction_group_id: type: string description: The transaction group associated with the event. format: string nullable: true example: "4291" example: amount: "123.45" transaction_journal_id: "4291" transaction_group_id: "4291" updated_at: 2018-09-17T12:46:47+01:00 currency_symbol: $ created_at: 2018-09-17T12:46:47+01:00 currency_id: "5" currency_code: EUR currency_decimal_places: 2 Preference: required: - data - name type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 name: type: string format: string example: currencyPreference data: $ref: '#/components/schemas/PolymorphicProperty' example: updated_at: 2018-09-17T12:46:47+01:00 data: "" name: currencyPreference created_at: 2018-09-17T12:46:47+01:00 PreferenceUpdate: required: - data type: object properties: data: $ref: '#/components/schemas/PolymorphicProperty' Recurrence: type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 type: $ref: '#/components/schemas/RecurrenceTransactionType' title: type: string format: string example: Rent description: type: string description: Not to be confused with the description of the actual transaction(s) being created. format: string example: Recurring transaction for the monthly rent first_date: type: string description: First time the recurring transaction will fire. Must be after today. format: date example: 2018-09-17 latest_date: type: string description: Last time the recurring transaction has fired. format: date nullable: true readOnly: true example: 2018-09-17 repeat_until: type: string description: Date until the recurring transaction can fire. Use either this field or repetitions. format: date nullable: true example: 2018-09-17 nr_of_repetitions: type: integer description: Max number of created transactions. Use either this field or repeat_until. format: int32 nullable: true example: 5 apply_rules: type: boolean description: Whether or not to fire the rules after the creation of a transaction. format: boolean example: true active: type: boolean description: If the recurrence is even active. format: boolean example: true notes: type: string format: string nullable: true example: Some notes repetitions: type: array items: $ref: '#/components/schemas/RecurrenceRepetition' transactions: type: array items: $ref: '#/components/schemas/RecurrenceTransaction' example: apply_rules: true nr_of_repetitions: 5 notes: Some notes repeat_until: 2018-09-17T00:00:00.000+00:00 created_at: 2018-09-17T12:46:47+01:00 description: Recurring transaction for the monthly rent active: true type: withdrawal title: Rent transactions: - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" - category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" repetitions: - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" - occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" updated_at: 2018-09-17T12:46:47+01:00 latest_date: 2018-09-17T00:00:00.000+00:00 first_date: 2018-09-17T00:00:00.000+00:00 RecurrenceStore: required: - first_date - repeat_until - repetitions - title - transactions - type type: object properties: type: $ref: '#/components/schemas/RecurrenceTransactionType' title: type: string format: string example: Rent description: type: string description: Not to be confused with the description of the actual transaction(s) being created. format: string example: Recurring transaction for the monthly rent first_date: type: string description: First time the recurring transaction will fire. Must be after today. format: date example: 2018-09-17 repeat_until: type: string description: Date until the recurring transaction can fire. Use either this field or repetitions. format: date nullable: true example: 2018-09-17 nr_of_repetitions: type: integer description: Max number of created transactions. Use either this field or repeat_until. format: int32 nullable: true example: 5 apply_rules: type: boolean description: Whether or not to fire the rules after the creation of a transaction. format: boolean example: true active: type: boolean description: If the recurrence is even active. format: boolean example: true notes: type: string format: string nullable: true example: Some notes repetitions: type: array items: $ref: '#/components/schemas/RecurrenceRepetitionStore' transactions: type: array items: $ref: '#/components/schemas/RecurrenceTransactionStore' RecurrenceUpdate: type: object properties: title: type: string format: string example: Rent description: type: string description: Not to be confused with the description of the actual transaction(s) being created. format: string example: Recurring transaction for the monthly rent first_date: type: string description: First time the recurring transaction will fire. format: date example: 2018-09-17 repeat_until: type: string description: "Date until the recurring transaction can fire. After that\ \ date, it's basically inactive. Use either this field or repetitions." format: date nullable: true example: 2018-09-17 nr_of_repetitions: type: integer description: Max number of created transactions. Use either this field or repeat_until. format: int32 nullable: true example: 5 apply_rules: type: boolean description: Whether or not to fire the rules after the creation of a transaction. format: boolean example: true active: type: boolean description: If the recurrence is even active. format: boolean example: true notes: type: string format: string nullable: true example: Some notes repetitions: type: array items: $ref: '#/components/schemas/RecurrenceRepetitionUpdate' transactions: type: array items: $ref: '#/components/schemas/RecurrenceTransactionUpdate' RecurrenceRepetition: required: - moment - type type: object properties: id: type: string format: string readOnly: true example: "2" created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 type: $ref: '#/components/schemas/RecurrenceRepetitionType' moment: type: string description: | Information that defined the type of repetition. - For 'daily', this is empty. - For 'weekly', it is day of the week between 1 and 7 (Monday - Sunday). - For 'ndom', it is '1,2' or '4,5' or something else, where the first number is the week in the month, and the second number is the day in the week (between 1 and 7). '2,3' means: the 2nd Wednesday of the month - For 'monthly' it is the day of the month (1 - 31) - For yearly, it is a full date, ie '2018-09-17'. The year you use does not matter. format: string example: "3" skip: type: integer description: How many occurrences to skip. 0 means skip nothing. 1 means every other. format: int32 example: 0 weekend: type: integer description: | How to respond when the recurring transaction falls in the weekend. Possible values: 1. Do nothing, just create it 2. Create no transaction. 3. Skip to the previous Friday. 4. Skip to the next Monday. format: int32 example: 1 description: type: string description: Auto-generated repetition description. format: string readOnly: true example: Every week on Friday occurrences: type: array description: Array of future dates when the repetition will apply to. Auto generated. readOnly: true items: type: string format: date-time example: 2018-09-17T12:46:47+01:00 example: occurrences: - 2018-09-17T12:46:47+01:00 - 2018-09-17T12:46:47+01:00 updated_at: 2018-09-17T12:46:47+01:00 weekend: 1 created_at: 2018-09-17T12:46:47+01:00 description: Every week on Friday skip: 0 id: "2" type: weekly moment: "3" RecurrenceRepetitionStore: required: - moment - type type: object properties: type: $ref: '#/components/schemas/RecurrenceRepetitionType' moment: type: string description: | Information that defined the type of repetition. - For 'daily', this is empty. - For 'weekly', it is day of the week between 1 and 7 (Monday - Sunday). - For 'ndom', it is '1,2' or '4,5' or something else, where the first number is the week in the month, and the second number is the day in the week (between 1 and 7). '2,3' means: the 2nd Wednesday of the month - For 'monthly' it is the day of the month (1 - 31) - For yearly, it is a full date, ie '2018-09-17'. The year you use does not matter. format: string example: "3" skip: type: integer description: How many occurrences to skip. 0 means skip nothing. 1 means every other. format: int32 example: 0 weekend: type: integer description: | How to respond when the recurring transaction falls in the weekend. Possible values: 1. Do nothing, just create it 2. Create no transaction. 3. Skip to the previous Friday. 4. Skip to the next Monday. format: int32 example: 1 RecurrenceRepetitionUpdate: type: object properties: type: $ref: '#/components/schemas/RecurrenceRepetitionType' moment: type: string description: | Information that defined the type of repetition. - For 'daily', this is empty. - For 'weekly', it is day of the week between 1 and 7 (Monday - Sunday). - For 'ndom', it is '1,2' or '4,5' or something else, where the first number is the week in the month, and the second number is the day in the week (between 1 and 7). '2,3' means: the 2nd Wednesday of the month - For 'monthly' it is the day of the month (1 - 31) - For yearly, it is a full date, ie '2018-09-17'. The year you use does not matter. format: string example: "3" skip: type: integer description: How many occurrences to skip. 0 means skip nothing. 1 means every other. format: int32 example: 0 weekend: type: integer description: | How to respond when the recurring transaction falls in the weekend. Possible values: 1. Do nothing, just create it 2. Create no transaction. 3. Skip to the previous Friday. 4. Skip to the next Monday. format: int32 example: 1 RecurrenceTransaction: required: - amount - description type: object properties: id: type: string format: string example: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. description: type: string format: string example: Rent for the current month amount: type: string description: Amount of the transaction. format: amount example: "123.45" foreign_amount: type: string description: Foreign amount of the transaction. format: amount nullable: true example: "123.45" currency_id: type: string description: Submit either a currency_id or a currency_code. format: string example: "3" currency_code: type: string description: Submit either a currency_id or a currency_code. format: string example: EUR currency_symbol: type: string format: string readOnly: true example: € currency_decimal_places: type: integer description: Number of decimals in the currency format: int32 readOnly: true example: 2 foreign_currency_id: type: string description: "Submit either a foreign_currency_id or a foreign_currency_code,\ \ or neither." format: string nullable: true example: "17" foreign_currency_code: type: string description: "Submit either a foreign_currency_id or a foreign_currency_code,\ \ or neither." format: string nullable: true example: GBP foreign_currency_symbol: type: string format: string nullable: true readOnly: true example: $ foreign_currency_decimal_places: type: integer description: Number of decimals in the currency format: int32 nullable: true readOnly: true example: 2 budget_id: type: string description: The budget ID for this transaction. format: string example: "4" budget_name: type: string description: "The name of the budget to be used. If the budget name is unknown,\ \ the ID will be used or the value will be ignored." format: string nullable: true readOnly: true example: Groceries category_id: type: string description: Category ID for this transaction. format: string example: "211" category_name: type: string description: Category name for this transaction. format: string example: Bills source_id: type: string description: ID of the source account. Submit either this or source_name. format: string example: "913" source_name: type: string description: Name of the source account. Submit either this or source_id. format: string example: Checking account source_iban: type: string format: string nullable: true readOnly: true example: NL02ABNA0123456789 source_type: $ref: '#/components/schemas/AccountTypeProperty' destination_id: type: string description: ID of the destination account. Submit either this or destination_name. format: string example: "258" destination_name: type: string description: Name of the destination account. Submit either this or destination_id. format: string example: Buy and Large destination_iban: type: string format: string nullable: true readOnly: true example: NL02ABNA0123456789 destination_type: $ref: '#/components/schemas/AccountTypeProperty' tags: type: array description: Array of tags. nullable: true items: type: string description: Tag. format: string example: Barbecue preparation example: null piggy_bank_id: type: string description: Optional. Use either this or the piggy_bank_name format: string nullable: true example: "123" piggy_bank_name: type: string description: Optional. Use either this or the piggy_bank_id format: string nullable: true bill_id: type: string description: Optional. Use either this or the bill_name format: string nullable: true example: "123" bill_name: type: string description: Optional. Use either this or the bill_id format: string nullable: true example: category_name: Bills destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" destination_id: "258" description: Rent for the current month destination_name: Buy and Large currency_code: EUR currency_decimal_places: 2 destination_type: null category_id: "211" foreign_currency_symbol: $ piggy_bank_name: piggy_bank_name id: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. foreign_currency_id: "17" source_name: Checking account bill_id: "123" amount: "123.45" budget_name: Groceries foreign_currency_code: GBP currency_symbol: € source_type: Asset account foreign_currency_decimal_places: 2 bill_name: bill_name piggy_bank_id: "123" tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" source_id: "913" currency_id: "3" RecurrenceTransactionStore: required: - amount - description - destination_id - source_id type: object properties: description: type: string format: string example: Rent for the current month amount: type: string description: Amount of the transaction. format: amount example: "123.45" foreign_amount: type: string description: Foreign amount of the transaction. format: amount nullable: true example: "123.45" currency_id: type: string description: Submit either a currency_id or a currency_code. format: string example: "3" currency_code: type: string description: Submit either a currency_id or a currency_code. format: string example: EUR foreign_currency_id: type: string description: "Submit either a foreign_currency_id or a foreign_currency_code,\ \ or neither." format: string nullable: true example: "17" foreign_currency_code: type: string description: "Submit either a foreign_currency_id or a foreign_currency_code,\ \ or neither." format: string nullable: true example: GBP budget_id: type: string description: The budget ID for this transaction. format: string example: "4" category_id: type: string description: Category ID for this transaction. format: string example: "211" source_id: type: string description: ID of the source account. format: string example: "913" destination_id: type: string description: ID of the destination account. format: string example: "258" tags: type: array description: Array of tags. nullable: true items: type: string description: Tag. format: string example: Barbecue preparation example: null piggy_bank_id: type: string description: Optional. format: string nullable: true example: "123" bill_id: type: string description: Optional. format: string nullable: true example: "123" RecurrenceTransactionUpdate: required: - id type: object properties: id: type: string format: string example: ID of the recurring transaction. Not to be confused with the ID of the recurrence itself. Is marked as REQUIRED but can be skipped when there is only ONE transaction. description: type: string format: string example: Rent for the current month amount: type: string description: Amount of the transaction. format: amount example: "123.45" foreign_amount: type: string description: Foreign amount of the transaction. format: amount nullable: true example: "123.45" currency_id: type: string description: Submit either a currency_id or a currency_code. format: string example: "3" currency_code: type: string description: Submit either a currency_id or a currency_code. format: string example: EUR foreign_currency_id: type: string description: "Submit either a foreign_currency_id or a foreign_currency_code,\ \ or neither." format: string nullable: true example: "17" budget_id: type: string description: The budget ID for this transaction. format: string example: "4" category_id: type: string description: Category ID for this transaction. format: string example: "211" source_id: type: string description: ID of the source account. Submit either this or source_name. format: string example: "913" destination_id: type: string description: ID of the destination account. Submit either this or destination_name. format: string example: "258" tags: type: array description: Array of tags. nullable: true items: type: string description: Tag. format: string example: Barbecue preparation example: null piggy_bank_id: type: string format: string nullable: true example: "123" bill_id: type: string description: Optional. format: string nullable: true example: "123" Rule: required: - actions - rule_group_id - title - trigger - triggers type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 title: type: string format: string example: First rule title. description: type: string format: string example: First rule description rule_group_id: type: string description: ID of the rule group under which the rule must be stored. Either this field or rule_group_title is mandatory. format: string example: "81" rule_group_title: type: string description: Title of the rule group under which the rule must be stored. Either this field or rule_group_id is mandatory. format: string example: New rule group order: type: integer format: int32 readOnly: true example: 5 trigger: $ref: '#/components/schemas/RuleTriggerType' active: type: boolean description: Whether or not the rule is even active. Default is true. format: boolean example: true default: true strict: type: boolean description: "If the rule is set to be strict, ALL triggers must hit in\ \ order for the rule to fire. Otherwise, just one is enough. Default value\ \ is true." format: boolean example: true stop_processing: type: boolean description: "If this value is true and the rule is triggered, other rules\ \ after this one in the group will be skipped. Default value is false." format: boolean example: false default: false triggers: type: array items: $ref: '#/components/schemas/RuleTrigger' actions: type: array items: $ref: '#/components/schemas/RuleAction' example: created_at: 2018-09-17T12:46:47+01:00 description: First rule description active: true trigger: store-journal title: First rule title. rule_group_id: "81" triggers: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 rule_group_title: New rule group strict: true actions: - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 - stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 order: 5 RuleStore: required: - actions - rule_group_id - title - trigger - triggers type: object properties: title: type: string format: string example: First rule title. description: type: string format: string example: First rule description rule_group_id: type: string description: ID of the rule group under which the rule must be stored. Either this field or rule_group_title is mandatory. format: string example: "81" rule_group_title: type: string description: Title of the rule group under which the rule must be stored. Either this field or rule_group_id is mandatory. format: string example: New rule group order: type: integer format: int32 example: 5 trigger: $ref: '#/components/schemas/RuleTriggerType' active: type: boolean description: Whether or not the rule is even active. Default is true. format: boolean example: true default: true strict: type: boolean description: "If the rule is set to be strict, ALL triggers must hit in\ \ order for the rule to fire. Otherwise, just one is enough. Default value\ \ is true." format: boolean example: true default: true stop_processing: type: boolean description: "If this value is true and the rule is triggered, other rules\ \ after this one in the group will be skipped. Default value is false." format: boolean example: false triggers: type: array items: $ref: '#/components/schemas/RuleTriggerStore' actions: type: array items: $ref: '#/components/schemas/RuleActionStore' RuleUpdate: type: object properties: title: type: string format: string example: First rule title. description: type: string format: string example: First rule description rule_group_id: type: string description: ID of the rule group under which the rule must be stored. Either this field or rule_group_title is mandatory. format: string example: "81" order: type: integer format: int32 example: 5 trigger: $ref: '#/components/schemas/RuleTriggerType' active: type: boolean description: Whether or not the rule is even active. Default is true. format: boolean example: true default: true strict: type: boolean description: "If the rule is set to be strict, ALL triggers must hit in\ \ order for the rule to fire. Otherwise, just one is enough. Default value\ \ is true." format: boolean example: true stop_processing: type: boolean description: "If this value is true and the rule is triggered, other rules\ \ after this one in the group will be skipped. Default value is false." format: boolean example: false default: false triggers: type: array items: $ref: '#/components/schemas/RuleTriggerUpdate' actions: type: array items: $ref: '#/components/schemas/RuleActionUpdate' RuleAction: required: - type - value type: object properties: id: type: string format: string readOnly: true example: "2" created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 type: $ref: '#/components/schemas/RuleActionKeyword' value: type: string description: "The accompanying value the action will set, change or update.\ \ Can be empty, but for some types this value is mandatory." format: string nullable: true example: Daily groceries order: type: integer description: Order of the action format: int32 example: 5 active: type: boolean description: If the action is active. Defaults to true. format: boolean example: true default: true stop_processing: type: boolean description: "When true, other actions will not be fired after this action\ \ has fired. Defaults to false." format: boolean example: false default: false example: stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: set_category value: Daily groceries order: 5 RuleActionStore: required: - type - value type: object properties: type: $ref: '#/components/schemas/RuleActionKeyword' value: type: string description: "The accompanying value the action will set, change or update.\ \ Can be empty, but for some types this value is mandatory." format: string nullable: true example: Daily groceries order: type: integer description: Order of the action format: int32 example: 5 active: type: boolean description: If the action is active. Defaults to true. format: boolean example: true default: true stop_processing: type: boolean description: "When true, other actions will not be fired after this action\ \ has fired. Defaults to false." format: boolean example: false default: false RuleActionUpdate: type: object properties: type: $ref: '#/components/schemas/RuleActionKeyword' value: type: string description: "The accompanying value the action will set, change or update.\ \ Can be empty, but for some types this value is mandatory." format: string nullable: true example: Daily groceries order: type: integer description: Order of the action format: int32 example: 5 active: type: boolean description: If the action is active. format: boolean example: true stop_processing: type: boolean description: "When true, other actions will not be fired after this action\ \ has fired." format: boolean example: false RuleGroup: required: - title type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 title: type: string format: string example: Default rule group description: type: string format: string nullable: true example: Description of this rule group order: type: integer format: int32 readOnly: true example: 4 active: type: boolean format: boolean example: true example: updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 description: Description of this rule group active: true title: Default rule group order: 4 RuleGroupStore: required: - title type: object properties: title: type: string format: string example: Default rule group description: type: string format: string nullable: true example: Description of this rule group order: type: integer format: int32 example: 4 active: type: boolean format: boolean example: true RuleGroupUpdate: type: object properties: title: type: string format: string example: Default rule group description: type: string format: string nullable: true example: Description of this rule group order: type: integer format: int32 example: 4 active: type: boolean format: boolean example: true RuleTrigger: required: - type - value type: object properties: id: type: string format: string readOnly: true example: "2" created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 type: $ref: '#/components/schemas/RuleTriggerKeyword' value: type: string description: "The accompanying value the trigger responds to. This value\ \ is often mandatory, but this depends on the trigger." format: string example: tag1 prohibited: type: boolean description: "If 'prohibited' is true, this rule trigger will be negated.\ \ 'Description is' will become 'Description is NOT' etc." format: boolean example: false default: false order: type: integer description: Order of the trigger format: int32 readOnly: true example: 5 active: type: boolean description: If the trigger is active. Defaults to true. format: boolean example: true default: true stop_processing: type: boolean description: "When true, other triggers will not be checked if this trigger\ \ was triggered. Defaults to false." format: boolean example: false default: false example: stop_processing: false updated_at: 2018-09-17T12:46:47+01:00 prohibited: false created_at: 2018-09-17T12:46:47+01:00 active: true id: "2" type: user_action value: tag1 order: 5 RuleTriggerStore: required: - type - value type: object properties: type: $ref: '#/components/schemas/RuleTriggerKeyword' value: type: string description: "The accompanying value the trigger responds to. This value\ \ is often mandatory, but this depends on the trigger." format: string example: tag1 order: type: integer description: Order of the trigger format: int32 example: 5 active: type: boolean description: If the trigger is active. Defaults to true. format: boolean example: true default: true prohibited: type: boolean description: "If 'prohibited' is true, this rule trigger will be negated.\ \ 'Description is' will become 'Description is NOT' etc." format: boolean example: false default: false stop_processing: type: boolean description: "When true, other triggers will not be checked if this trigger\ \ was triggered. Defaults to false." format: boolean example: false default: false RuleTriggerUpdate: type: object properties: type: $ref: '#/components/schemas/RuleTriggerKeyword' value: type: string description: "The accompanying value the trigger responds to. This value\ \ is often mandatory, but this depends on the trigger. If the rule trigger\ \ is something like 'has any tag', submit the string 'true'." format: string example: tag1 order: type: integer description: Order of the trigger format: int32 example: 5 active: type: boolean description: If the trigger is active. format: boolean example: true stop_processing: type: boolean description: "When true, other triggers will not be checked if this trigger\ \ was triggered." format: boolean example: false TagModel: title: A single tag required: - tag type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 tag: type: string description: The tag format: string example: expensive date: type: string description: The date to which the tag is applicable. format: date nullable: true example: 2018-09-17 description: type: string format: string nullable: true example: Tag for expensive stuff latitude: type: number description: "Latitude of the tag's location, if applicable. Can be used\ \ to draw a map." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the tag's location, if applicable. Can be used\ \ to draw a map." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels." format: int32 nullable: true example: 6 example: date: 2018-09-17T00:00:00.000+00:00 updated_at: 2018-09-17T12:46:47+01:00 latitude: 51.983333 created_at: 2018-09-17T12:46:47+01:00 description: Tag for expensive stuff tag: expensive zoom_level: 6 longitude: 5.916667 TagModelStore: title: A single tag required: - tag type: object properties: tag: type: string description: The tag format: string example: expensive date: type: string description: The date to which the tag is applicable. format: date nullable: true example: 2018-09-17 description: type: string format: string nullable: true example: Tag for expensive stuff latitude: type: number description: "Latitude of the tag's location, if applicable. Can be used\ \ to draw a map." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the tag's location, if applicable. Can be used\ \ to draw a map." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels." format: int32 nullable: true example: 6 TagModelUpdate: title: A single tag type: object properties: tag: type: string description: The tag format: string example: expensive date: type: string description: The date to which the tag is applicable. format: date nullable: true example: 2018-09-17 description: type: string format: string nullable: true example: Tag for expensive stuff latitude: type: number description: "Latitude of the tag's location, if applicable. Can be used\ \ to draw a map." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the tag's location, if applicable. Can be used\ \ to draw a map." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels." format: int32 nullable: true example: 6 Currency: required: - code - name - symbol type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 enabled: type: boolean description: Defaults to true format: boolean example: true default: true default: type: boolean description: Make this currency the default currency. format: boolean example: false code: type: string format: string example: AMS name: type: string format: string example: Ankh-Morpork dollar symbol: type: string format: string example: AM$ decimal_places: type: integer description: Supports 0-16 decimals. format: int32 example: 2 example: symbol: AM$ default: false code: AMS updated_at: 2018-09-17T12:46:47+01:00 name: Ankh-Morpork dollar created_at: 2018-09-17T12:46:47+01:00 enabled: true decimal_places: 2 CurrencyStore: required: - code - name - symbol type: object properties: enabled: type: boolean description: Defaults to true format: boolean example: true default: true default: type: boolean description: "Make this currency the default currency. You can set this\ \ value to FALSE, in which case nothing will change to the default currency.\ \ If you set it to TRUE, the current default currency will no longer be\ \ the default currency." format: boolean example: true code: type: string format: string example: AMS name: type: string format: string example: Ankh-Morpork dollar symbol: type: string format: string example: AM$ decimal_places: type: integer description: Supports 0-16 decimals. format: int32 example: 2 CurrencyUpdate: type: object properties: enabled: type: boolean description: If the currency is enabled format: boolean example: true default: type: boolean description: "If the currency must be the default for the user. You can\ \ only submit TRUE. Submitting FALSE will not drop this currency as the\ \ default currency, because then the system would be without one." format: boolean example: true enum: - true code: type: string description: The currency code format: string example: AMS name: type: string description: The currency name format: string example: Ankh-Morpork dollar symbol: type: string description: The currency symbol format: string example: AM$ decimal_places: type: integer description: How many decimals to use when displaying this currency. Between 0 and 16. format: int32 example: 2 Transaction: required: - transactions type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 user: type: string description: User ID format: string readOnly: true example: "3" group_title: type: string description: Title of the transaction if it has been split in more than one piece. Empty otherwise. format: string nullable: true readOnly: false example: Split transaction title. transactions: type: array items: $ref: '#/components/schemas/TransactionSplit' example: group_title: Split transaction title. updated_at: 2018-09-17T12:46:47+01:00 created_at: 2018-09-17T12:46:47+01:00 transactions: - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci - date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci user: "3" TransactionStore: required: - transactions type: object properties: error_if_duplicate_hash: type: boolean description: Break if the submitted transaction exists already. format: boolean example: false apply_rules: type: boolean description: Whether or not to apply rules when submitting transaction. format: boolean example: false fire_webhooks: type: boolean description: Whether or not to fire the webhooks that are related to this event. format: boolean example: true default: true group_title: type: string description: Title of the transaction if it has been split in more than one piece. Empty otherwise. format: string nullable: true example: Split transaction title. transactions: type: array items: $ref: '#/components/schemas/TransactionSplitStore' TransactionUpdate: type: object properties: apply_rules: type: boolean description: Whether or not to apply rules when submitting transaction. format: boolean example: false fire_webhooks: type: boolean description: Whether or not to fire the webhooks that are related to this event. format: boolean example: true default: true group_title: type: string description: Title of the transaction if it has been split in more than one piece. Empty otherwise. format: string nullable: true example: Split transaction title. transactions: type: array items: $ref: '#/components/schemas/TransactionSplitUpdate' TransactionLink: required: - inward_id - link_type_id - outward_id type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 link_type_id: type: string description: The link type ID to use. You can also use the link_type_name field. format: string writeOnly: true example: "5" link_type_name: type: string description: The link type name to use. You can also use the link_type_id field. format: string writeOnly: true example: Is paid by inward_id: type: string description: The inward transaction transaction_journal_id for the link. This becomes the 'is paid by' transaction of the set. format: string example: "131" outward_id: type: string description: The outward transaction transaction_journal_id for the link. This becomes the 'pays for' transaction of the set. format: string example: "131" notes: type: string description: Optional. Some notes. format: string nullable: true example: Some example notes example: notes: Some example notes updated_at: 2018-09-17T12:46:47+01:00 link_type_id: "5" link_type_name: Is paid by outward_id: "131" created_at: 2018-09-17T12:46:47+01:00 inward_id: "131" TransactionLinkStore: required: - inward_id - link_type_id - outward_id type: object properties: link_type_id: type: string description: The link type ID to use. You can also use the link_type_name field. format: string writeOnly: true example: "5" link_type_name: type: string description: The link type name to use. You can also use the link_type_id field. format: string writeOnly: true example: Is paid by inward_id: type: string description: The inward transaction transaction_journal_id for the link. This becomes the 'is paid by' transaction of the set. format: string example: "131" outward_id: type: string description: The outward transaction transaction_journal_id for the link. This becomes the 'pays for' transaction of the set. format: string example: "131" notes: type: string description: Optional. Some notes. format: string nullable: true example: Some example notes TransactionLinkUpdate: type: object properties: link_type_id: type: string description: The link type ID to use. Use this field OR use the link_type_name field. format: string writeOnly: true example: "5" link_type_name: type: string description: The link type name to use. Use this field OR use the link_type_id field. format: string writeOnly: true example: Is paid by inward_id: type: string description: The inward transaction transaction_journal_id for the link. This becomes the 'is paid by' transaction of the set. format: string example: "131" outward_id: type: string description: The outward transaction transaction_journal_id for the link. This becomes the 'pays for' transaction of the set. format: string example: "131" notes: type: string description: Optional. Some notes. If you submit an empty string the current notes will be removed format: string nullable: true example: Some example notes LinkType: required: - inward - name - outward type: object properties: name: type: string format: string example: Paid inward: type: string format: string example: is (partially) paid for by outward: type: string format: string example: (partially) pays for editable: type: boolean format: boolean readOnly: true example: false example: inward: is (partially) paid for by editable: false name: Paid outward: (partially) pays for LinkTypeUpdate: type: object properties: name: type: string format: string example: Paid inward: type: string format: string example: is (partially) paid for by outward: type: string format: string example: (partially) pays for TransactionSplit: required: - amount - date - description - destination_id - source_id - type type: object properties: user: type: string description: User ID format: string readOnly: true example: "3" transaction_journal_id: type: string description: | ID of the underlying transaction journal. Each transaction consists of a transaction group (see the top ID) and one or more journals making up the splits of the transaction. format: string readOnly: true example: "10421" type: $ref: '#/components/schemas/TransactionTypeProperty' date: type: string description: Date of the transaction format: date-time example: 2018-09-17T12:46:47+01:00 order: type: integer description: Order of this entry in the list of transactions. format: int32 nullable: true example: 0 currency_id: type: string description: "Currency ID. Default is the source account's currency, or\ \ the user's default currency. Can be used instead of currency_code." format: string nullable: true example: "12" currency_code: type: string description: "Currency code. Default is the source account's currency, or\ \ the user's default currency. Can be used instead of currency_id." format: string nullable: true example: EUR currency_symbol: type: string format: string readOnly: true example: $ currency_name: type: string format: string readOnly: true example: Euro currency_decimal_places: type: integer description: Number of decimals used in this currency. format: int32 readOnly: true example: 2 foreign_currency_id: type: string description: Currency ID of the foreign currency. Default is null. Is required when you submit a foreign amount. format: string nullable: true example: "17" foreign_currency_code: type: string description: "Currency code of the foreign currency. Default is NULL. Can\ \ be used instead of the foreign_currency_id, but this or the ID is required\ \ when submitting a foreign amount." format: string nullable: true example: USD foreign_currency_symbol: type: string format: string nullable: true readOnly: true example: $ foreign_currency_decimal_places: type: integer description: Number of decimals in the currency format: int32 nullable: true readOnly: true example: 2 amount: type: string description: Amount of the transaction. format: amount example: "123.45" foreign_amount: type: string description: The amount in a foreign currency. format: amount nullable: true example: "123.45" description: type: string description: Description of the transaction. format: string example: Vegetables source_id: type: string description: "ID of the source account. For a withdrawal or a transfer,\ \ this must always be an asset account. For deposits, this must be a revenue\ \ account." format: string nullable: true example: "2" source_name: type: string description: "Name of the source account. For a withdrawal or a transfer,\ \ this must always be an asset account. For deposits, this must be a revenue\ \ account. Can be used instead of the source_id. If the transaction is\ \ a deposit, the source_name can be filled in freely: the account will\ \ be created based on the name." format: string nullable: true example: Checking account source_iban: type: string format: string nullable: true readOnly: true example: NL02ABNA0123456789 source_type: $ref: '#/components/schemas/AccountTypeProperty' destination_id: type: string description: "ID of the destination account. For a deposit or a transfer,\ \ this must always be an asset account. For withdrawals this must be an\ \ expense account." format: string nullable: true example: "2" destination_name: type: string description: "Name of the destination account. You can submit the name instead\ \ of the ID. For everything except transfers, the account will be auto-generated\ \ if unknown, so submitting a name is enough." format: string nullable: true example: Buy and Large destination_iban: type: string format: string nullable: true readOnly: true example: NL02ABNA0123456789 destination_type: $ref: '#/components/schemas/AccountTypeProperty' budget_id: type: string description: The budget ID for this transaction. format: string nullable: true example: "4" budget_name: type: string description: "The name of the budget to be used. If the budget name is unknown,\ \ the ID will be used or the value will be ignored." format: string nullable: true readOnly: true example: Groceries category_id: type: string description: The category ID for this transaction. format: string nullable: true example: "43" category_name: type: string description: "The name of the category to be used. If the category is unknown,\ \ it will be created. If the ID and the name point to different categories,\ \ the ID overrules the name." format: string nullable: true example: Groceries bill_id: type: string description: Optional. Use either this or the bill_name format: string nullable: true example: "111" bill_name: type: string description: Optional. Use either this or the bill_id format: string nullable: true example: Monthly rent reconciled: type: boolean description: "If the transaction has been reconciled already. When you set\ \ this, the amount can no longer be edited by the user." format: boolean example: false notes: type: string format: string nullable: true example: Some example notes tags: type: array description: Array of tags. nullable: true items: type: string description: Tag. format: string example: Barbecue preparation example: null internal_reference: type: string description: Reference to internal reference of other systems. format: string nullable: true external_id: type: string description: Reference to external ID in other systems. format: string nullable: true external_url: type: string description: "External, custom URL for this transaction." format: string nullable: true original_source: type: string description: System generated identifier for original creator of transaction. format: string nullable: true readOnly: true recurrence_id: type: string description: Reference to recurrence that made the transaction. format: string nullable: true readOnly: true recurrence_total: type: integer description: Total number of transactions expected to be created by this recurrence repetition. Will be 0 if infinite. format: int32 nullable: true readOnly: true example: 0 recurrence_count: type: integer description: "The # of the current transaction created under this recurrence." format: int32 nullable: true readOnly: true example: 12 bunq_payment_id: type: string description: Internal ID of bunq transaction. DEPRECATED format: string nullable: true import_hash_v2: type: string description: Hash value of original import transaction (for duplicate detection). format: string nullable: true readOnly: true sepa_cc: type: string description: SEPA Clearing Code format: string nullable: true sepa_ct_op: type: string description: SEPA Opposing Account Identifier format: string nullable: true sepa_ct_id: type: string description: SEPA end-to-end Identifier format: string nullable: true sepa_db: type: string description: SEPA mandate identifier format: string nullable: true sepa_country: type: string description: SEPA Country format: string nullable: true sepa_ep: type: string description: SEPA External Purpose indicator format: string nullable: true sepa_ci: type: string description: SEPA Creditor Identifier format: string nullable: true sepa_batch_id: type: string description: SEPA Batch ID format: string nullable: true interest_date: type: string format: date-time nullable: true book_date: type: string format: date-time nullable: true process_date: type: string format: date-time nullable: true due_date: type: string format: date-time nullable: true payment_date: type: string format: date-time nullable: true invoice_date: type: string format: date-time nullable: true latitude: type: number description: "Latitude of the transaction's location, if applicable. Can\ \ be used to draw a map." format: double nullable: true example: 51.983333 longitude: type: number description: "Latitude of the transaction's location, if applicable. Can\ \ be used to draw a map." format: double nullable: true example: 5.916667 zoom_level: type: integer description: "Zoom level for the map, if drawn. This to set the box right.\ \ Unfortunately this is a proprietary value because each map provider\ \ has different zoom levels." format: int32 nullable: true example: 6 has_attachments: type: boolean description: If the transaction has attachments. format: boolean example: false example: date: 2018-09-17T12:46:47+01:00 category_name: Groceries notes: Some example notes sepa_batch_id: sepa_batch_id destination_id: "2" zoom_level: 6 type: withdrawal destination_type: null external_url: external_url transaction_journal_id: "10421" payment_date: 2000-01-23T04:56:07.000+00:00 order: 0 longitude: 5.916667 bill_id: "111" foreign_currency_code: USD reconciled: false sepa_country: sepa_country source_type: Asset account foreign_currency_decimal_places: 2 bill_name: Monthly rent original_source: original_source sepa_ct_id: sepa_ct_id tags: - Barbecue preparation - Barbecue preparation foreign_amount: "123.45" process_date: 2000-01-23T04:56:07.000+00:00 sepa_ep: sepa_ep internal_reference: internal_reference sepa_cc: sepa_cc destination_iban: NL02ABNA0123456789 source_iban: NL02ABNA0123456789 budget_id: "4" latitude: 51.983333 description: Vegetables destination_name: Buy and Large external_id: external_id currency_code: EUR import_hash_v2: import_hash_v2 currency_decimal_places: 2 invoice_date: 2000-01-23T04:56:07.000+00:00 category_id: "43" foreign_currency_symbol: $ recurrence_id: recurrence_id foreign_currency_id: "17" source_name: Checking account amount: "123.45" budget_name: Groceries currency_name: Euro has_attachments: false currency_symbol: $ interest_date: 2000-01-23T04:56:07.000+00:00 sepa_db: sepa_db due_date: 2000-01-23T04:56:07.000+00:00 recurrence_total: 0 book_date: 2000-01-23T04:56:07.000+00:00 recurrence_count: 12 bunq_payment_id: bunq_payment_id sepa_ct_op: sepa_ct_op source_id: "2" user: "3" currency_id: "12" sepa_ci: sepa_ci TransactionSplitStore: required: - amount - date - description - type type: object properties: type: $ref: '#/components/schemas/TransactionTypeProperty' date: type: string description: Date of the transaction format: date-time example: 2018-09-17T12:46:47+01:00 amount: type: string description: Amount of the transaction. format: amount example: "123.45" description: type: string description: Description of the transaction. format: string example: Vegetables order: type: integer description: Order of this entry in the list of transactions. format: int32 nullable: true example: 0 currency_id: type: string description: "Currency ID. Default is the source account's currency, or\ \ the user's default currency. The value you submit may be overruled by\ \ the source or destination account." format: string nullable: true example: "12" currency_code: type: string description: "Currency code. Default is the source account's currency, or\ \ the user's default currency. The value you submit may be overruled by\ \ the source or destination account." format: string nullable: true example: EUR foreign_amount: type: string description: The amount in a foreign currency. format: amount nullable: true example: "123.45" foreign_currency_id: type: string description: Currency ID of the foreign currency. Default is null. Is required when you submit a foreign amount. format: string nullable: true example: "17" foreign_currency_code: type: string description: "Currency code of the foreign currency. Default is NULL. Can\ \ be used instead of the foreign_currency_id, but this or the ID is required\ \ when submitting a foreign amount." format: string nullable: true example: USD budget_id: type: string description: The budget ID for this transaction. format: string nullable: true example: "4" budget_name: type: string description: "The name of the budget to be used. If the budget name is unknown,\ \ the ID will be used or the value will be ignored." format: string nullable: true readOnly: true example: Groceries category_id: type: string description: The category ID for this transaction. format: string nullable: true example: "43" category_name: type: string description: "The name of the category to be used. If the category is unknown,\ \ it will be created. If the ID and the name point to different categories,\ \ the ID overrules the name." format: string nullable: true example: Groceries source_id: type: string description: "ID of the source account. For a withdrawal or a transfer,\ \ this must always be an asset account. For deposits, this must be a revenue\ \ account." format: string nullable: true example: "2" source_name: type: string description: "Name of the source account. For a withdrawal or a transfer,\ \ this must always be an asset account. For deposits, this must be a revenue\ \ account. Can be used instead of the source_id. If the transaction is\ \ a deposit, the source_name can be filled in freely: the account will\ \ be created based on the name." format: string nullable: true example: Checking account destination_id: type: string description: "ID of the destination account. For a deposit or a transfer,\ \ this must always be an asset account. For withdrawals this must be an\ \ expense account." format: string nullable: true example: "2" destination_name: type: string description: "Name of the destination account. You can submit the name instead\ \ of the ID. For everything except transfers, the account will be auto-generated\ \ if unknown, so submitting a name is enough." format: string nullable: true example: Buy and Large reconciled: type: boolean description: "If the transaction has been reconciled already. When you set\ \ this, the amount can no longer be edited by the user." format: boolean example: false piggy_bank_id: type: integer description: Optional. Use either this or the piggy_bank_name format: int32 nullable: true writeOnly: true piggy_bank_name: type: string description: Optional. Use either this or the piggy_bank_id format: string nullable: true writeOnly: true bill_id: type: string description: Optional. Use either this or the bill_name format: string nullable: true example: "112" bill_name: type: string description: Optional. Use either this or the bill_id format: string nullable: true example: Monthly rent tags: type: array description: Array of tags. nullable: true items: type: string description: Tag. format: string example: Barbecue preparation example: null notes: type: string format: string nullable: true example: Some example notes internal_reference: type: string description: Reference to internal reference of other systems. format: string nullable: true external_id: type: string description: Reference to external ID in other systems. format: string nullable: true external_url: type: string description: "External, custom URL for this transaction." format: string nullable: true bunq_payment_id: type: string description: Internal ID of bunq transaction. Field is no longer used but still works. format: string nullable: true sepa_cc: type: string description: SEPA Clearing Code format: string nullable: true sepa_ct_op: type: string description: SEPA Opposing Account Identifier format: string nullable: true sepa_ct_id: type: string description: SEPA end-to-end Identifier format: string nullable: true sepa_db: type: string description: SEPA mandate identifier format: string nullable: true sepa_country: type: string description: SEPA Country format: string nullable: true sepa_ep: type: string description: SEPA External Purpose indicator format: string nullable: true sepa_ci: type: string description: SEPA Creditor Identifier format: string nullable: true sepa_batch_id: type: string description: SEPA Batch ID format: string nullable: true interest_date: type: string format: date-time nullable: true book_date: type: string format: date-time nullable: true process_date: type: string format: date-time nullable: true due_date: type: string format: date-time nullable: true payment_date: type: string format: date-time nullable: true invoice_date: type: string format: date-time nullable: true TransactionSplitUpdate: type: object properties: transaction_journal_id: type: string description: Transaction journal ID of current transaction (split). format: string example: "123" type: $ref: '#/components/schemas/TransactionTypeProperty' date: type: string description: Date of the transaction format: date-time example: 2018-09-17T12:46:47+01:00 amount: type: string description: Amount of the transaction. format: amount example: "123.45" description: type: string description: Description of the transaction. format: string example: Vegetables order: type: integer description: Order of this entry in the list of transactions. format: int32 nullable: true example: 0 currency_id: type: string description: "Currency ID. Default is the source account's currency, or\ \ the user's default currency. Can be used instead of currency_code." format: string nullable: true example: "12" currency_code: type: string description: "Currency code. Default is the source account's currency, or\ \ the user's default currency. Can be used instead of currency_id." format: string nullable: true example: EUR currency_symbol: type: string format: string readOnly: true example: $ currency_name: type: string format: string readOnly: true example: Euro currency_decimal_places: type: integer description: Number of decimals used in this currency. format: int32 readOnly: true example: 2 foreign_amount: type: string description: The amount in a foreign currency. format: amount nullable: true example: "123.45" foreign_currency_id: type: string description: Currency ID of the foreign currency. Default is null. Is required when you submit a foreign amount. format: string nullable: true example: "17" foreign_currency_code: type: string description: "Currency code of the foreign currency. Default is NULL. Can\ \ be used instead of the foreign_currency_id, but this or the ID is required\ \ when submitting a foreign amount." format: string nullable: true example: USD foreign_currency_symbol: type: string format: string nullable: true readOnly: true example: $ foreign_currency_decimal_places: type: integer description: Number of decimals in the currency format: int32 nullable: true readOnly: true example: 2 budget_id: type: string description: The budget ID for this transaction. format: string nullable: true example: "4" budget_name: type: string description: "The name of the budget to be used. If the budget name is unknown,\ \ the ID will be used or the value will be ignored." format: string nullable: true readOnly: true example: Groceries category_id: type: string description: The category ID for this transaction. format: string nullable: true example: "43" category_name: type: string description: "The name of the category to be used. If the category is unknown,\ \ it will be created. If the ID and the name point to different categories,\ \ the ID overrules the name." format: string nullable: true example: Groceries source_id: type: string description: "ID of the source account. For a withdrawal or a transfer,\ \ this must always be an asset account. For deposits, this must be a revenue\ \ account." format: string nullable: true example: "2" source_name: type: string description: "Name of the source account. For a withdrawal or a transfer,\ \ this must always be an asset account. For deposits, this must be a revenue\ \ account. Can be used instead of the source_id. If the transaction is\ \ a deposit, the source_name can be filled in freely: the account will\ \ be created based on the name." format: string nullable: true example: Checking account source_iban: type: string format: string nullable: true example: NL02ABNA0123456789 destination_id: type: string description: "ID of the destination account. For a deposit or a transfer,\ \ this must always be an asset account. For withdrawals this must be an\ \ expense account." format: string nullable: true example: "2" destination_name: type: string description: "Name of the destination account. You can submit the name instead\ \ of the ID. For everything except transfers, the account will be auto-generated\ \ if unknown, so submitting a name is enough." format: string nullable: true example: Buy and Large destination_iban: type: string format: string nullable: true example: NL02ABNA0123456789 reconciled: type: boolean description: "If the transaction has been reconciled already. When you set\ \ this, the amount can no longer be edited by the user." format: boolean example: false bill_id: type: string description: Optional. Use either this or the bill_name format: string nullable: true example: "111" bill_name: type: string description: Optional. Use either this or the bill_id format: string nullable: true example: Monthly rent tags: type: array description: Array of tags. nullable: true items: type: string description: Tag. format: string example: Barbecue preparation example: null notes: type: string format: string nullable: true example: Some example notes internal_reference: type: string description: Reference to internal reference of other systems. format: string nullable: true external_id: type: string description: Reference to external ID in other systems. format: string nullable: true external_url: type: string description: "External, custom URL for this transaction." format: string nullable: true bunq_payment_id: type: string description: Internal ID of bunq transaction. format: string nullable: true sepa_cc: type: string description: SEPA Clearing Code format: string nullable: true sepa_ct_op: type: string description: SEPA Opposing Account Identifier format: string nullable: true sepa_ct_id: type: string description: SEPA end-to-end Identifier format: string nullable: true sepa_db: type: string description: SEPA mandate identifier format: string nullable: true sepa_country: type: string description: SEPA Country format: string nullable: true sepa_ep: type: string description: SEPA External Purpose indicator format: string nullable: true sepa_ci: type: string description: SEPA Creditor Identifier format: string nullable: true sepa_batch_id: type: string description: SEPA Batch ID format: string nullable: true interest_date: type: string format: date-time nullable: true book_date: type: string format: date-time nullable: true process_date: type: string format: date-time nullable: true due_date: type: string format: date-time nullable: true payment_date: type: string format: date-time nullable: true invoice_date: type: string format: date-time nullable: true User: title: A single user required: - email type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 email: type: string description: The new users email address. format: email example: james@firefly-iii.org blocked: type: boolean description: Boolean to indicate if the user is blocked. format: boolean example: false blocked_code: $ref: '#/components/schemas/UserBlockedCodeProperty' role: $ref: '#/components/schemas/UserRoleProperty' example: role: owner updated_at: 2018-09-17T12:46:47+01:00 blocked: false created_at: 2018-09-17T12:46:47+01:00 blocked_code: email_changed email: james@firefly-iii.org Webhook: title: A single webhook required: - delivery - response - title - trigger - url type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 active: type: boolean description: Boolean to indicate if the webhook is active format: boolean example: false title: type: string description: A title for the webhook for easy recognition. format: string example: Update magic mirror on new transaction secret: type: string description: "A 24-character secret for the webhook. It's generated by Firefly\ \ III when saving a new webhook. If you submit a new secret through the\ \ PUT endpoint it will generate a new secret for the selected webhook,\ \ a new secret bearing no relation to whatever you just submitted." format: string readOnly: true example: iMLZLtLx2JHWhK9Dtyuoqyir trigger: $ref: '#/components/schemas/WebhookTrigger' response: $ref: '#/components/schemas/WebhookResponse' delivery: $ref: '#/components/schemas/WebhookDelivery' url: type: string description: The URL of the webhook. Has to start with `https`. format: string readOnly: false example: https://example.com example: delivery: JSON updated_at: 2018-09-17T12:46:47+01:00 response: RESPONSE_TRANSACTIONS created_at: 2018-09-17T12:46:47+01:00 active: false secret: iMLZLtLx2JHWhK9Dtyuoqyir trigger: DESTROY_TRANSACTION title: Update magic mirror on new transaction url: https://example.com WebhookStore: title: A single webhook required: - delivery - response - title - trigger - url type: object properties: active: type: boolean description: Boolean to indicate if the webhook is active format: boolean example: false title: type: string description: A title for the webhook for easy recognition. format: string example: Update magic mirror on new transaction trigger: $ref: '#/components/schemas/WebhookTrigger' response: $ref: '#/components/schemas/WebhookResponse' delivery: $ref: '#/components/schemas/WebhookDelivery' url: type: string description: The URL of the webhook. Has to start with `https`. format: string readOnly: false example: https://example.com WebhookUpdate: title: A single webhook type: object properties: active: type: boolean description: Boolean to indicate if the webhook is active format: boolean example: false title: type: string description: A title for the webhook for easy recognition. format: string example: Update magic mirror on new transaction secret: type: string description: "A 24-character secret for the webhook. It's generated by Firefly\ \ III when saving a new webhook. If you submit a new secret through the\ \ PUT endpoint it will generate a new secret for the selected webhook,\ \ a new secret bearing no relation to whatever you just submitted." format: string example: iMLZLtLx2JHWhK9Dtyuoqyir trigger: $ref: '#/components/schemas/WebhookTrigger' response: $ref: '#/components/schemas/WebhookResponse' delivery: $ref: '#/components/schemas/WebhookDelivery' url: type: string description: The URL of the webhook. Has to start with `https`. format: string readOnly: false example: https://example.com WebhookAttempt: type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 webhook_message_id: type: string description: The ID of the webhook message this attempt belongs to. format: string example: "5" status_code: type: integer description: "The HTTP status code of the error, if any." format: int32 nullable: true example: 404 logs: type: string description: Internal log for this attempt. May contain sensitive user data. format: string nullable: true example: Page not found response: type: string description: "Webhook receiver response for this attempt, if any. May contain\ \ sensitive user data." format: amount nullable: true example: Page not found example: status_code: 404 updated_at: 2018-09-17T12:46:47+01:00 response: Page not found created_at: 2018-09-17T12:46:47+01:00 webhook_message_id: "5" logs: Page not found WebhookMessage: type: object properties: created_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 updated_at: type: string format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 sent: type: boolean description: If this message is sent yet. format: boolean example: false errored: type: boolean description: If this message has errored out. format: boolean example: false webhook_id: type: string description: The ID of the webhook this message belongs to. format: string example: "5" uuid: type: string description: Long UUID string for identification of this webhook message. format: string example: 7a344c02-5b52-46b1-90e6-a437431dcf07 message: type: string description: The actual message that is sent or will be sent as JSON string. format: string nullable: true example: "{some:message}" example: updated_at: 2018-09-17T12:46:47+01:00 webhook_id: "5" created_at: 2018-09-17T12:46:47+01:00 message: "{some:message}" sent: false uuid: 7a344c02-5b52-46b1-90e6-a437431dcf07 errored: false AttachableType: type: string description: The object class to which the attachment must be linked. format: string example: Bill enum: - Account - Budget - Bill - TransactionJournal - PiggyBank - Tag AutoBudgetPeriod: type: string description: Period for the auto budget format: string nullable: true example: monthly enum: - daily - weekly - monthly - quarterly - half-year - yearly - null AutoBudgetType: type: string description: The type of auto-budget that Firefly III must create. format: string nullable: true example: reset enum: - reset - rollover - none - null BillRepeatFrequency: type: string description: How often the bill must be paid. format: string example: monthly enum: - weekly - monthly - quarterly - half-year - yearly PolymorphicProperty: oneOf: - type: boolean - type: string - type: object - type: array items: $ref: '#/components/schemas/StringArrayItem' RecurrenceRepetitionType: type: string description: "The type of the repetition. ndom means: the n-th weekday of the\ \ month, where you can also specify which day of the week." format: string example: weekly enum: - daily - weekly - ndom - monthly - yearly RecurrenceTransactionType: type: string format: string example: withdrawal enum: - withdrawal - transfer - deposit RuleActionKeyword: type: string description: The type of thing this action will do. A limited set is possible. format: string example: set_category enum: - user_action - set_category - clear_category - set_budget - clear_budget - add_tag - remove_tag - remove_all_tags - set_description - append_description - prepend_description - set_source_account - set_destination_account - set_notes - append_notes - prepend_notes - clear_notes - link_to_bill - convert_withdrawal - convert_deposit - convert_transfer - delete_transaction RuleTriggerKeyword: type: string description: The type of thing this trigger responds to. A limited set is possible format: string example: user_action enum: - from_account_starts - from_account_ends - from_account_is - from_account_contains - to_account_starts - to_account_ends - to_account_is - to_account_contains - amount_less - amount_exactly - amount_more - description_starts - description_ends - description_contains - description_is - transaction_type - category_is - budget_is - tag_is - currency_is - has_attachments - has_no_category - has_any_category - has_no_budget - has_any_budget - has_no_tag - has_any_tag - notes_contains - notes_start - notes_end - notes_are - no_notes - any_notes - source_account_is - destination_account_is - source_account_starts RuleTriggerType: type: string description: Which action is necessary for the rule to fire? Use either store-journal or update-journal. format: string example: store-journal enum: - store-journal - update-journal StringArrayItem: type: string description: The actual preference content. format: string example: EUR UserBlockedCodeProperty: type: string description: "If you say the user must be blocked, this will be the reason code." format: string nullable: true example: email_changed enum: - email_changed - null UserRoleProperty: type: string description: Role for the user. Can be empty or omitted. format: string nullable: true example: owner enum: - owner - demo - null WebhookDelivery: type: string description: Format of the delivered response. format: string nullable: false example: JSON enum: - JSON WebhookResponse: type: string description: Indicator for what Firefly III will deliver to the webhook URL. format: string nullable: false example: RESPONSE_TRANSACTIONS enum: - TRANSACTIONS - ACCOUNTS - NONE WebhookTrigger: type: string description: The trigger for the webhook. format: string nullable: false example: DESTROY_TRANSACTION enum: - STORE_TRANSACTION - UPDATE_TRANSACTION - DESTROY_TRANSACTION BasicSummary: type: object additionalProperties: $ref: '#/components/schemas/BasicSummaryEntry' x-schema-name: BasicSummary BasicSummaryEntry: type: object properties: key: type: string description: "This is a reference to the type of info shared, not influenced\ \ by translations or user preferences. The EUR value is a reference to\ \ the currency code. Possibilities are: balance-in-ABC, spent-in-ABC,\ \ earned-in-ABC, bills-paid-in-ABC, bills-unpaid-in-ABC, left-to-spend-in-ABC\ \ and net-worth-in-ABC." format: string example: balance-in-EUR title: type: string description: A translated title for the information shared. format: string example: Balance ($) monetary_value: type: number description: The amount as a float. format: double example: 123.45 currency_id: type: string description: The currency ID of the associated currency. format: string example: "5" currency_code: type: string format: string example: EUR currency_symbol: type: string format: string example: $ currency_decimal_places: type: integer description: Number of decimals for the associated currency. format: int32 example: 2 value_parsed: type: string description: The amount formatted according to the users locale format: string example: $ 12.45 local_icon: type: string description: Reference to a font-awesome icon without the fa- part. format: string example: balance-scale sub_title: type: string description: "A short explanation of the amounts origin. Already formatted\ \ according to the locale of the user or translated, if relevant." format: string example: $20 + $-40 example: value_parsed: $ 12.45 sub_title: $20 + $-40 currency_symbol: $ monetary_value: 123.45 title: Balance ($) local_icon: balance-scale key: balance-in-EUR currency_id: "5" currency_code: EUR currency_decimal_places: 2 Configuration: required: - editable - title - value type: object properties: title: $ref: '#/components/schemas/ConfigValueFilter' value: $ref: '#/components/schemas/PolymorphicProperty' editable: type: boolean description: If this config variable can be edited by the user format: boolean readOnly: false example: true example: editable: true title: configuration.is_demo_site value: "" ConfigurationUpdate: required: - value type: object properties: value: $ref: '#/components/schemas/PolymorphicProperty' CronResult: type: object properties: recurring_transactions: $ref: '#/components/schemas/CronResultRow' auto_budgets: $ref: '#/components/schemas/CronResultRow' telemetry: $ref: '#/components/schemas/CronResultRow' example: recurring_transactions: job_errored: false job_fired: true job_succeeded: true message: Cron result message telemetry: null auto_budgets: null CronResultRow: type: object properties: job_fired: type: boolean description: | This value tells you if this specific cron job actually fired. It may not fire. Some cron jobs only fire every 24 hours, for example. format: boolean nullable: true example: true job_succeeded: type: boolean description: | This value tells you if this specific cron job actually did something. The job may fire but not change anything. format: boolean nullable: true example: true job_errored: type: boolean description: "If the cron job ran into some kind of an error, this value\ \ will be true." format: boolean nullable: true example: false message: type: string description: | If the cron job ran into some kind of an error, this value will be the error message. The success message if the job actually ran OK. format: string nullable: true example: Cron result message example: job_errored: false job_fired: true job_succeeded: true message: Cron result message SystemInfo: type: object properties: data: $ref: '#/components/schemas/SystemInfo_data' example: data: os: Linux driver: mysql php_version: 8.1.5 api_version: 2.0.0-alpha.1 version: 5.8.0-alpha.1 UserSingle: required: - data type: object properties: data: $ref: '#/components/schemas/UserRead' example: data: attributes: role: owner updated_at: 2018-09-17T12:46:47+01:00 blocked: false created_at: 2018-09-17T12:46:47+01:00 blocked_code: email_changed email: james@firefly-iii.org links: "0": rel: self uri: /OBJECTS/1 self: https://demo.firefly-iii.org/api/v1/OBJECTS/1 id: "2" type: users Meta: type: object properties: pagination: $ref: '#/components/schemas/Meta_pagination' example: pagination: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 BadRequestResponse: type: object properties: message: type: string format: string example: Bad Request exception: type: string format: string example: BadRequestHttpException InternalExceptionResponse: type: object properties: message: type: string format: string example: Internal Exception exception: type: string format: string example: InternalException NotFoundResponse: type: object properties: message: type: string format: string example: Resource not found exception: type: string format: string example: NotFoundHttpException UnauthenticatedResponse: type: object properties: message: type: string format: string example: Unauthenticated exception: type: string format: string example: AuthenticationException ValidationErrorResponse: type: object properties: message: type: string format: string example: The given data was invalid. errors: $ref: '#/components/schemas/ValidationErrorResponse_errors' AccountRoleProperty: type: string description: Is only mandatory when the type is asset. format: string nullable: true example: defaultAsset enum: - defaultAsset - sharedAsset - savingAsset - ccAsset - cashWalletAsset - null AccountTypeProperty: type: string format: string readOnly: true example: Asset account enum: - Default account - Cash account - Asset account - Expense account - Revenue account - Initial balance account - Beneficiary account - Import account - Reconciliation account - Loan - Debt - Mortgage CreditCardTypeProperty: type: string description: Mandatory when the account_role is ccAsset. Can only be monthlyFull or null. format: string nullable: true example: monthlyFull enum: - monthlyFull - null InterestPeriodProperty: type: string description: Mandatory when type is liability. Period over which the interest is calculated. format: string nullable: true example: monthly enum: - weekly - monthly - quarterly - half-year - yearly - null LiabilityDirectionProperty: type: string description: '''credit'' indicates somebody owes you the liability. ''debit'' Indicates you owe this debt yourself. Works only for liabiltiies.' format: string nullable: true example: credit enum: - credit - debit - null LiabilityTypeProperty: type: string description: Mandatory when type is liability. Specifies the exact type. format: string nullable: true example: loan enum: - loan - debt - mortgage - null ShortAccountTypeProperty: type: string description: "Can only be one one these account types. import, initial-balance\ \ and reconciliation cannot be set manually." format: string example: asset enum: - asset - expense - import - revenue - cash - liability - liabilities - initial-balance - reconciliation TransactionTypeProperty: type: string format: string example: withdrawal enum: - withdrawal - deposit - transfer - reconciliation - opening balance AccountTypeFilter: type: string enum: - all - asset - cash - expense - revenue - special - hidden - liability - liabilities - Default account - Cash account - Asset account - Expense account - Revenue account - Initial balance account - Beneficiary account - Import account - Reconciliation account - Loan - Debt - Mortgage TransactionTypeFilter: type: string enum: - all - withdrawal - withdrawals - expense - deposit - deposits - income - transfer - transfers - opening_balance - reconciliation - special - specials - default Bill_paid_dates: type: object properties: transaction_group_id: type: string description: Transaction group ID of the paid bill. format: string readOnly: true example: "123" transaction_journal_id: type: string description: Transaction journal ID of the paid bill. format: string readOnly: true example: "123" date: type: string description: Date the bill was paid. format: date-time readOnly: true example: 2018-09-17T12:46:47+01:00 readOnly: true example: date: 2018-09-17T12:46:47+01:00 transaction_group_id: "123" transaction_journal_id: "123" ObjectLink_0: type: object properties: rel: type: string format: string example: self uri: type: string format: string example: /OBJECTS/1 example: rel: self uri: /OBJECTS/1 SystemInfo_data: type: object properties: version: type: string format: string example: 5.8.0-alpha.1 api_version: type: string format: string example: 2.0.0-alpha.1 php_version: type: string format: string example: 8.1.5 os: type: string format: string example: Linux driver: type: string format: string example: mysql example: os: Linux driver: mysql php_version: 8.1.5 api_version: 2.0.0-alpha.1 version: 5.8.0-alpha.1 Meta_pagination: type: object properties: total: type: integer example: 3 count: type: integer example: 20 per_page: type: integer example: 100 current_page: type: integer example: 1 total_pages: type: integer example: 1 example: per_page: 100 total: 3 count: 20 total_pages: 1 current_page: 1 ValidationErrorResponse_errors: type: object properties: email: type: array items: type: string format: string blocked: type: array items: type: string format: string role: type: array items: type: string format: string blocked_code: type: array items: type: string format: string name: type: array items: type: string format: string type: type: array items: type: string format: string iban: type: array items: type: string format: string start: type: array items: type: string format: string end: type: array items: type: string format: string date: type: array items: type: string format: string securitySchemes: firefly_iii_auth: type: oauth2 description: Default OAuth2 flow flows: authorizationCode: authorizationUrl: https://demo.firefly-iii.org/oauth/authorize tokenUrl: https://demo.firefly-iii.org/oauth/token refreshUrl: https://demo.firefly-iii.org/oauth/token scopes: {} local_bearer_auth: type: http description: Optional Bearer token flow scheme: bearer