{
"opencollection": "1.0.0",
"info": {
"name": "topi Seller catalog API",
"version": "1.0.0"
},
"items": [
{
"info": {
"name": "catalog",
"type": "folder"
},
"items": [
{
"info": {
"name": "Calculate pricing for a whole basket",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/basket/pricing",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "## *Deprecated*\n\nCalculate pricing endpoint is being replaced by two other endpoints:\n- listRecommendedRentalPrices\n- cartRentalOverview\n\nPlease make sure to migrate to one of the above endpoints based on your use case.\n\n\n### Description\n\ncalculate the price for a product"
},
{
"info": {
"name": "Get rental overview for products",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/carts/rental-overview",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Get rental overview for products"
},
{
"info": {
"name": "Check if products are supported",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/check-supported",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Checks whether the products with the given references are supported or not.\n\n### When using in the Sandbox\n\nReturns the requested products with their available contract terms, depending on the combination of the supplied Source and Reference values:\n\n- To get a product with `PayNow` contract terms : The supplied `source` should be `SAP` with `reference` specified as `1234-5678`.\n- To get a product with `Rent` contract terms : There are two ways to get this value either when the supplied `source`"
},
{
"info": {
"name": "Import products into the catalog",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/import",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Add a batch of products to the catalog.\n\n### When using in the Sandbox\n\nUse the following scenarios to get different fixtures:\n\n- Status `\"completed\"`: `Send a catalog with less than 10 products`\n- Status `\"created\"`: `Send a catalog with 10 products or more`\n- Status `\"failed\"`: `Send a product inside the catalog with the \"source\" or the \"reference\" in the \"seller_product_reference\" as empty string`\n"
},
{
"info": {
"name": "Create a CSV import job",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/imports",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Creates a new CSV import job and returns the created import id and a pre-signed upload URL.\n\n## Upload flow\n\n1. Call `POST /imports` with the `filename` of your CSV file. The response contains the import\n `id` and an `upload_url` — a temporary link to upload the file to.\n2. Upload the file with an HTTP `PUT` request to `upload_url`. The request must include two\n headers: `Content-Type: text/csv` and `x-goog-content-length-range: 0,262144000`. Uploads\n without them are rejected. The file ma"
},
{
"info": {
"name": "Get CSV import job details",
"type": "http"
},
"http": {
"method": "GET",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/imports/:id",
"params": [
{
"name": "id",
"value": "550e8400-e29b-41d4-a716-446655440000",
"type": "path",
"description": "The import job ID."
}
],
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Retrieves the details of a CSV import job.\n\n## Failure reporting\n\nThere are two distinct failure surfaces:\n\n- **`error`** — set when the import fails before any rows are processed, e.g. a required\n column is missing from the header, the uploaded file is not a valid CSV, or the upload\n has the wrong content type. The job status is `failed`, the row counters stay at 0, and\n no error CSV is produced. Fix the file and create a new import.\n- **`failed` / `errors_url`** — row-level failures during "
},
{
"info": {
"name": "Cancel a CSV import job",
"type": "http"
},
"http": {
"method": "DELETE",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/imports/:id",
"params": [
{
"name": "id",
"value": "550e8400-e29b-41d4-a716-446655440000",
"type": "path",
"description": "The import job ID to cancel."
}
],
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Cancels a CSV import job.\n\nOnly imports in `pending`, `queued`, and `running` status can be cancelled. Cancelling a completed or already-cancelled import returns an error.\n\n"
},
{
"info": {
"name": "List recommended rental prices for products",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/list-recommended-rental-prices",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "Given a list of products, retrieve information about the recommended monthly rental price and term, if applicable, for each of the requested products."
},
{
"info": {
"name": "Calculate pricing for a single product",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/pricing",
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "## *Deprecated*\n\nCalculate pricing endpoint is being replaced by two other endpoints:\n- listRecommendedRentalPrices\n- cartRentalOverview\n\nPlease make sure to migrate to one of the above endpoints based on your use case.\n\n\n### Description\n\ncalculate the price for a product"
},
{
"info": {
"name": "Search products by term",
"type": "http"
},
"http": {
"method": "GET",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/products",
"params": [
{
"name": "term",
"value": "abc123",
"type": "query",
"description": "The Seller Product Reference"
}
],
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "get products that match a search term"
},
{
"info": {
"name": "Paginated product search by term, note: this method will not support any filtering, please refer to the POST endpoint for filtering.",
"type": "http"
},
"http": {
"method": "GET",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/products_paginated",
"params": [
{
"name": "term",
"value": "abc123",
"type": "query",
"description": "The Seller Product Reference"
},
{
"name": "limit",
"value": "1",
"type": "query",
"description": "the size of the page"
},
{
"name": "page",
"value": "1",
"type": "query",
"description": "the index of the page"
}
],
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "get paginated products that match a search term, note: this method will not support any filtering."
},
{
"info": {
"name": "Paginated product search by term, filtering by provided options",
"type": "http"
},
"http": {
"method": "POST",
"url": "https://seller-api-sandbox.topi-sandbox.eu/v1/catalog/products_paginated",
"params": [
{
"name": "term",
"value": "abc123",
"type": "query",
"description": "The Seller Product Reference"
},
{
"name": "limit",
"value": "1",
"type": "query",
"description": "the size of the page"
},
{
"name": "page",
"value": "1",
"type": "query",
"description": "the index of the page"
}
],
"body": {
"type": "json",
"data": "{}"
},
"auth": {
"type": "oauth2",
"flow": "client_credentials",
"accessTokenUrl": "https://identity.topi.eu/oauth2/token",
"credentials": {
"clientId": "{{clientId}}",
"clientSecret": "{{clientSecret}}"
}
}
},
"docs": "get paginated products that match a search term and the provided filters"
}
]
}
],
"bundled": true
}