> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.taxwire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete product

> Deletes a product. Returns 204 with no body, including when the product was already deleted, so a retry is safe. A deleted product drops out of this API — GET and list no longer return it — but keeps its `(source_id, source, source_account_id)` key, so creating it again is a 409 with `meta.deleted: true`. Deleting does not rewrite tax history: a past transaction that priced against this product still resolves it. There is no un-delete on this API; the product comes back if the source system syncs it again. Answers 404 for an unknown id or one owned by another account.



## OpenAPI

````yaml DELETE /products/{product_id}
openapi: 3.1.0
info:
  title: Taxwire Public API
  version: 0.1.0
servers: []
security: []
paths:
  /products/{product_id}:
    delete:
      tags:
        - Products
      summary: Delete a Product
      description: >-
        Deletes a product. Returns 204 with no body, including when the product
        was already deleted, so a retry is safe. A deleted product drops out of
        this API — GET and list no longer return it — but keeps its `(source_id,
        source, source_account_id)` key, so creating it again is a 409 with
        `meta.deleted: true`. Deleting does not rewrite tax history: a past
        transaction that priced against this product still resolves it. There is
        no un-delete on this API; the product comes back if the source system
        syncs it again. Answers 404 for an unknown id or one owned by another
        account.
      operationId: delete_product_products__product_id__delete
      parameters:
        - name: product_id
          in: path
          required: true
          schema:
            type: string
            description: The product's Taxwire `id` (a `prd_`-prefixed ULID).
            title: Product Id
          description: The product's Taxwire `id` (a `prd_`-prefixed ULID).
      responses:
        '204':
          description: Successful Response
        '404':
          description: No product with this ID exists in your organization.
        '422':
          description: Validation Error - Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - status: '422'
                    code: validation_required_field
                    title: Missing quantity
                    detail: Please provide a value for the required quantity field
                    source:
                      pointer: /data/attributes/line_items/0/quantity
        '429':
          description: Rate limit exceeded. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - status: '429'
                    code: rate_limit_error
                    title: Too Many Requests
                    detail: Rate limit exceeded
          headers:
            Retry-After:
              schema:
                type: string
              description: Time in seconds until the rate limit resets
            X-RateLimit-Limit:
              schema:
                type: string
              description: The rate limit ceiling for the given request
            X-RateLimit-Remaining:
              schema:
                type: string
              description: The number of requests remaining in the time window
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - status: '500'
                    code: system_internal_error
                    title: Internal Error
                    detail: An unexpected error occurred. Our team has been notified.
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    ErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/Error'
          type: array
          title: Errors
      type: object
      required:
        - errors
      title: ErrorResponse
      description: Standardized JSON:API error response model.
    Error:
      properties:
        status:
          type: string
          title: Status
        code:
          type: string
          title: Code
        title:
          type: string
          title: Title
        detail:
          type: string
          title: Detail
        source:
          anyOf:
            - $ref: '#/components/schemas/ErrorSource'
            - type: 'null'
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
      type: object
      required:
        - status
        - code
        - title
        - detail
      title: Error
      description: Individual JSON:API error object.
    ErrorSource:
      properties:
        pointer:
          anyOf:
            - type: string
            - type: 'null'
          title: Pointer
      type: object
      title: ErrorSource
      description: Identifies the source of the error, e.g., via a JSON Pointer.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.