Introduction
Connect your systems to scango.ch: products, orders, suppliers, categories, stores and identity logs over one REST API.
The scango.ch Customer API lets your ERP, accounting or inventory software read and change your organization’s data: products, orders, suppliers, categories, stores and identity logs.
Base URL
https://dashboard.scango.ch/api/v1
Authentication
Create an API key in the dashboard under Settings → Organization → API Keys (Admin role required) and send it with every request:
Authorization: Bearer <api-key>
| Key type | Allows |
|---|---|
| Read | Every GET request |
| Write | Everything Read allows, plus creating, updating and deleting products and product images, categories, suppliers, stores and blocked identities |
Every authentication or permission problem returns 403: a missing, unknown or
inactive key, or a Read key on a write operation.
Conventions
- Money is in integer cents (Rappen):
120is CHF 1.20. - Dates in query parameters are UTC ISO-8601 with a
Zsuffix, e.g.2024-01-01T00:00:00.000Z. Offsets such as+02:00are rejected. - Request bodies are JSON. Updates use
POSTwith a partial body. - Responses of list endpoints are
{ data, meta }; single items are{ data }; writes return{ success: true }(and the newidon create). - Deleting a product, category, supplier or store is a soft delete: the item
disappears from lists, but
GETby id still returns it withdeleted: true. - Errors are JSON:
{ statusCode, message, timestamp, path }. List filters that fail validation return{ error: { formErrors, fieldErrors } }.
Pagination
limit sets the page size: default 100, at most 5000.
| Endpoint | Paging |
|---|---|
| Products, orders, identity logs, blocked identities | Pass meta.nextCursor as cursor until nextCursor is absent |
Product search (q) |
offset, at most 250 per page |
| Categories, suppliers, stores | Not paginated: one response with up to limit items |
Soft-deleted items are filtered out after reading, so a page can be shorter than
limit while more pages exist. Rely on nextCursor, not on returned < limit.
Orders
start and end are required and inclusive; paymentState is optional. Orders
come newest first. Deleted orders are left out unless you pass
includeDeleted=true.
There are no webhooks: poll for new orders, for example every few minutes with a window that overlaps the previous one.
Product images
Set imageUrl when creating or updating a product, or upload a file with
POST /products/{productId}/image (multipart field file, max. 10 MiB). Remove
it with DELETE /products/{productId}/image.
Next steps
Quickstart
Make your first request in a few minutes.
Products
List, search and maintain your catalog.
Orders
Export sales into your accounting.
OpenAPI spec
Generate a client or import the API into Postman.
All endpoints at a glance: API reference.
Questions? Write to support@scango.ch.