Webhooks

Update existing webhook.

PUT
https://firefly.example.com/api/v1/webhooks/{id}

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.

Body

JSON array with updated webhook information. See the model for the exact specifications.

application/json,application/x-www-form-urlencodedWebhookUpdate
activeboolean

Boolean to indicate if the webhook is active

Example
false
titlestring

A title for the webhook for easy recognition.

Example
Update magic mirror on new transaction
secretstring

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.

Example
iMLZLtLx2JHWhK9Dtyuoqyir
triggersArray<WebhookTrigger>ANYSTORE_TRANSACTIONUPDATE_TRANSACTIONDESTROY_TRANSACTIONSTORE_BUDGETUPDATE_BUDGETDESTROY_BUDGETSTORE_UPDATE_BUDGET_LIMIT
Example
[
  "STORE_TRANSACTION",
  "UPDATE_TRANSACTION"
]
responsesArray<WebhookResponse>TRANSACTIONSACCOUNTSBUDGETRELEVANTNONE
Example
[
  "TRANSACTIONS"
]
Example
[
  "JSON"
]
urlstring

The URL of the webhook. Has to start with https.

Example
https://example.com

Parameters

X-Trace-Idstring<uuid>header

Unique identifier associated with this request.

idstringrequiredpath

The webhook ID.

Response

Updated webhook stored, result in response

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

Immutable value

Example
webhooks
idstringrequired
Example
2
attributesWebhookPropertiesrequired
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
activeboolean

Boolean to indicate if the webhook is active

Example
false
titlestringrequired

A title for the webhook for easy recognition.

Example
Update magic mirror on new transaction
secretstringread only

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.

Example
iMLZLtLx2JHWhK9Dtyuoqyir
triggersArray<WebhookTrigger>ANYSTORE_TRANSACTIONUPDATE_TRANSACTIONDESTROY_TRANSACTIONSTORE_BUDGETUPDATE_BUDGETDESTROY_BUDGETSTORE_UPDATE_BUDGET_LIMIT
Example
[
  "STORE_TRANSACTION",
  "UPDATE_TRANSACTION"
]
responsesArray<WebhookResponse>TRANSACTIONSACCOUNTSBUDGETRELEVANTNONE
Example
[
  "TRANSACTIONS"
]
Example
[
  "JSON"
]
urlstringrequired

The URL of the webhook. Has to start with https.

Example
https://example.com
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
422Unprocessable EntityValidationErrorResponse

Validation error. The body will have the exact details.

Response fields application/json
messagestring
Example
The given data was invalid.
errorsobject
Show child attributes
emailArray<string>
forceArray<string>
blockedArray<string>
fieldArray<string>
roleArray<string>
blocked_codeArray<string>
nameArray<string>
typeArray<string>
ibanArray<string>
startArray<string>
endArray<string>
dateArray<string>
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.