---
title: "Filing Processed Event"
method: POST
path: "filing.processed"
tags: ["Webhooks (Management)"]
---

# Filing Processed Event

`POST filing.processed` (webhook)

Triggered when a filing has been successfully analyzed, classified, and converted to Markdown. This event contains the complete metadata and content.

## Payload

- FilingProcessedPayload
  - `event_type` string, required: The name of the event (e.g., 'filing.processed' or 'filing.received').
  - `webhook_id` string, required: The ID of the webhook configuration that triggered this event.
  - `filing_id` string, required: The ID of the newly processed filing.
  - `company` WebhookCompanyPayload, required
    - `id` string, required: Internal FinancialFilings Company ID.
    - `name` string, required: Company name.
    - `ticker` string, required: Primary stock ticker.
    - `lei` string, required: Legal Entity Identifier.
    - `website` string, uri, required: Company's official website.
    - `company_page` string, uri, required: URL to the company's page on FinancialFilings.
    - `country_name` string, required: Name of the company's country of incorporation.
    - `country_code_alpha2` string, required: ISO 3166-1 alpha-2 country code.
    - `isins` string[], required: List of ISIN codes (strings) associated with the company, at most 1,000. The Primary ISIN is always at index 0; the rest are in ascending code order. Only included if your webhook is configured with 'include_isins: true'. When the company has more than 1,000 ISINs the list is cut and isins_url is set.
    - `isin_count` integer, required: Total number of ISINs on the company, which can exceed len(isins). Only included with 'include_isins: true'.
    - `isins_url` string, uri, required: Only present when isins was cut at 1,000: the company's paginated REST listing, e.g. https://api.financialreports.eu/isins/?company=35612. Offset pagination stops at 50,000 rows; above that, narrow with &search=<code prefix>.
  - `filing` WebhookFilingPayload, required
    - `id` string, required: Internal FinancialFilings Filing ID.
    - `processing_status` string, required: The current processing status of the filing (e.g., 'PENDING', 'COMPLETED').
    - `filing_type_code` string, nullable, required: Short code for the filing type (e.g., '10-K'). May be null for 'filing.received' events.
    - `filing_type_name` string, nullable, required: Human-readable filing type (e.g., 'Annual Report'). May be null for 'filing.received' events.
    - `language_code` string, nullable, required: ISO 639-1 language code (e.g., 'en'). May be null for 'filing.received' events.
    - `language_name` string, nullable, required: Human-readable language name (e.g., 'English'). May be null for 'filing.received' events.
    - `title` string, required: The title of the filing.
    - `dissemination_datetime` string, date-time, required: The exact time the filing was disseminated by the source.
    - `release_datetime` string, date-time, required: The official release time of the filing (e.g., the period end).
    - `ingestion_mode` 'REALTIME' | 'BACKFILLED', required: Whether the filing was added to the platform promptly after publication. `REALTIME`: added within the source's normal publication delay (5 to 48 hours after `release_datetime`, depending on the source). `BACKFILLED`: everything else, including historical imports and new filings that reached the platform late, for example after a source outage. Set once when the filing is added and not recalculated afterwards. Webhooks are not sent for filings added more than 48 hours after `release_datetime` (for FSMA, after `dissemination_datetime`; outside authorised recovery windows) unless the webhook has `deliver_late_filings` enabled, so most deliveries are REALTIME. A delivery can still carry BACKFILLED when the filing arrived after its source's normal delay but inside those 48 hours, has no `release_datetime`, falls in an authorised recovery window, or is a late delivery (`late: true`). * `REALTIME` - Realtime * `BACKFILLED` - Backfilled
    - `late` boolean, required: True when the filing reached the platform more than 48 hours after publication. Such filings are sent only to webhooks with `deliver_late_filings` enabled, and only up to 30 days late; the one exception is a deliberate re-send after an outage on our side, which can reach every webhook at any lag. Always present.
    - `ingest_lag_hours` number, double, nullable, required: Hours between publication (`release_datetime`; for FSMA, `dissemination_datetime`) and the filing reaching the platform, to one decimal. Null when the filing has no `release_datetime`. Negative when the source dates the filing in the future.
    - `document_url` string, uri, required: Direct link to our hosted copy of the original filing document (e.g. PDF). The link is not signed and does not expire: anyone holding it can download the file, so treat it like a share link. It returns 404 if the filing is later removed or its document replaced. Processed content is served differently: markdown requires an API key and HTML is served through short-lived signed links.
    - `source_url` string, uri, nullable, required: Original public link for the filing at the source authority. Null unless the webhook owner's account has source identities unlocked, the source is anonymised, or no stable link exists.
    - `source_filing_type` string, nullable, required: The source authority's own classification label, verbatim. Null when the source publishes no label, it was not captured, or the source is anonymised. Not gated on source identities.
    - `source` Source, required
      - `id` integer, required: Unique identifier for the source. Filter filings with `?source=<id>`.
      - `name` string, required: Generic label identifying the regional authority for this data source.
      - `url` string, uri, nullable, required: Homepage URL for the data source, when available.
      - `description` string, required: Description of the data source.
      - `has_named_speakers` boolean, nullable, required: Tri-state: true if this source's CT (call transcript) filings are confirmed to carry named speaker attribution (name/title/affiliation), false if confirmed generic labels like 'Speaker 1', null if not yet measured. Treat null as 'not a positive match', not as false — an unmeasured source is not the same claim as a confirmed-generic one. Not meaningful for non-transcript sources.
    - `markdown_content` string, nullable, required: The full, processed content of the filing in Markdown format. This field is only included if your webhook is configured with 'include_markdown: true' AND the event type is 'filing.processed'. It is null for 'filing.received'. Even with 'include_markdown: true' on a 'filing.processed' event, this field is null unless the webhook owner's account has Level 2 (Processed Filings) access -- the same tier gate applied to the REST /markdown/ endpoint.
  - `triggered_at` string, date-time, required: The timestamp (ISO 8601) when the event was triggered.

## Acknowledgement `200`

(Success) Acknowledge receipt.

## Other responses

- `4XX`: (Client Error) Retry logic may apply.
- `5XX`: (Server Error) We will retry.

---

[API](https://skmtc.dev/financialreports/apis/financialfilings-api.md) · [All operations](https://skmtc.dev/financialreports/apis/financialfilings-api/llms.txt) · [OpenAPI document](https://skmtc.dev/financialreports/apis/financialfilings-api/revisions/55935bdabd20?raw)
