---
title: "Sign the prepared W-9 (business)"
method: POST
path: "/compliance/kyb/w9/sign"
tags: ["compliance", "kyb"]
---

# Sign the prepared W-9 (business)

`POST /compliance/kyb/w9/sign`

Records the applicant's signature on the prepared W-9 and stores the signed PDF on the W-9 document-checklist field.

## Request body

- KybSignKYBW9Input
  - `attested` boolean, required
  - `checksum_sha256` string, required
  - `signer_date` string, required
  - `signer_name` string, required
  - `signer_title` string
  - `tax_classification` string
  - `tax_classification_other` string

## Response `200`

OK

- KybSignKYBW9Output
  - `checksum_sha256` string
  - `document_id` string
  - `filename` string
  - `signed_ts` string, date-time

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `default` — Error response.

## Changes

- **2026-09-15** `587024638dad` — 2 breaking, 1 warning, 1 info
  - added the new required request property `signer_date`
  - the `signer_name` request property's minLength was increased from `0` to `1`
  - the `signer_name` request property's maxLength was set to `75`
  - added the new optional request property `tax_classification_other`
- **2026-09-12** `322de176ce60` — 1 info
  - added the non-success response with the status `409`
- **2026-09-10** `994a8ae9d5d8` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stablesea/apis/stable-sea-backend/changes/compliance/kyb/w9/sign/post.md)

---

[API](https://skmtc.dev/stablesea/apis/stable-sea-backend.md) · [All operations](https://skmtc.dev/stablesea/apis/stable-sea-backend/llms.txt) · [OpenAPI document](https://skmtc.dev/stablesea/apis/stable-sea-backend/revisions/823fcbbd2f80?raw)
