Webhook event types
This page lists every event that Solvimon can send to a webhook. It shows the object types that you can subscribe to, their actions and sub-actions, and when each event fires.
Why this matters
A webhook only receives the events you subscribe to, and Solvimon matches event names exactly. Transition events such as INVOICE.STATUS_TO_FINAL or QUOTE_VERSION.SIGNED are separate events: subscribing to INVOICE.UPDATED does not include them. Use this page to pick the exact values for included_actions and excluded_actions.
How it works
An event name is the object type and the action, in uppercase, separated by a period: OBJECT_TYPE.ACTION. Solvimon sends the name as type in the webhook payload.
Actions come in two kinds:
When a change triggers a sub-action, Solvimon sends the sub-action event. For most object types, it also sends the base UPDATED event as a separate delivery. In each delivery, data contains the resource after the change. When the webhook has include_previous_data enabled, previous_data contains the resource before the change.
A webhook decides what it receives with two lists:
To receive every event except a few, leave included_actions out of the request and set only excluded_actions. There are no wildcards. To receive every invoice transition, list each INVOICE.* event that you need. The API rejects an unknown value when you create or update the webhook.
List the available events
GET /v1/webhooks/actions returns every object type and the actions you can use for it. It is the source of truth for your platform, so use it to validate your configuration.
Subscribe to events
Pass the event names in included_actions when you create or update a webhook:
Sub-action events
These are the only events that are not CREATED, UPDATED or DELETED.
Invoice
For SEND_BY_EMAIL and EXPORT_TO_ERP, data holds the invoice and previous_data is null. An EXPORT_TO_ERP event that a workflow sends also contains metadata with workflow_action_id, workflow_trigger_id and workflow_action_execution_id. Your integration can use these IDs to report the result back to that workflow execution.
INVOICE.UPDATED only fires when an invoice changes to FINAL, at the same moment as INVOICE.STATUS_TO_FINAL. Solvimon keeps it for existing integrations and will deprecate it. Subscribe to INVOICE.STATUS_TO_FINAL instead, and to the other sub-actions for the transitions you need.
Pricing plan schedule
Both also send PRICING_PLAN_SCHEDULE.UPDATED.
Quote version
Both also send QUOTE_VERSION.UPDATED. SIGNED also sends SIGNATURE_REQUEST.UPDATED for the signature request itself.
File
Meter data
Replayed events do not send these. The API accepts METER_DATA.CREATED in included_actions, but Solvimon does not send it.
Usage limit threshold
Solvimon sends USAGE_LIMIT.THRESHOLD_REACHED when a usage-limit workflow with a SEND_WEBHOOK action crosses a threshold. Solvimon delivers it to the webhook that the action references, and ignores that webhook’s included_actions. It is not a valid included_actions value. data holds workflow_id, workflow_trigger_id, customer_id, parent_customer_id, meter_value_calculation_id, threshold, threshold_type, limit, consumed, period_start, period_end and triggered_at.
Example sub-action payload
This example shows an INVOICE.STATUS_TO_FINAL delivery with include_previous_data enabled. data and previous_data contain the full invoice in the same shape as GET /v1/invoices/{id}. The example is shortened.
Object types and actions
C = CREATED, U = UPDATED, D = DELETED. Sub-actions are listed in Sub-action events.
Invoicing and payments
Customers and subscriptions
Quotes and approvals
Products and pricing
Usage metering
Wallets and credits
Workflows
Reports and bulk actions
Platform and integrations
GET /v1/webhooks/actions returns WALLET_GRANT, PAYMENT_SCHEDULE, PAYMENT_REQUEST and PORTAL_URL, and the API accepts them in included_actions. Solvimon does not send events for them yet.
Via Desk
In the Desk sidebar, go to Developers → Webhooks. When you create or edit a webhook, use Add included action and Add excluded action. Select an object type, and then select one or more of its actions. The lists come from GET /v1/webhooks/actions, so they always include every sub-action on this page.
Edge cases
- Ordering across event names is not guaranteed. One change can produce several deliveries, for example
INVOICE.STATUS_TO_FINAL,INVOICE.PAIDandINVOICE.UPDATED. Process each one on its own and usedataas the current state. - Duplicates are possible. Solvimon can retry or resend a delivery, so make your handler idempotent. For example, check the resource’s current state before you act.
- Sub-actions are not implied. If you list only base actions, you will not receive transition events, and vice versa.
- Old event names.
INVOICE.FINALIZED,invoice.finalizedand other lowercase names do not exist. Event names are always uppercase.