Tags

List all transactions with this tag.

GET
https://firefly.example.com/api/v1/tags/{tag}/transactions

List all transactions with this tag.

Parameters

X-Trace-Idstring<uuid>header

Unique identifier associated with this request.

limitinteger<int32>query

Number of items per page. The default pagination is per 50 items.

pageinteger<int32>query

Page number. The default pagination is per 50 items.

tagstringrequiredpath

Either the tag itself or the tag ID.

startstring<date>query

A date formatted YYYY-MM-DD. This is the start date of the selected range (inclusive).

endstring<date>query

A date formatted YYYY-MM-DD. This is the end date of the selected range (inclusive).

typeTransactionTypeFilterallwithdrawalwithdrawalsexpensedepositdepositsincometransfertransfersopening_balancereconciliationspecialspecialsdefaultquery

Optional filter on the transaction type(s) returned.

Response

A list of transactions.

Response fields application/vnd.api+json
Show child attributes
typestringrequired

Immutable value

Example
transactions
idstringrequired
Example
2
attributesTransactionrequired
Show child attributes
created_atstring<date-time>read only
Example
2026-10-01T00:00:00+00:00
updated_atstring<date-time>read only
Example
2026-10-01T00:00:00+00:00
userstringread only

User ID

Example
3
group_titlestring | null

Title of the transaction if it has been split in more than one piece. Empty otherwise.

Example
Split transaction title.
transactionsArray<TransactionSplit>required
Show child attributes
userstringread only

User ID

Example
3
transaction_journal_idstringread only

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.

Example
10421
typeTransactionTypePropertywithdrawaldeposittransferreconciliationopening balancerequired
Example
withdrawal
datestring<date-time>required

Date of the transaction

Example
2026-10-01T00:00:00+00:00
orderinteger<int32> | null

Order of this entry in the list of transactions.

Example
0
object_has_currency_settingbooleanread only

Indicates whether the transaction has a currency setting. For transactions this is always true.

Example
true
currency_idstring

Currency ID for the currency of this transaction.

Example
12
currency_codestring

Currency code for the currency of this transaction.

Example
EUR
currency_symbolstringread only

Currency symbol for the currency of this transaction.

Example
$
currency_namestring

Currency name for the currency of this transaction.

Example
Euro
currency_decimal_placesinteger<int32>

Number of decimals used in this currency.

Example
2
foreign_currency_idstring | null

Currency ID of the foreign currency, if this transaction has a foreign amount.

Example
17
foreign_currency_codestring | null

Currency code of the foreign currency. Default is NULL.

Example
USD
foreign_currency_symbolstring | nullread only
Example
$
foreign_currency_decimal_placesinteger<int32> | nullread only

Number of decimals in the foreign currency.

Example
2
primary_currency_idstring | nullread only

Returns the primary currency ID of the administration. This currency is used as the currency for all pc_* amount and balance fields of this account.

Example
12
primary_currency_codestring | null

Returns the primary currency code of the administration. This currency is used as the currency for all pc_* amount and balance fields of this account.

Example
EUR
primary_currency_symbolstring | nullread only

See the other primary_* fields.

Example
$
primary_currency_decimal_placesinteger<int32> | nullread only

See the other primary_* fields.

Example
2
amountstring<amount>required

Amount of the transaction.

Example
123.45
pc_amountstring<amount>

Amount of the transaction in the primary currency of this administration. The primary_currency_* fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.

Example
123.45
foreign_amountstring<amount> | null

The amount in the set foreign currency. May be NULL if the transaction does not have a foreign amount.

Example
123.45
pc_foreign_amountstring<amount>

Foreign amount of the transaction in the primary currency of this administration. The primary_currency_* fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.

Example
123.45
source_balance_afterstring<amount> | null

The balance of the source account. This is the balance in the account's currency which may be different from this transaction, and is not provided in this model.

Example
123.45
pc_source_balance_afterstring<amount> | null

The balance of the source account in the primary currency of this administration. The primary_currency_* fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.

Example
123.45
destination_balance_afterstring<amount> | null

The balance of the destination account. This is the balance in the account's currency which may be different from this transaction, and is not provided in this model.

Example
123.45
pc_destination_balance_afterstring<amount> | null

The balance of the destination account in the primary currency of this administration. The primary_currency_* fields reflect the currency used. This field is NULL if the user does have 'convert to primary' set to true in their settings.

Example
123.45
descriptionstringrequired

Description of the transaction.

Example
Vegetables
source_idstring | nullrequired

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.

Example
2
source_namestring | null

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.

Example
Checking account
source_ibanstring | nullread only
Example
NL02ABNA0123456789
source_typeAccountTypePropertyDefault accountCash accountAsset accountExpense accountRevenue accountInitial balance accountBeneficiary accountImport accountReconciliation accountLoanDebtMortgageread only
Example
Asset account
destination_idstring | nullrequired

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.

Example
2
destination_namestring | null

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.

Example
Buy and Large
destination_ibanstring | nullread only
Example
NL02ABNA0123456789
destination_typeAccountTypePropertyDefault accountCash accountAsset accountExpense accountRevenue accountInitial balance accountBeneficiary accountImport accountReconciliation accountLoanDebtMortgageread only
Example
Asset account
budget_idstring | null

The budget ID for this transaction.

Example
4
budget_namestring | nullread only

The name of the budget used.

Example
Groceries
category_idstring | null

The category ID for this transaction.

Example
43
category_namestring | null

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.

Example
Groceries
bill_idstring | null

The associated subscription ID for this transaction. bill refers to the OLD name for subscriptions and this field will be removed.

Example
111
bill_namestring | null

The associated subscription name for this transaction. bill refers to the OLD name for subscriptions and this field will be removed.

Example
Monthly rent
subscription_idstring | null

The associated subscription ID for this transaction.

Example
111
subscription_namestring | null

The associated subscription name for this transaction.

Example
Monthly rent
reconciledboolean

If the transaction has been reconciled already. When you set this, the amount can no longer be edited by the user.

Example
false
notesstring | null
Example
Some example notes
tagsArray<string> | null

Array of tags.

Example
null
internal_referencestring | null

Reference to internal reference of other systems.

external_idstring | null

Reference to external ID in other systems.

external_urlstring | null

External, custom URL for this transaction.

original_sourcestring | nullread only

System generated identifier for original creator of transaction.

recurrence_idstring | nullread only

Reference to recurrence that made the transaction.

recurrence_totalinteger<int32> | nullread only

Total number of transactions expected to be created by this recurrence repetition. Will be 0 if infinite.

Example
0
recurrence_countinteger<int32> | nullread only

The # of the current transaction created under this recurrence.

Example
12
import_hash_v2string | nullread only

Hash value of original import transaction (for duplicate detection).

sepa_ccstring | null

SEPA Clearing Code

sepa_ct_opstring | null

SEPA Opposing Account Identifier

sepa_ct_idstring | null

SEPA end-to-end Identifier

sepa_dbstring | null

SEPA mandate identifier

sepa_countrystring | null

SEPA Country

sepa_epstring | null

SEPA External Purpose indicator

sepa_cistring | null

SEPA Creditor Identifier

sepa_batch_idstring | null

SEPA Batch ID

interest_datestring<date-time> | null
book_datestring<date-time> | null
process_datestring<date-time> | null
due_datestring<date-time> | null
payment_datestring<date-time> | null
invoice_datestring<date-time> | null
latitudenumber<double> | null

Latitude of the transaction's location, if applicable. Can be used to draw a map.

Example
51.983333
longitudenumber<double> | null

Latitude of the transaction's location, if applicable. Can be used to draw a map.

Example
5.916667
zoom_levelinteger<int32> | null

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.

Example
6
has_attachmentsboolean

If the transaction has attachments.

Example
false
metaMetarequired
Show child attributes
paginationobject
Show child attributes
totalinteger
Example
3
countinteger
Example
20
per_pageinteger
Example
100
current_pageinteger
Example
1
total_pagesinteger
Example
1
400Bad RequestBadRequestResponse

Bad request

Response fields application/json
messagestring
Example
Bad Request
exceptionstring
Example
BadRequestHttpException

Unauthenticated

Response fields application/json
messagestring
Example
Unauthenticated
exceptionstring
Example
AuthenticationException
404Not FoundNotFoundResponse

Page not found

Response fields application/json
messagestring
Example
Resource not found
exceptionstring
Example
NotFoundHttpException
500Internal Server ErrorInternalExceptionResponse

Internal exception

Response fields application/json
messagestring
Example
Internal Exception
exceptionstring
Example
InternalException

Authorization

firefly_iii_authoauth2

OAuth2 authorization code flow. Create a client on your installation's /profile page; it authorizes at /oauth/authorize and issues tokens at /oauth/token there. The URLs below are the demo site's. How to use the API walks through it.

local_bearer_authhttp (bearer)

A Personal Access Token, sent as a bearer token. Create one on your installation under Options > Profile > OAuth > Personal Access Tokens.