id, object: "event", type, created_at, and an event-specific data object. For the concepts (setup, signing, retries, idempotency), see the Webhooks overview.
Verification events
user.verification.completed
Fires when a user verification finishes. This example is a flagged applicant (risk.level: high), so risk.reasons, mismatched match values, and a watchlist hit are all populated. On a clean pass, reasons and matches are empty and match values are all match.
JSON
business.verification.completed
Fires when a business verification finishes. Includes the full user-verification result for each associate. This example is a critical-risk outcome: the EIN does not match IRS records, the business is no longer in good standing, and an associate failed verification.JSON
Monitoring events
business.registration.updated
Fires when Palm detects a change to a monitored business in the authoritative record.data.business is a lightweight reference; data.changes carries one entry per field that moved. Values mirror the source record (typically uppercase).
JSON
business.filing.due
Fires when a compliance filing deadline is approaching.JSON
business.filing.overdue
Fires when a compliance filing deadline has passed. Identical structure tobusiness.filing.due; only the event type differs.
JSON
Filing events
Allfiling.* events carry the same filing object on data.object. Across the lifecycle only status changes; result, documents, and fee populate on completion. Route on data.object.type (formation, ein). A formation bundles its obligations under related_items — each with its own object, id, and status. The registered agent is one such item and is not a filing: it never emits filing.* events, only its own registered_agent.* events (see below).
filing.queued
Fires when a filing is received and validated (preparing for submission).result and fee are null and no documents exist yet.
JSON
filing.ready_to_file
Fires when Palm is ready to submit the filing to the authority.JSON
filing.processing
Fires when Palm has submitted the filing and the authority is processing it.JSON
filing.filed
Fires when the authority has accepted the filing; final confirmation is pending.JSON
filing.completed (formation)
Fires when the filing is done and the result is available. For a formation,result holds the registration number and formation date, the certificate appears under documents, and fee carries the finalized breakdown (including total).
JSON
filing.completed (EIN)
Samefiling.completed event for an EIN filing — a different type and result (issued EIN and entity name), no state fee, and the bundled child of the formation above (parent_filing_id points back to it).
JSON
filing.canceled
Fires when a filing is canceled.status_reason, canceled_by, and canceled_at are populated.
JSON
Case events
Allcase.* events carry the same case object on data.object; status, response, resolved_at, and resolution_reason evolve as the case progresses.
case.opened
Fires when Palm opens a case and needs your response. Formissing_information cases, request.fields describes exactly what to supply.
JSON
case.updated
Fires when an open case changes — for example, your response is received and the case moves tounder_review. response.fields now carries what you submitted.
JSON
case.resolved
Fires when the case closes (resolved or superseded). resolved_at is set and resolution_reason is one of response_received, no_response_needed, parent_canceled, parent_completed, or parent_failed.
JSON
Platform events
Platform events deliver the full resource object. PII stays in the vault, so payloads expose only fingerprints and non-encrypted cached vault fields.user.created
Fires when a person is created through the API.JSON
user.removed
Fires when a person is removed. Same object asuser.created with status: deleted.
JSON
business.created
Fires when a business is created through the API. This is the canonical business object — the same shape returned byGET /business/{id}. The EIN is encrypted (surfaced only via ein_fingerprint); the non-encrypted fields you set are echoed under vault by field ID.
JSON
ein_fingerprint— SHA-256 fingerprint of the EIN, for duplicate detection and search without exposing the value.business.einis encrypted and is not echoed invault.palm_id— Palm’s identifier for the business;nulluntil the business is matched to a registry record.verification—nulluntil the business is verified, then a summary:{ "id": "...", "risk_level": "low", "workflow": { "name": "Business Verification", "version": 1 }, "executed_at": "..." }. The full result arrives onbusiness.verification.completed.vault— cached non-encrypted business fields you supplied, keyed by field ID. Valid keys:business.legal_name,business.dba_name,business.entity_type,business.formation_date,business.formation_jurisdiction,business.registration_jurisdiction,business.address_line_1,business.address_line_2,business.city,business.region,business.postal_code,business.country,business.phone_number,business.email,business.website,business.naics_code.metadata— up to 50 of your own key-value pairs, returned on every event for this business.
business.removed
Fires when a business is removed. Same object asbusiness.created with status: deleted.
JSON
Document events
document.created (filing artifact)
Fires when Palm attaches a document on its own initiative. Route ondata.object.type. Here, the certificate produced by a completed formation.
JSON
document.created (forwarded mail)
The same event for forwarded registered-agent mail —type is mail (or notice) instead of a filing artifact.
JSON
Registered agent events
Registered agent (RA) is a standalone resource, not a filing — it never emitsfiling.* events. On a formation it appears in related_items as a registered_agent item (status pending until it goes active), and it has its own resource at GET /v1/business/:business_id/registered-agent. Every lifecycle transition delivers the RA snapshot on data.object:
status—pending,active,termination_requested,terminated, orfailed.provider—palmwhile Palm is the agent (active/termination_requested),externalafter a change-away or termination.rejection_reason— present only on the failure events (failed,change_failed,termination_failed).
name or address; the concrete provider Palm uses is server-side and never exposed.
registered_agent.activated
Fires when Palm becomes the registered agent — formation provisioning completing, or a change into Palm.status is active, provider is palm.
JSON
registered_agent.failed
Fires when RA provisioning (or a required state submission) fails on the assignment path — there was no prior RA to fall back to.status is failed and rejection_reason explains the blocker.
JSON
registered_agent.change_failed
Fires when a partner-requested RA change cannot be completed. Unlike an assignment failure, the change never took effect, sostatus reverts from the transient pending back to active — Palm remains the RA of record. rejection_reason explains the blocker.
JSON
registered_agent.changed
Fires when an RA change moves the business to another provider.provider becomes external, status is terminated, and ended_at is set.
JSON
registered_agent.termination_requested
Fires when you ask Palm to resign viaPATCH /v1/business/:business_id/registered-agent. status moves to termination_requested; Palm stays the RA on file and keeps forwarding mail until operations completes the work.
JSON
registered_agent.terminated
Fires when operations completes the termination and Palm is no longer the RA on file.status is terminated, provider flips to external, and ended_at carries the close timestamp.
JSON
registered_agent.termination_failed
Fires when a termination cannot be completed (state refused the resignation, a successor RA is required and none was supplied, etc.).status reverts to active, rejection_reason explains the blocker, and Palm keeps serving as RA. You can re-submit once it is resolved.
JSON

