---
title: "Deregister registration"
method: POST
path: "/v1/registrations/{registration_id}/deregister"
tags: ["Registrations"]
---

# Deregister registration

`POST /v1/registrations/{registration_id}/deregister`

## Request

- Base URL: `https://api.trykintsugi.com`
- URL: `https://api.trykintsugi.com/v1/registrations/{registration_id}/deregister`
- Auth: API key in header `X-API-KEY`

Deregister an existing registration.

## Path parameters

- `registration_id` string, required: The unique identifier of the registration to deregister.

## Headers

- `x-organization-id` string, nullable, required: The unique identifier for the organization making the request

## Request body

- DeregisterRegistrationRequest: Body for POST /registrations/{id}/deregister.
  - `closure_date` string, date, required: Effective date the permit closes with the jurisdiction (YYYY-MM-DD). Past and future dates are accepted.
  - `reason` 'FULL_BUSINESS_CLOSURE' | 'CLOSING_NEXUS_IN_STATE', required: Reason a registration is being closed.
  - `final_return_acknowledged` true, required: Must be true: the actor confirms a final return is still owed.
  - `request_id` string, nullable: Optional client-minted id for this confirm attempt.

## Response `200`

Successfully deregistered registration by id

- RegistrationRead
  - `registration_date` string, date, nullable: The date when the registration was created. Format: YYYY-MM-DD.
  - `registration_email` string, nullable: Email address associated with the registration.
  - `registration_requested` string, nullable: Timestamp when the registration was requested.
  - `registration_completed` string, nullable: Timestamp when the registration was completed.
  - `deregistration_requested` string, nullable: Timestamp when deregistration was requested.
  - `deregistration_completed` string, nullable: Timestamp when the deregistration was completed.
  - `auto_registered` boolean, nullable: Indicates whether the registration was completed automatically.
  - `registrations_regime` 'STANDARD' | 'SIMPLIFIED'
  - `change_regime_status` 'REQUESTED' | 'APPROVED' | 'DONE' | 'ACKNOWLEDGED'
  - `third_party_enabled` boolean, nullable: Indicates whether third-party access is enabled for this registration.
  - `do_not_file` boolean: If true, do not file for this registration (treated as False by default).
  - `two_factor_enabled` boolean, nullable: Indicates whether two-factor authentication (2FA) is enabled for this registration.
  - `marked_collecting` boolean, nullable: Indicates whether the registration is marked as collecting in shopify
  - `is_pre_collecting` boolean: True when this PROCESSING registration marks the organization as collecting tax in the jurisdiction ahead of registration details. It skips the Tax Ops registration task until the flag is cleared.
  - `status` 'REGISTERED' | 'PROCESSING' | 'UNREGISTERED' | 'DEREGISTERING' | 'DEREGISTERED' | 'CANCELLED' | 'VALIDATING' | 'AWAITING_CLARIFICATION' | 'SELF_MANAGED', required
  - `country_code` 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'CV' | 'KH' | 'CM' | 'CA' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'SZ' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MK' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW' | 'XK' | 'ZZ_EU', required
  - `state_code` string, required: The state/province code where the registration applies.
  - `state_name` string, required: The name of the state/province.
  - `filing_frequency` 'UNKNOWN' | 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'ANNUALLY' | 'ANNUAL_FISCAL_YEAR' | 'SEMI_MONTHLY' | 'BI_MONTHLY' | 'FOUR_MONTHLY' | 'QUARTERLY_PREPAYMENT', required
  - `initial_filing_frequency` 'UNKNOWN' | 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'ANNUALLY' | 'ANNUAL_FISCAL_YEAR' | 'SEMI_MONTHLY' | 'BI_MONTHLY' | 'FOUR_MONTHLY' | 'QUARTERLY_PREPAYMENT'
  - `scheduled_filing_frequency` 'UNKNOWN' | 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'ANNUALLY' | 'ANNUAL_FISCAL_YEAR' | 'SEMI_MONTHLY' | 'BI_MONTHLY' | 'FOUR_MONTHLY' | 'QUARTERLY_PREPAYMENT'
  - `filing_frequency_effective_date` string, date, nullable: The date on which `scheduled_filing_frequency` should automatically become the registration's `filing_frequency`. Null when no frequency change is pending.
  - `period_end_month` integer, nullable: Month (1-12) on which this registration's filing period ends, for fiscal-year filers whose quarterly/semiannual periods are offset from the calendar. Null means calendar-aligned periods.
  - `username` string, nullable: Username for accessing tax registration details.
  - `comment` string, nullable: Additional comments related to the registration.
  - `create_filings_from` string, date, nullable: The date from which filings should be created. should start (YYYY-MM-DD).
  - `create_back_filing` boolean: Whether to also file the single period preceding the first filing period.
  - `initial_sync` boolean, nullable: Indicates whether an initial synchronization should be performed.
  - `amount_fees` string: The amount of fees associated with the registration.
  - `vda` boolean, nullable: Indicates whether a Voluntary Disclosure Agreement (VDA) applies.
  - `imported` boolean, nullable: Whether the registration was imported from another system.
  - `sales_tax_id` string, nullable: Account number for this registration. Holds the sales tax ID on a sales or combined permit, and the consumer use tax account number on a use tax registration.
  - `ior_number` string, nullable: The Importer of Record (IOR) number associated with the registration.
  - `ior_date` string, date, nullable: The date the Importer of Record (IOR) became effective (YYYY-MM-DD). For jurisdictions where tax collection starts after the IOR date rather than the registration date, this is the date on/after which tax is collected.
  - `sst_import` boolean, nullable: Indicates whether the registration is an SST Import.
  - `oss_type` 'UNION' | 'NON_UNION' | 'IOSS': Type of OSS registration.
  - `oss_member_state_of_identification_code` 'AF' | 'AX' | 'AL' | 'DZ' | 'AS' | 'AD' | 'AO' | 'AI' | 'AQ' | 'AG' | 'AR' | 'AM' | 'AW' | 'AU' | 'AT' | 'AZ' | 'BS' | 'BH' | 'BD' | 'BB' | 'BY' | 'BE' | 'BZ' | 'BJ' | 'BM' | 'BT' | 'BO' | 'BQ' | 'BA' | 'BW' | 'BV' | 'BR' | 'IO' | 'BN' | 'BG' | 'BF' | 'BI' | 'CV' | 'KH' | 'CM' | 'CA' | 'KY' | 'CF' | 'TD' | 'CL' | 'CN' | 'CX' | 'CC' | 'CO' | 'KM' | 'CG' | 'CD' | 'CK' | 'CR' | 'HR' | 'CU' | 'CW' | 'CY' | 'CZ' | 'DK' | 'DJ' | 'DM' | 'DO' | 'EC' | 'EG' | 'SV' | 'GQ' | 'ER' | 'EE' | 'SZ' | 'ET' | 'FK' | 'FO' | 'FJ' | 'FI' | 'FR' | 'GF' | 'PF' | 'TF' | 'GA' | 'GM' | 'GE' | 'DE' | 'GH' | 'GI' | 'GR' | 'GL' | 'GD' | 'GP' | 'GU' | 'GT' | 'GG' | 'GN' | 'GW' | 'GY' | 'HT' | 'HM' | 'VA' | 'HN' | 'HK' | 'HU' | 'IS' | 'IN' | 'ID' | 'IR' | 'IQ' | 'IE' | 'IM' | 'IL' | 'IT' | 'CI' | 'JM' | 'JP' | 'JE' | 'JO' | 'KZ' | 'KE' | 'KI' | 'KP' | 'KR' | 'KW' | 'KG' | 'LA' | 'LV' | 'LB' | 'LS' | 'LR' | 'LY' | 'LI' | 'LT' | 'LU' | 'MO' | 'MG' | 'MW' | 'MY' | 'MV' | 'ML' | 'MT' | 'MH' | 'MQ' | 'MR' | 'MU' | 'YT' | 'MX' | 'FM' | 'MD' | 'MC' | 'MN' | 'ME' | 'MS' | 'MA' | 'MZ' | 'MM' | 'NA' | 'NR' | 'NP' | 'NL' | 'NC' | 'NZ' | 'NI' | 'NE' | 'NG' | 'NU' | 'NF' | 'MK' | 'MP' | 'NO' | 'OM' | 'PK' | 'PW' | 'PS' | 'PA' | 'PG' | 'PY' | 'PE' | 'PH' | 'PN' | 'PL' | 'PT' | 'PR' | 'QA' | 'RE' | 'RO' | 'RU' | 'RW' | 'BL' | 'SH' | 'KN' | 'LC' | 'MF' | 'PM' | 'VC' | 'WS' | 'SM' | 'ST' | 'SA' | 'SN' | 'RS' | 'SC' | 'SL' | 'SG' | 'SX' | 'SK' | 'SI' | 'SB' | 'SO' | 'ZA' | 'GS' | 'SS' | 'ES' | 'LK' | 'SD' | 'SR' | 'SJ' | 'SE' | 'CH' | 'SY' | 'TW' | 'TJ' | 'TZ' | 'TH' | 'TL' | 'TG' | 'TK' | 'TO' | 'TT' | 'TN' | 'TR' | 'TM' | 'TC' | 'TV' | 'UG' | 'UA' | 'AE' | 'GB' | 'US' | 'UM' | 'UY' | 'UZ' | 'VU' | 'VE' | 'VN' | 'VG' | 'VI' | 'WF' | 'EH' | 'YE' | 'ZM' | 'ZW' | 'XK' | 'ZZ_EU'
  - `tax_type` 'SALES_TAX' | 'USE_TAX' | 'SALES_AND_USE_TAX' | 'RETAIL_DELIVERY_FEE' | 'SMALL_PARCEL_VAT': Tax obligation on a nexus, registration, or filing row. Registrations and filings may be SALES_AND_USE_TAX: one state account and one return can cover both taxes, and each is stored as a single row. Nexus rows are SALES_TAX, USE_TAX, RETAIL_DELIVERY_FEE, or SMALL_PARCEL_VAT. Sales tax, use tax, the retail delivery fee, and the Swiss small-parcel threshold are separate obligations with their own met dates and period models. SMALL_PARCEL_VAT is a threshold only. A sales tax registration covers it, and it has no account and no return of its own.
  - `marked_collecting_date` string, nullable: The date when the registration was marked as collecting.
  - `needs_mark_as_collecting` boolean, nullable: Indicates whether the registration needs to be marked as collecting.
  - `id` string, required: The unique identifier for the registration.
  - `created_at` string, nullable: Timestamp when this registration was created in Kintsugi.
  - `credits_total_available` string
  - `registration_category` 'REGULAR' | 'IMPORTED' | 'DEREGISTRATION'
  - `jurisdiction_specific_fields` object, nullable: Jurisdiction-specific registration fields.
  - `deregistration_closure_date` string, date, nullable: Effective date the registration closes with the jurisdiction.
  - `deregistration_reason` 'FULL_BUSINESS_CLOSURE' | 'CLOSING_NEXUS_IN_STATE': Reason a registration is being closed.
  - `deregistration_acknowledged_at` string, nullable: When final-return acknowledgement was recorded.
  - `kintsugi_mail_on_file` boolean: True when the Kintsugi Mail address is on file with the state for this registration.
  - `kintsugi_mail_confirmed_at` string, date, nullable: Date Tax Ops marked Kintsugi Mail as on file with the state. Null when not on file.
  - `filing_days` integer, required
  - `registration_type` 'EU_OSS' | 'OTHER', required
  - `filing_website_url` string, nullable, required: State tax portal URL for this registration's jurisdiction.

## Other responses

- `401`: Unauthenticated request.
- `404`: Resource Not Found
- `422`: Validation error
- `500`: Internal server error

## Changes

- **2026-10-28** `2c90b14ca671`: 1 warning
  - added the new `SMALL_PARCEL_VAT` enum value to the `tax_type` response property for the response status `200`
- **2026-10-22** `d251e3228d00`: 2 info
  - added the optional property `kintsugi_mail_confirmed_at` to the response with the `200` status
  - added the optional property `kintsugi_mail_on_file` to the response with the `200` status
- **2026-10-16** `5aac489fbe23`: 7 breaking
  - the `created_at/anyOf[subschema #1]/` response's property format changed from `date-time` to no format for status `200`
  - the `deregistration_acknowledged_at/anyOf[subschema #1]/` response's property format changed from `date-time` to no format for status `200`
  - the `deregistration_completed/anyOf[subschema #1]/` response's property format changed from `date-time` to no format for status `200`
  - the `deregistration_requested/anyOf[subschema #1]/` response's property format changed from `date-time` to no format for status `200`
  - …3 more
- **2026-10-09** `47ea0598da9f`: 2 warning
  - removed the optional property `retail_delivery_fee_effective_from` from the response with the `200` status
  - removed the optional property `retail_delivery_fee_obligated` from the response with the `200` status
- **2026-09-29** `89cfba727d61`: 1 info
  - added the optional property `is_pre_collecting` to the response with the `200` status

[Operation history](https://skmtc.dev/trykintsugi/apis/tax-platform/changes/v1/registrations/:registration_id/deregister/post.md)

---

[API](https://skmtc.dev/trykintsugi/apis/tax-platform.md) - [All operations](https://skmtc.dev/trykintsugi/apis/tax-platform/llms.txt) - [OpenAPI document](https://skmtc.dev/trykintsugi/apis/tax-platform/revisions/00512519f0d4?raw)
