Event Types
Overview
This article provides a list of event types that can be subscribed to using webhooks. An event represents something that has happened in the system, e.g. file ingestion, etc.
For detailed description of how to configure webhooks for these event types, refer to Setup Webhook Subscription via API
Event Types
Approval Workflow Events
Data Fields
Ordering at the subscriber’s endpoint is best-effort, not guaranteed.
Events for a given request are published in the correct order, but if one delivery gets stuck in retries while the next succeeds, the subscriber can receive them out of order. Subscribers should rely on the status field (and level for multi-level flows) rather than on receipt order.
- Auto-approve workflows never emit
pending. They emitapprovedwhen downstream data application succeeds, orinvalidif it fails. - The
approvedstatus requires downstream success. Internal approval by the last approver is not sufficient;approvedis only onDATA_APPLIED. If the downstream service returnsDATA_FAILED, the workflow reverts straight from internally-approved toinvalid, and subscribers seepending…pending → invalidwith noapprovedin between. - The
invalidstatus has two oaths:- Config-invalid path — sent at request time with no preceding event.
errorSource = INVALID_CONFIGURATION. - Data-application-failed path — preceded by one or more
pendingevents (but never byapproved).errorSource = APPLICATION_OF_CONFIGURATION.
- Config-invalid path — sent at request time with no preceding event.
- Multi-level approvals emit one
pendingper level before the terminal event. - The
pendingstatus events always haveapproverandapproverComment= null.
Ingestion Events - ingestion.processing.succeeded and ingestion.processing.failed
When sent:
ingestion.processing.succeeded- an ingestion finished processing without errors.ingestion.processing.failed- an ingestion finished processing in error.
The purpose of this event is to notify the receiving system that processing of a previously
submitted ingestion produced a DONE or ERROR outcome.
The outcome
may still be interim — use isFinal (see the field below) to tell whether it is
definitive.
The isFinal can be set to false, e.g.
- for
ingestion.processing.succeeded- if the ingestion file contained Unposted Journals that are awaiting their posting date. Then once the Journals are posted when their posting date arrives,isFinalwill change to true. - for
ingestion.processing.failed- if the ingestion file contained errors that are undergoing reprocessing. Then if the reprocessing is unsuccessful,isFinalwill change to true.
Use these events to track processing without polling.
Data Fields
Example
The failed variant has the same shape with event_type
ingestion.processing.failed and processingStatus ERROR.
Extract Upload - extract.upload.completed Event
When sent: An extract file was uploaded to cloud storage and is ready to download.
The purpose of this event is to notify the receiving system that an extract configured to deliver to cloud storage has finished and the file has been written to the storage bucket. The file is available to download and process.
This event is emitted only for extracts with cloud storage as destination and only once the run has fully succeeded:
- the extraction completed
(
extractionStatusCOMPLETED) - the file was uploaded (
uploadStatusSENT) - and — if the extract is configured to produce a manifest — the manifest has also been delivered.
When you receive this event the file (and its manifest, if
any) is ready to download. Because of these conditions, the
extractionStatus, uploadStatus and uploadSpace fields are constant for this
event; they are listed in the table below for completeness.
Data Fields
Example
Balance Extract - balance.extracted Event
Please note that in addition to steps 1-3 from Webhook Configuration Balance Extract Event requires a 4th step, adding an extract in the UI, described below.
Step 4 — Create a Balance Extract with Webhook Target
You will need Extractions Editor role assigned, e.g. Editor, to create the extract on the Extracts screen.
- Go to Operations → Extracts → Extracts in Fynapse
- Create a new extract
- Set Target name to Webhook
- Select Balances as the data source
- Complete the configuration
- Wait for schedule to Activate or run the extract manually
See Data Extraction for more details.
When the extract runs, balance.extracted events are generated and delivered to your webhook endpoint.
Event Format
The purpose of this event is to deliver a balance.extracted event to the receiving system.
Please note that the contents of the data property will be based off your selected Balance Query.