Skip to main content
A case is how Palm requests information it needs to complete a filing. Most filings finish without one. When Palm does need something from you, it opens a case on the filing and notifies you by webhook — your response gives Palm what it needs to finish.
Early access — Cases are in preview and may change in backwards-incompatible ways before they are marked stable. Reach out before building on them in production.

How cases work

Any time between when you submit a filing and when it completes, Palm may need additional information. When that happens, Palm opens a case on the filing describing exactly what it needs, and you respond with the requested values. There’s no fixed list of cases. Today there’s a single kind, missing_information, used whenever Palm needs data it doesn’t already have — for example:
  • Additional information a filing requires that wasn’t collected at submission.
  • A correction to a value you submitted.
  • A clarification needed while the filing is processed.
Because the specifics vary from one filing to the next, each case carries a request.fields[] array describing exactly what to collect. Render your form from that array and a single generic handler covers every case — no per-case UI.

The case object

Request fields

Each entry in request.fields tells you everything you need to render one prompt:

Lifecycle

A case has two open states and two terminal states. The status tells you who acts next.
When a case closes, resolution_reason records why: response_received, no_response_needed, parent_canceled, parent_completed, or parent_failed.

Webhook events

Each payload’s data.object is the full case object. See Webhooks for delivery, retries, and signature verification.
case.opened — JSON

Respond to a case

  1. Receive case.opened. Use the payload, or fetch the case with GET /v1/case/{case_id}.
  2. Render prompts from request.fields. Label, type, and required flag are all there.
  3. Submit a response while the case is in needs_response, with a fields map keyed by each requested field’s name:
Bash
Request body — JSON
A successful response moves the case to under_review and fires case.updated. Once the work behind it is done, Palm closes the case and fires case.resolved. If Palm needs more, it opens another round on the same filing — each round is recorded for audit purposes.

Read cases

Bash
List supports filtering by parent_type, parent_id, status, and kind, with cursor-based pagination (limit, cursor).

Next steps