Products & Prices
Products are the catalog items you sell in your SMBcrm account. Each product can have one or more prices, which set how much it costs and how it’s billed, one-time or recurring.
Base URL: https://services.smbcrm.com · Version header: v3 ·
Scopes: products.readonly / products.write for products, products/prices.readonly /
products/prices.write for prices. See Scopes.
List products
Section titled “List products”locationId is required. Use limit and offset to page through results, or search to
filter by name.
curl "https://services.smbcrm.com/products/?locationId=<location_id>&limit=20&offset=0" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "products": [ { "_id": "<product_id>", "locationId": "<location_id>", "name": "1-Hour Consultation", "productType": "SERVICE", "description": "A single 60-minute strategy session.", "availableInStore": true, "createdAt": "2026-06-01T12:00:00.000Z" } ], "total": [{ "total": 1 }]}Retrieve a product
Section titled “Retrieve a product”curl "https://services.smbcrm.com/products/<product_id>?locationId=<location_id>" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "_id": "<product_id>", "locationId": "<location_id>", "name": "1-Hour Consultation", "productType": "SERVICE", "description": "A single 60-minute strategy session.", "availableInStore": true, "createdAt": "2026-06-01T12:00:00.000Z", "updatedAt": "2026-06-01T12:00:00.000Z"}Create a product
Section titled “Create a product”locationId, name, and productType (DIGITAL, PHYSICAL, SERVICE, or
PHYSICAL/DIGITAL) are required.
curl -X POST https://services.smbcrm.com/products/ \ -H "Authorization: Bearer <token>" \ -H "Version: v3" \ -H "Content-Type: application/json" \ -d '{ "locationId": "<location_id>", "name": "1-Hour Consultation", "productType": "SERVICE", "description": "A single 60-minute strategy session." }'{ "_id": "<product_id>", "locationId": "<location_id>", "name": "1-Hour Consultation", "productType": "SERVICE", "description": "A single 60-minute strategy session.", "availableInStore": false, "createdAt": "2026-07-08T15:04:00.000Z", "updatedAt": "2026-07-08T15:04:00.000Z"}Update & delete a product
Section titled “Update & delete a product”PUT replaces the product, so name, locationId, and productType are required even if
you’re only changing one field.
curl -X PUT https://services.smbcrm.com/products/<product_id> \ -H "Authorization: Bearer <token>" \ -H "Version: v3" \ -H "Content-Type: application/json" \ -d '{ "name": "60-Minute Consultation", "locationId": "<location_id>", "productType": "SERVICE", "description": "Updated description." }'curl -X DELETE "https://services.smbcrm.com/products/<product_id>?locationId=<location_id>" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"List prices
Section titled “List prices”locationId is required.
curl "https://services.smbcrm.com/products/<product_id>/price?locationId=<location_id>" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "prices": [ { "_id": "<price_id>", "product": "<product_id>", "name": "Standard rate", "type": "one_time", "amount": 149, "currency": "USD" } ], "total": 1}Retrieve a price
Section titled “Retrieve a price”curl "https://services.smbcrm.com/products/<product_id>/price/<price_id>?locationId=<location_id>" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"{ "_id": "<price_id>", "product": "<product_id>", "name": "Standard rate", "type": "one_time", "amount": 149, "currency": "USD"}Create a price
Section titled “Create a price”name, type (one_time or recurring), amount, currency, and locationId are
required. For a recurring price, also include a recurring object with interval (day,
week, month, or year) and intervalCount.
curl -X POST https://services.smbcrm.com/products/<product_id>/price \ -H "Authorization: Bearer <token>" \ -H "Version: v3" \ -H "Content-Type: application/json" \ -d '{ "name": "Standard rate", "type": "one_time", "amount": 149, "currency": "USD", "locationId": "<location_id>" }'{ "_id": "<price_id>", "product": "<product_id>", "locationId": "<location_id>", "name": "Standard rate", "type": "one_time", "amount": 149, "currency": "USD", "createdAt": "2026-07-08T15:04:00.000Z"}Update & delete a price
Section titled “Update & delete a price”PUT replaces the price, so name, type, currency, amount, and locationId are required
even if you’re only changing one field.
curl -X PUT https://services.smbcrm.com/products/<product_id>/price/<price_id> \ -H "Authorization: Bearer <token>" \ -H "Version: v3" \ -H "Content-Type: application/json" \ -d '{ "name": "Promo rate", "type": "one_time", "amount": 99, "currency": "USD", "locationId": "<location_id>" }'curl -X DELETE "https://services.smbcrm.com/products/<product_id>/price/<price_id>?locationId=<location_id>" \ -H "Authorization: Bearer <token>" \ -H "Version: v3"Related
Section titled “Related”- Payments — orders, transactions, subscriptions, and invoices built on top of your product catalog.
- Subscriptions — recurring billing tied to a price.
- Invoices & Estimates — add a price as a line item on an invoice or estimate.
- Scopes — request only the product/price scopes your integration needs.
