Skip to main content
Palm validates the business name, prepares state-specific documents, submits to the state, and returns the registration number and confirmation documents when complete. Palm creates a business record on submission, so the entity is immediately available for verification and monitoring without re-entering data.

How it works

  1. Discover requirements — Query what fields are required for your jurisdiction and entity type. Requirements vary by state.
  2. Collect the required data — Use the requirements response to build your collection flow. Only ask for what the target state requires.
  3. Submit the formation — Send the business data, owner information, and principal address. Palm validates the request — including name availability — and creates a filing.
  4. Track the filing — The filing moves through the status lifecycle (queued through completed). You receive a webhook at each transition.
  5. Handle information requests — If Palm identifies an issue during processing, a case is attached to the filing. Respond programmatically.
  6. Retrieve the result — When complete, the filing includes the state-assigned registration number and confirmation documents.

Discover requirements

Before collecting data from your customer, query the requirements endpoint to learn what fields are needed for a given jurisdiction and entity type.
Bash
GET /v1/filing/formation/requirement?entity_type=llc&jurisdiction=US-NC
The response includes common fields (name, address, organizers), jurisdiction-specific fields (e.g., Delaware consent statements, North Carolina stock requirements), and available add-ons (EIN bundling, registered agent).

Collect the required data

Use the requirements response to build your collection flow dynamically — required fields differ significantly between states, so don’t hardcode field lists. The response tells you exactly which fields are required, optional, and conditional for the target jurisdiction and entity type, so you only ask your customer for what’s actually needed.

Submit a formation

Bash
POST /v1/filing/formation
The request includes business details, owner information, principal address, and contact information. Required fields are determined by the jurisdiction and entity type returned from the requirements endpoint. Palm validates the request synchronously and returns specific errors for any missing or malformed fields. On success, Palm creates:
  • A filing record in queued status.
  • A business record linked to the filing, immediately available via the Business API.

Name availability

As part of validation, Palm checks whether the requested business name is available by searching active entities with the state. If the name conflicts with an existing registration, the request returns an error so you can prompt your customer for an alternative before the filing is submitted.

Entity types

Today, Palm supports LLC and Corporation (C-Corp) entity types across all 50 US states and DC.

Add-ons

You can bundle additional services with a formation request:
  • EIN application — Include an ein object in the formation request. The EIN filing is created in queued status and automatically advances to ready_to_file when the formation completes. See Apply for an EIN for the full field reference.
  • Registered agent — Opt in to Palm’s registered agent services as part of the formation.
Palm surfaces bundled filings as related_filings on the parent formation record.

Track the filing

The filing moves through the status lifecycle:
queued → ready_to_file → processing → filed → completed
Check the status at any time:
Bash
GET /v1/filing/{filing_id}
Or list filings with filters:
Bash
GET /v1/filing?type=formation&status=processing&business_id={id}
Every status transition fires a filing.* webhook. See Webhooks for event types and payloads.

Handle information requests

If Palm identifies an issue that would cause the state to reject the filing (e.g., a typo in the registered agent name or a misformatted address), a case is attached to the filing with a structured request describing what’s needed. Your system receives a case.needs_response webhook. Respond via:
Bash
POST /v1/case/{case_id}/response
Palm resumes processing after you respond. Multiple rounds of back-and-forth are recorded on the filing for audit purposes.

Retrieve the result

When the filing reaches completed, the result includes:
  • Registration number — The state-assigned entity number, available on filing.result.registration_number.
  • Formation date — Available on filing.result.formation_date.
  • Documents — Articles of Organization (LLC) or Articles of Incorporation (Corporation), state certificate, and receipts. Each document has a time-limited download URL.
JSON
{
  "id": "fil_abc123",
  "object": "filing",
  "type": "formation",
  "status": "completed",
  "entity_type": "llc",
  "jurisdiction": "US-NC",
  "name": "Acme Holdings LLC",
  "business_id": "biz_xyz789",
  "result": {
    "registration_number": "1234567",
    "formation_date": "2026-06-01"
  },
  "related_filings": [
    {
      "id": "fil_ein456",
      "object": "filing",
      "type": "ein",
      "status": "ready_to_file"
    }
  ],
  "documents": [
    {
      "id": "doc_001",
      "object": "document",
      "type": "articles_of_organization",
      "url": "https://api.getpalm.com/v1/document/doc_001/download",
      "uploaded_at": "2026-06-01T14:30:00Z"
    }
  ],
  "fee": {
    "base": 12500,
    "expedite": 2500
  }
}

Fees

Formation fees vary by state and entity type. Use the requirements endpoint to get fee estimates before submitting. The final amount paid is available on the filing record once it reaches completed, broken down by component (base, expedite, etc.).

Next steps