---
title: Delete Configuration Template
slug: api-documentation/delete-configuration-template
docTags: 
createdAt: 2026-08-27T16:18:32.800Z
---

{
  "id": "ku0L0F11LundccvuFdyOc",
  "type": "api-oas-v2",
  "data": {
    "method": "DELETE",
    "url": "https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}",
    "servers": [
      {
        "url": "https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}"
      }
    ],
    "name": "Delete Configuration Template",
    "description": "<p>This endpoint deletes cfg template if it is not used in any record.</p>\n<p>Authorized permissions:</p>\n<ul>\n<li><code>tenant.cfg.modify</code></li>\n</ul>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [
        {
          "kind": "required",
          "name": "templateId",
          "type": "string",
          "description": "Unique identifier for a given template."
        }
      ],
      "headerParameters": [
        {
          "kind": "required",
          "name": "x-upstart-tenant",
          "type": "string",
          "description": "Tenant identifier associated with the site this call is for."
        }
      ],
      "queryParameters": [],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "NoChannelPortalAccess",
          "name": "NoChannelPortalAccess",
          "kind": "optional",
          "type": "http",
          "description": "<p>This authentication is required for clients to interact with any of the management APIs. Similar to 'LoggedIn', it indicates that the user has actually logged into the system, but in this case with a management role.</p>",
          "scheme": "bearer"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Template deleted successfully.",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "204",
        "description": "Template already deleted.",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "400",
        "description": "The request contained information that the server was unable to process. Appropriate errors are provided in the response body.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"name\":\"ValidationError\",\"code\":\"SCHEMA_VALIDATION_FAILED\",\"detail\":\"Configuration data validation failed: data.apiKey is required but was not provided. Expected string with minimum length 32.\"}",
            "description": "<p>Error response returned when request validation fails (HTTP 400). Contains details about which fields failed validation and why. Used for client-side error display and form validation feedback. Common when configuration data doesn't match template schema.</p>",
            "customType": "ValidationErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "<p>The error type, typically 'ValidationError' for all validation failures. Use this to distinguish validation errors from other error types in your error handling logic.</p>",
                "example": "ValidationError"
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": "<p>A validation-specific error code indicating the validation rule that failed. Examples include 'REQUIRED_FIELD_MISSING', 'INVALID_FORMAT', 'VALUE_OUT_OF_RANGE', 'SCHEMA_VALIDATION_FAILED', 'TEMPLATE_NOT_FOUND'. Use for specific handling of different validation scenarios.</p>",
                "example": "SCHEMA_VALIDATION_FAILED"
              },
              {
                "name": "detail",
                "kind": "optional",
                "type": "string",
                "description": "<p>Human-readable validation error message describing which field(s) failed and why. Includes specific details about what was expected vs what was provided. For schema validation failures, may include JSON path to the invalid field (e.g., 'data.apiKey is required but was not provided').</p>",
                "example": "Configuration data validation failed: data.apiKey is required but was not provided. Expected string with minimum length 32."
              }
            ],
            "modelRef": "#/components/schemas/ValidationErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "404",
        "description": "The requested resource was not found in the NoChannel system.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"name\":\"ResourceNotFoundError\",\"code\":\"TEMPLATE_NOT_FOUND\",\"detail\":\"The configuration template with ID \\\"payment-stripe\\\" was not found in the system.\",\"reason\":\"The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates.\"}",
            "description": "<p>Standard error response returned when a request fails due to business logic, authorization, or system errors. Provides structured information for debugging and user-facing error messages.</p>",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "<p>The high-level error category or type name. This is a machine-readable identifier for the class of error (e.g., 'AuthorizationError', 'ResourceNotFoundError', 'ValidationError'). Use this for programmatic error handling.</p>",
                "example": "ResourceNotFoundError"
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": "<p>A specific error code identifying the exact error condition. More granular than name, this code can be used for precise error handling and localization. Format is typically uppercase with underscores (e.g., 'TEMPLATE_NOT_FOUND', 'INSUFFICIENT_PERMISSIONS').</p>",
                "example": "TEMPLATE_NOT_FOUND"
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": "<p>A human-readable description of the error, including context about what went wrong. This message is suitable for display to end users or inclusion in logs. May include specifics like resource IDs or field names.</p>",
                "example": "The configuration template with ID \"payment-stripe\" was not found in the system."
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": "<p>Optional additional context explaining why the error occurred or what action the user should take. May include suggestions for resolution, links to documentation, or details about system state that led to the error.</p>",
                "example": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "422",
        "description": "<p>The request was well-formed but contains semantic errors or violates business rules that prevent processing.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"name\":\"UnprocessableEntityError\",\"code\":\"TEMPLATE_IN_USE\",\"detail\":\"Cannot delete template \\\"payment-cybersource\\\" because 5 configuration records are still using it.\",\"reason\":\"Delete or migrate all records using this template before deleting the template itself.\"}",
            "description": "<p>Standard error response returned when a request fails due to business logic, authorization, or system errors. Provides structured information for debugging and user-facing error messages.</p>",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "<p>The high-level error category or type name. This is a machine-readable identifier for the class of error (e.g., 'AuthorizationError', 'ResourceNotFoundError', 'ValidationError'). Use this for programmatic error handling.</p>",
                "example": "ResourceNotFoundError"
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": "<p>A specific error code identifying the exact error condition. More granular than name, this code can be used for precise error handling and localization. Format is typically uppercase with underscores (e.g., 'TEMPLATE_NOT_FOUND', 'INSUFFICIENT_PERMISSIONS').</p>",
                "example": "TEMPLATE_NOT_FOUND"
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": "<p>A human-readable description of the error, including context about what went wrong. This message is suitable for display to end users or inclusion in logs. May include specifics like resource IDs or field names.</p>",
                "example": "The configuration template with ID \"payment-stripe\" was not found in the system."
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": "<p>Optional additional context explaining why the error occurred or what action the user should take. May include suggestions for resolution, links to documentation, or details about system state that led to the error.</p>",
                "example": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "500",
        "description": "<p>An unexpected internal server error occurred. The request may be retried, and if the problem persists, contact support with the traceId from the error response.</p>",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "example": "{\"name\":\"InternalServerError\",\"code\":\"UNEXPECTED_ERROR\",\"detail\":\"An unexpected error occurred while processing your request.\",\"reason\":\"Our team has been notified. Please try again, and if the problem persists, contact support with trace ID: 550e8400-e29b-41d4-a716-446655440000\"}",
            "description": "<p>Standard error response returned when a request fails due to business logic, authorization, or system errors. Provides structured information for debugging and user-facing error messages.</p>",
            "customType": "ErrorResponse",
            "schema": [
              {
                "name": "name",
                "kind": "required",
                "type": "string",
                "description": "<p>The high-level error category or type name. This is a machine-readable identifier for the class of error (e.g., 'AuthorizationError', 'ResourceNotFoundError', 'ValidationError'). Use this for programmatic error handling.</p>",
                "example": "ResourceNotFoundError"
              },
              {
                "name": "code",
                "kind": "required",
                "type": "string",
                "description": "<p>A specific error code identifying the exact error condition. More granular than name, this code can be used for precise error handling and localization. Format is typically uppercase with underscores (e.g., 'TEMPLATE_NOT_FOUND', 'INSUFFICIENT_PERMISSIONS').</p>",
                "example": "TEMPLATE_NOT_FOUND"
              },
              {
                "name": "detail",
                "kind": "required",
                "type": "string",
                "description": "<p>A human-readable description of the error, including context about what went wrong. This message is suitable for display to end users or inclusion in logs. May include specifics like resource IDs or field names.</p>",
                "example": "The configuration template with ID \"payment-stripe\" was not found in the system."
              },
              {
                "name": "reason",
                "kind": "optional",
                "type": "string",
                "description": "<p>Optional additional context explaining why the error occurred or what action the user should take. May include suggestions for resolution, links to documentation, or details about system state that led to the error.</p>",
                "example": "The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates."
              }
            ],
            "modelRef": "#/components/schemas/ErrorResponse",
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "uV0R17Rj0ob4knAL-kMFA",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request DELETE \\\n     --url https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId} \\\n     --header 'accept: application/json' \\\n     --header 'x-upstart-tenant: string'"
        },
        {
          "id": "_-BpNJjuTcOCuqg7Zt_48",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\nmyHeaders.append(\"x-upstart-tenant\", \"string\");\n\nvar requestOptions = {\n   method: 'DELETE',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "bJHQMXe6QUS399XV90772",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Delete.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\nrequest[\"x-upstart-tenant\"] = \"string\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "sNUfkwFSao6hc54JTPllI",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.upstartcommerce.com/v1/tenants/cfg/templates/{templateId}\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json',\n   'x-upstart-tenant': 'string'\n}\n\nresponse = requests.request(\"DELETE\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "uV0R17Rj0ob4knAL-kMFA"
    },
    "results": {
      "languages": [
        {
          "id": "6LaY16bRx5I57zaqrN3wA",
          "language": "200",
          "code": "// Template deleted successfully.\n"
        },
        {
          "id": "qXl8ijX9cWWAYkcOYqnPp",
          "language": "204",
          "code": "// Template already deleted.\n"
        },
        {
          "id": "PuQUJAUeaMm7hqfxHjYYd",
          "language": "400",
          "code": "// The request contained information that the server was unable to process. Appropriate errors are provided in the response body.\n{\n  \"name\": \"ValidationError\",\n  \"code\": \"SCHEMA_VALIDATION_FAILED\",\n  \"detail\": \"Configuration data validation failed: data.apiKey is required but was not provided. Expected string with minimum length 32.\"\n}"
        },
        {
          "id": "Rzmn8YvY4NZgz55widM8e",
          "language": "404",
          "code": "// The requested resource was not found in the NoChannel system.\n{\n  \"name\": \"ResourceNotFoundError\",\n  \"code\": \"TEMPLATE_NOT_FOUND\",\n  \"detail\": \"The configuration template with ID \\\"payment-stripe\\\" was not found in the system.\",\n  \"reason\": \"The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates.\"\n}"
        },
        {
          "id": "aC-e7lGt2uOS3PlJ9ZEsO",
          "language": "422",
          "code": "// The request was well-formed but contains semantic errors or violates business rules that prevent processing.\n{\n  \"name\": \"ResourceNotFoundError\",\n  \"code\": \"TEMPLATE_NOT_FOUND\",\n  \"detail\": \"The configuration template with ID \\\"payment-stripe\\\" was not found in the system.\",\n  \"reason\": \"The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates.\"\n}"
        },
        {
          "id": "Qb-C--dKMl6eR9S38HDoz",
          "language": "500",
          "code": "// An unexpected internal server error occurred. The request may be retried, and if the problem persists, contact support with the traceId from the error response.\n{\n  \"name\": \"ResourceNotFoundError\",\n  \"code\": \"TEMPLATE_NOT_FOUND\",\n  \"detail\": \"The configuration template with ID \\\"payment-stripe\\\" was not found in the system.\",\n  \"reason\": \"The template may have been deleted or you may not have permission to access it. Verify the template ID using GET /tenants/cfg/templates.\"\n}"
        }
      ],
      "selectedLanguageId": "6LaY16bRx5I57zaqrN3wA"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}