# 5. Delete Products

Bulk Product Deletion — Delete multiple products by id in one call. Track with requestId.

Overview

Auth
HMAC Partner
Method
POST

# Path

https://partners-api.tocobagus.net/api/v1 /partner/stores/products/deletions

# Request

Query parameters: None.

# Required Headers

Header Example Description
x-signature bdbb8833fe43671e058b56dace75763a78a2edf8de7365afb6f534d750056e80 HMAC signature of the request, computed with the partner secret and x-timestamp (auth integrity).
x-partner-client-id 2025112012475048491498 Partner identifier issued by Omni; used to locate the partner secret.
x-store-client-id 638765489981529612855 Target store identifier under the partner account.
x-store-token stkn__6AbJF05mjvxh7sh Store access token for store-level authorization.
x-timestamp 1758100350458 UNIX epoch timestamp used when computing x-signature (replay protection).

# Request Payload

Content-Type: application/json

# Example Body Payload

{
  "ids": [
    "946b3ffa-5f9e-412e-acf4-eea306736e63",
    "66721951-5f60-47fa-828c-29040fd3595f"
  ]
}

# Example Request

curl -X POST "http:///partner/stores/products/deletions" \
  -H "Content-Type: application/json" \
  -H "x-signature: bdbb8833fe43671e058b56dace75763a78a2edf8de7365afb6f534d750056e80" \
  -H "x-partner-client-id: 2025112012475048491498" \
  -H "x-store-client-id: 638765489981529612855" \
  -H "x-store-token: stkn__6AbJF05mjvxh7sh" \
  -H "x-timestamp: 1758100350458" \
  --data '{"ids":["946b3ffa-5f9e-412e-acf4-eea306736e63","66721951-5f60-47fa-828c-29040fd3595f"]}'
const qs = new URLSearchParams({});
const url = "http:///partner/stores/products/deletions" + (qs.toString() ? "?" + qs.toString() : "");
const res = await fetch(url, {
  method: "POST",
  headers: {
  "x-signature": "bdbb8833fe43671e058b56dace75763a78a2edf8de7365afb6f534d750056e80",
  "x-partner-client-id": "2025112012475048491498",
  "x-store-client-id": "638765489981529612855",
  "x-store-token": "stkn__6AbJF05mjvxh7sh",
  "x-timestamp": "1758100350458"
},
  body: JSON.stringify({"ids":["946b3ffa-5f9e-412e-acf4-eea306736e63","66721951-5f60-47fa-828c-29040fd3595f"]})
});
const json = await res.json();
console.log(json);
qs := url.Values{}

u := "http:///partner/stores/products/deletions"
if q := qs.Encode(); q != "" { u = u + "?" + q }
req, _ := http.NewRequest("POST", u, bytes.NewBufferString("{\"ids\":[\"946b3ffa-5f9e-412e-acf4-eea306736e63\",\"66721951-5f60-47fa-828c-29040fd3595f\"]}"))
req.Header.Set("x-signature", "bdbb8833fe43671e058b56dace75763a78a2edf8de7365afb6f534d750056e80")
req.Header.Set("x-partner-client-id", "2025112012475048491498")
req.Header.Set("x-store-client-id", "638765489981529612855")
req.Header.Set("x-store-token", "stkn__6AbJF05mjvxh7sh")
req.Header.Set("x-timestamp", "1758100350458")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
b, _ := io.ReadAll(resp.Body)
fmt.Println(string(b))
var client = java.net.http.HttpClient.newHttpClient();
var req = java.net.http.HttpRequest.newBuilder()
    .uri(java.net.URI.create("http:///partner/stores/products/deletions"))
    .header("Content-Type","application/json")
    .header("x-signature", "bdbb8833fe43671e058b56dace75763a78a2edf8de7365afb6f534d750056e80")
    .header("x-partner-client-id", "2025112012475048491498")
    .header("x-store-client-id", "638765489981529612855")
    .header("x-store-token", "stkn__6AbJF05mjvxh7sh")
    .header("x-timestamp", "1758100350458")
    .method("POST", java.net.http.HttpRequest.BodyPublishers.ofString("{\"ids\":[\"946b3ffa-5f9e-412e-acf4-eea306736e63\",\"66721951-5f60-47fa-828c-29040fd3595f\"]}"))
    .build();
var res = client.send(req, java.net.http.HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());

# Responses

# Example Responses

{
  "success": true,
  "message": "Products deleted successfully",
  "requestId": "3f00381d-8c8a-4b7b-94b7-a7b076a9f8b2",
  "meta": {
    "timestamp": "2026-02-04T22:27:44.587Z",
    "durationMs": 1450,
    "dispatch": false
  },
  "data": {
    "summary": {
      "total": 2,
      "succeeded": 1,
      "failed": 1
    },
    "successItems": [
      {
        "id": "66721951-5f60-47fa-828c-29040fd3595f",
        "externalId": "bace66be-47c4-4f72-868c-ad792da8b210"
      }
    ],
    "errors": [
      {
        "code": "PRD_014",
        "message": "Product ID not found",
        "rowIndex": 0,
        "id": "946b3ffa-5f9e-412e-acf4-eea306736e63"
      }
    ]
  }
}
{
  "success": false,
  "error": {
    "code": "AUTH_003",
    "message": "Expired or invalid timestamp",
    "details": {
      "timestamp": "2026-02-04T22:27:05.126Z",
      "hint": "Request timestamp must be within 300 seconds",
      "context": {
        "providedTimestamp": 1770240839135,
        "currentTime": 1770244025126,
        "ageSeconds": 3185
      }
    }
  },
  "requestId": "69c34ce5-9f97-4a02-ae5d-0fc771f3c57a"
}
{
  "success": false,
  "error": {
    "code": "VAL_001",
    "message": "Validation failed",
    "details": {
      "timestamp": "2025-09-10T07:19:39.755Z",
      "hint": "Please check your request data and try again",
      "context": {
        "validationErrors": {
          "externalIds": "At least one external ID is required"
        }
      }
    }
  },
  "requestId": "6f6ad07d-eef5-449e-8d3d-c840e2bfa1b7"
}

# Dictionary

None for this endpoint.

# Notes

None for this endpoint.