---
title: "Delete ERP metadata"
method: DELETE
path: "/v3/erp-metadata"
tags: ["ERP Metadata"]
---

# Delete ERP metadata

`DELETE /v3/erp-metadata`

Removes specific metadata keys from the stored ERP metadata for a batch of entities of one type — customers (`CUSTOMER`), invoices (`INVOICE`), or invoice line items (`INVOICE_LINE_ITEM`). Only the keys you list are removed; other keys for the same entity and `erpSource` are left as-is, and the external id record itself is preserved. Scoped to the authenticated merchant. This clears only the value stored in Tabs — it does NOT blank the field in the ERP, because the sync skips empty/missing values, so a value already synced to the ERP stays put. Idempotent: removing a key that is already absent succeeds. One `entityType` per request.

## Request body

- DeleteErpMetadataDto
  - `entityType` 'CUSTOMER' | 'INVOICE' | 'INVOICE_LINE_ITEM', required — The entity type for every item in this request. One request handles a single entity type.
  - `items` DeleteErpMetadataItemDto[], required — The entities to remove metadata keys from, all of entityType.
    - `entityId` string, required — Tabs id of the entity — a customer id when entityType is CUSTOMER, an invoice id when INVOICE, an invoice line item id when INVOICE_LINE_ITEM
    - `erpSource` 'QUICKBOOKS' | 'ORDERTIME' | 'NETSUITE' | 'SALESFORCE' | 'HUBSPOT' | 'BACKEND' | 'AVALARA' | 'ORUM' | 'ANROK' | 'STRIPE' | 'RILLET' | 'SAGE_INTACCT' | 'SLACK' | 'SPHERE' | 'CAMPFIRE', required — ERP source the metadata is stored under (e.g. NETSUITE). Case-insensitive — `netsuite` and `NETSUITE` both work. Only metadata for this source is touched.
    - `keys` string[], required — Metadata keys to remove from the entity's stored ERP metadata for this source. Keys not present are ignored. Other keys are left as-is.

## Response `200`

Per-item result: `removedKeys` lists the requested keys that were present and removed, and `found` indicates whether a stored metadata record existed for that entity and ERP source.

- object
  - `payload` object, required — Response payload, will be empty when success is false
    - `items` DeleteErpMetadataResultDto[], required
      - `entityId` string, required — Tabs id of the entity the keys were removed from.
      - `erpSource` 'QUICKBOOKS' | 'ORDERTIME' | 'NETSUITE' | 'SALESFORCE' | 'HUBSPOT' | 'BACKEND' | 'AVALARA' | 'ORUM' | 'ANROK' | 'STRIPE' | 'RILLET' | 'SAGE_INTACCT' | 'SLACK' | 'SPHERE' | 'CAMPFIRE', required — ERP source the metadata is stored under.
      - `removedKeys` string[], required — Keys actually removed — the subset of requested keys that were present on the stored metadata.
      - `found` boolean, required — Whether a stored metadata record existed for this entity and ERP source.
  - `success` boolean, required — Boolean with true=success, false=failure
  - `message` string, required — Plain-text description of the result
  - `error` IntegratorsApiError, required
    - `code` number, required — API response code
    - `message` string, required — API response message
    - `details` object — Additional details about the error

## Other responses

- `400` — Invalid request body.

---

[API](https://skmtc.net/tabsplatform/apis/tabs-external-api.md) · [All operations](https://skmtc.net/tabsplatform/apis/tabs-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tabsplatform/tabs-external-api/revisions/7e8885517814/schema)
