go-firefly3/api/swagger.yaml

25954 lines
768 KiB
YAML
Raw Normal View History

2024-05-11 14:43:57 +03:00
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