# Merchant Lifecycle Events

Base URL: `https://api.omni.integratedcommerce.io/v1`. Authenticate every request with your API key in the `x-api-key` header (see [Authentication](https://doura.ca/docs/get-started/authentication.md)). Shared types are defined under [Models](https://doura.ca/docs/api-reference/models.md). The machine-readable OpenAPI 3.1 spec is at https://doura.ca/docs/openapi.json.

Notifications for merchant onboarding lifecycle events - merchant application progress, merchant approval decisions, and pricing template review decisions.

All merchant lifecycle events share one payload shape: an `event` envelope (id, type, timestamp, and the related merchant id once one exists) and a `data` section with the application, status transition, and pricing template details that apply to the event type. Fields that do not apply are null, so branch on the envelope's `type` rather than on the presence of a field.

Payloads are PII-safe by design - they never carry underwriting documents, bank details, or tax identifiers.

**Beta.** Merchant lifecycle events are in beta: the set of events and the payload can still change, and breaking changes are announced with a deprecation period.

Merchant lifecycle events are delivered on Svix webhooks only, never on legacy webhooks. Svix webhooks are invite only; see [Svix webhooks](https://doura.ca/docs/webhooks/svix.md).

Delivery, retries and signature verification work exactly as for [transaction events](https://doura.ca/docs/webhooks/events.md#transaction-events). See [Webhooks](https://doura.ca/docs/webhooks.md).

## Webhook events

Each entry links to a standalone Markdown page with the full request, response and examples.

- [Merchant application started](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-application-started.md): `MerchantApplicationStarted`
- [Merchant application submitted](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-application-submitted.md): `MerchantApplicationSubmitted`
- [Merchant application status changed](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-application-status-changed.md): `MerchantApplicationStatusChanged`
- [Merchant application requires action](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-application-requires-action.md): `MerchantApplicationRequiresAction`
- [Merchant application information uploaded](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-application-information-uploaded.md): `MerchantApplicationInfoUploaded`
- [Merchant approved](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-approved.md): `MerchantApproved`
- [Merchant rejected](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/merchant-rejected.md): `MerchantRejected`
- [Pricing template approved](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/pricing-template-approved.md): `PricingTemplateApproved`
- [Pricing template rejected](https://doura.ca/docs/api-reference/webhook-events/merchant-lifecycle-events/pricing-template-rejected.md): `PricingTemplateRejected`
