---
title: "Create a signature session"
method: POST
path: "/v1/partner/companies/{companyId}/signatures"
tags: ["Signatures"]
---

# Create a signature session

`POST /v1/partner/companies/{companyId}/signatures`

## Request

- Base URL: `https://api.test.doola.com`
- URL: `https://api.test.doola.com/v1/partner/companies/{companyId}/signatures`
- Auth: API key in header `Authorization`

Generates an embedded signing URL for the specified document type. Always mints a fresh URL — prior unsigned sessions for the same document are voided afterwards on a best-effort basis. Returns 409 if the document has already been signed, or 422 if the company is not eligible (e.g., SS-4 is exempt because someone has a valid SSN), or 503 if the signing provider is unavailable. An ITIN does not grant that exemption. SSNs are checked for format, not issuance.

## Path parameters

- `companyId` string, required

## Request body

- CreateSignatureSessionRequest
  - `documentType` 'SS4' | 'FORM8821', required

## Response `201`

Signature session created. Returns a fresh, whitelabeled signing URL that expires two hours after issuance.

- SignatureSessionDto
  - `id` string
  - `url` string
  - `documentType` 'SS4' | 'FORM8821'
  - `expiresAt` string, date-time

## Other responses

- `400`: E_DOCUMENT_TYPE_NOT_SUPPORTED: the document type cannot be signed via this endpoint. Malformed bodies return E_VALIDATION_FAILED. E_RESPONSIBLE_PARTY_INVALID: the responsible party's name or email is missing, or the name cannot be printed on the form.
- `404`: E_NOT_FOUND: no company with this ID for the authenticated partner.
- `409`: E_DOCUMENT_ALREADY_SIGNED: the document has already been signed.
- `422`: E_FORMATION_NOT_ELIGIBLE: the company does not require this document. A valid SSN on any member, executive member, or responsible party exempts SS-4; an ITIN does not. Form 8821 requires expedited EIN without that exemption or an explicit required action. SSNs are checked for format, not issuance.
- `503`: E_SIGNATURE_PROVIDER_UNAVAILABLE: the signing provider did not respond. Retry with backoff; no session was created and the previous one, if any, still works.

## Changes

- **2026-11-03** `f607744a8927`: 2 warning, 5 info
  - removed the optional property `error` from the response with the `201` status
  - removed the optional property `payload` from the response with the `201` status
  - added the non-success response with the status `503`
  - added the optional property `documentType` to the response with the `201` status
  - …3 more

[Operation history](https://skmtc.dev/doola/apis/doola-partner-api/changes/v1/partner/companies/:companyId/signatures/post.md)

---

[API](https://skmtc.dev/doola/apis/doola-partner-api.md) - [All operations](https://skmtc.dev/doola/apis/doola-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/doola/apis/doola-partner-api/revisions/f607744a8927?raw)
