Skip to main content
Every business registered with a US state must name a registered agent — the party that receives legal and government documents on the entity’s behalf. Palm provides registered agent service through established nationwide providers, managed entirely through the API. You provision it, receive forwarded mail through webhooks, and manage changes against the same business record you already verify and monitor through Palm.

How it works

  1. Provision the service. Opt in during formation, or request a change on an existing business. Palm designates a registered agent in the business’s state.
  2. Track the service. Query the current registered agent status, agent of record, and service window for any business.
  3. Receive forwarded mail. When the state sends correspondence, Palm attaches a digital copy to the business and fires a webhook.
  4. Manage changes. Request a change on the registered agent resource to move a business onto or off Palm.
  5. End the service. Request termination when a business switches providers, dissolves, or is offboarded.

Provision the service

At formation

When you form a business, omit the registered_agent block from the request. Palm designates a registered agent in the formation state and activates the service when the filing completes.
Bash
JSON
If you pass a registered_agent block, Palm uses that agent on the filing and does not provide the service. See formation add-ons for details.

For an existing business

For a business that already exists, including one not formed through Palm, request a registered agent change and omit the registered_agent block. Palm provisions the service when the change completes.

Track the service

Retrieve the current registered agent status for a business:
Bash
JSON

Status lifecycle

The endpoint returns 404 when Palm has never been the registered agent for the business. After service ends, it returns 200 with status: terminated, so you can distinguish “never the agent” from “service ended.”

Receive forwarded mail

When the state sends correspondence for a business where Palm is the agent, Palm attaches a digital copy to the business and fires a document.created webhook. Route on the document type to identify registered agent mail:
  • notice — legal and government notices, including service of process and state compliance mail.
  • mail — general forwarded correspondence.
JSON
Retrieve the document:
Bash
The download endpoint streams the file with a Content-Disposition: attachment header. Palm forwards mail for as long as it is the agent of record, including during the termination_requested window.

File a change

Change the registered agent on record for an existing business. Use this to move a business onto Palm or off Palm. The change is expressed on the registered agent resource — not as a filing.
Bash
JSON
  • Pass registered_agent to move the business off Palm to the agent you specify.
  • Omit registered_agent to move the business onto Palm.
The business must have a formation_jurisdiction (the change is filed in that state). The registered agent moves to pending while the change is in flight; where a state requires a real change filing, Palm handles it behind the scenes and abstracts it away. When the change completes:
  • Switching to Palm fires registered_agent.activated. Status becomes active.
  • Switching away from Palm fires registered_agent.changed. Status becomes terminated.
  • If the change cannot be completed (e.g. the destination agent did not confirm consent), registered_agent.change_failed fires, status reverts to active — Palm remains the agent — and rejection_reason explains why. You can re-submit once resolved.

End the service

When a business switches providers, dissolves, or is offboarded, and you are not filing a registered agent change, request termination directly.
Bash
JSON
The request returns 409 when the service is not currently active. On success, Palm fires registered_agent.termination_requested and continues forwarding mail until the work completes. The lifecycle resolves one of two ways:
  • Completed. Status becomes terminated, ended_at is stamped, and registered_agent.terminated fires.
  • Failed. The state refused the resignation or a successor agent is required. Status reverts to active, registered_agent.termination_failed fires with a rejection_reason, and you can submit a new request once the blocker is resolved.

Webhooks

See Webhooks for delivery, retries, and signature verification.

Next steps