# Quote Webhooks

Receive webhook notifications whenever quotes are finalized or their status (accepted/declined) is updated. Quote webhooks can be used to trigger actions in your application whenever a quote is changed, for example to keep an external invoicing or accounting system up to date.

## Events[​](#events "Direct link to Events")

| Event                  | Description                                                          |
| ---------------------- | -------------------------------------------------------------------- |
| `offer.finalized`      | Occurs whenever a new quote is finalized.                            |
| `offer.status_updated` | Occurs whenever a quote's status was changed (accepted or declined). |

## Example Payload[​](#example-payload "Direct link to Example Payload")

We return JSON-formatted content with the following structure.

| Name    | Example content                                                                        | Description                                                |
| ------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| `id`    | `a19e5d48-cbb6-4011-b023-5a5919ef5e15`                                                 | UUID of the trigger resource                               |
| `type`  | `offer`                                                                                | Resource type                                              |
| `event` | `offer.finalized`                                                                      | Event that triggered the webhook, lowercase, dot-separated |
| `url`   | `https://app.freispace.com/invoicing/offers/a19e5d48-cbb6-4011-b023-5a5919ef5e15/view` | URL to the updated resource                                |
| `data`  | `{}`                                                                                   | The quote's information                                    |

```
{

    "id": "a19e5d48-cbb6-4011-b023-5a5919ef5e15",

    "type": "offer",

    "event": "offer.finalized",

    "url": "https://app.freispace.com/invoicing/offers/a19e5d48-cbb6-4011-b023-5a5919ef5e15/view",

    "data": {

        "id": "a19e5d48-cbb6-4011-b023-5a5919ef5e15",

        "number": "OF-1000",

        "date": "2026-04-24",

        "subject": "Quote OF-1000",

        "service_period_from": null,

        "service_period_to": null,

        "order": {

            "id": "a19e6172-0225-40cc-b453-a14e685412a0",

            "number": "OR-1000"

        }, // nullable

        "cost_center": null,

        "issuer": {

            "id": "a19e5d30-a5e8-4e0a-863f-505ed95980cf",

            "name": "Post House"

        },

        "recipient": {

            "client_id": "a19d6036-bfe7-4976-878c-ebc9be05fd52",

            "client_address_id": "a19d6036-d2f3-47d3-85f9-278890d3e094",

            "client_contact_id": null,

            "address": "BBC One\n2nd Floor Egton Wing\nBBC Broadcasting House\nLONDON\nW1A 1AA"

        },

        "billing_email_addresses": [],

        "currency": "GBP",

        "total_sum_net": 32000, // in cents

        "total_sum_gross": 38400, // in cents

        "offer_valid_until": null,

        "status": null, // "accepted", "declined" or null

        "status_set_at": null // format: "2026-04-24T07:52:52+00:00" (UTC)

    }

}
```
