---
title: "Finalize domain setup"
method: POST
path: "/company/domains/{id}/finalize"
tags: ["Email Domains"]
---

# Finalize domain setup

`POST /company/domains/{id}/finalize`

Finalize domain setup by registering with the email provider. This returns the DNS records (SPF, DKIM, DMARC) that must be added to enable email sending. Can only be called after domain ownership is verified.

## Path parameters

- `id` string, uuid, required

## Response `200`

Domain finalized successfully. Add the returned DNS records.

- DomainFinalizeResponse — Domain finalization with DNS records
  - `message` string, required
  - `domain` Domain, required — Email domain configuration for sending signing request emails
    - `id` string, uuid, required — Unique identifier for the domain
    - `domain` string, required — The domain name (e.g., 'example.com')
    - `verification_status` 0 | 1 | 2, required — Domain ownership verification status: 0=pending, 1=ownership verified (TXT record confirmed), 2=finalized (registered with email provider)
    - `domain_status` 0 | 1, required — Email sending status: 0=DNS records pending verification, 1=fully verified and ready to send
    - `is_primary` boolean — Whether this is the primary domain for sending emails from this workspace
    - `verification_token` string — Token to add as TXT record for domain ownership verification. Only returned when verification_status=0.
    - `resend_domain_id` string, nullable — External email provider domain ID (internal use)
    - `dns_records` DomainDnsRecord[], nullable — Required DNS records for email sending. Only returned after domain finalization (verification_status=2).
      - `type` 'TXT' | 'CNAME' | 'MX' — DNS record type
      - `name` string — DNS record name/host (e.g., 'resend._domainkey' or '@')
      - `value` string — DNS record value
      - `ttl` string — Time to live (e.g., 'Auto' or seconds)
      - `priority` integer, nullable — Priority for MX records
      - `status` 'pending' | 'verified' | 'failed' — Verification status of this specific record
    - `date_created` string, date-time — Domain creation timestamp
    - `date_changed` string, date-time — Domain last update timestamp
  - `dns_records` DomainDnsRecord[], required — DNS records to add for email sending
    - `type` 'TXT' | 'CNAME' | 'MX' — DNS record type
    - `name` string — DNS record name/host (e.g., 'resend._domainkey' or '@')
    - `value` string — DNS record value
    - `ttl` string — Time to live (e.g., 'Auto' or seconds)
    - `priority` integer, nullable — Priority for MX records
    - `status` 'pending' | 'verified' | 'failed' — Verification status of this specific record
  - `next_step` string, required

## Other responses

- `400` — Cannot finalize
- `401` — Unauthorized - Invalid or missing API key
- `404` — Not Found - Resource does not exist
- `429` — Too Many Requests - Rate limit exceeded

---

[API](https://skmtc.dev/firma/apis/firma-partner-api.md) · [All operations](https://skmtc.dev/firma/apis/firma-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/firma/firma-partner-api/revisions/5c03d6a9d080/schema)
