/channels
List sales channels
Returns the sales channels the tenant sells through — webshops, B2B portals, marketplaces and apps — with the commercial terms that apply in each: currency, default warehouse, price list and order type.
Show the full description
Sorted by channel code. Filters combine with AND. Enum filters are matched case-insensitively and an unknown value returns 400. A channel carries no presentation — branding, menus and content pages are not part of this contract. What an item looks like in a channel is under GET /preview/channels/{channelCode}/items.
Query parameters
| Field | Type | Description |
|---|---|---|
search
|
string | Matches channel code and name, case-insensitively and on partial words. |
isActive
|
boolean | Filters on whether the channel is active. |
type
|
enum |
Filters on the kind of channel.
B2C
B2B
Marketplace
App
|
page
|
integer | Page to return, 1-based. Default 1. |
pageSize
|
integer | Number of records per page. Default 50, max 200. |
Responses
PagedResult_PublicChannelResponse
Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated
| Field | Type | Description |
|---|---|---|
allowGuestPrices
Required
|
boolean | Whether prices are shown to visitors who are not logged in. |
channelCode
Required
|
string · nullable | Stable channel code, e.g. `webshop-se`. The business key used in URLs. |
createdDate
Required
|
string(date-time) | When the channel was created (UTC). |
currencyCode
|
string · nullable | Default currency as ISO 4217, e.g. `SEK`. |
defaultLanguage
Required
|
string · nullable | Default language as ISO 639-1, e.g. `sv`. Drives order confirmations and documents. |
defaultPriceListCode
|
string · nullable | Code of the price list applied in this channel, when one is configured. |
defaultWarehouseCode
|
string · nullable | Code of the warehouse orders in this channel are fulfilled from by default. |
isActive
Required
|
boolean | Whether the channel is active and may be sold through. |
links
|
Links | Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at. |
modifiedDate
|
string(date-time) · nullable | When the channel was last changed (UTC), or null if never changed since creation. |
name
Required
|
string · nullable | Display name, e.g. "Webshop Sverige". |
orderTypeCode
|
string · nullable | Code of the order type orders in this channel are created with. |
type
Required
|
enum |
Sales channel kinds exposed via the Public API.
Mirrors `Domain.SalesOrders.SalesChannelType` name-for-name and value-for-value so the
query projections can cast directly — a cast is translatable to SQL where a switch over a helper
method is not. `PublicChannelEnumParityTests` fails the build if the two ever drift apart,
which is what stops a new domain value from silently serialising as a bare number.
B2C
B2B
Marketplace
App
|
ProblemDetails
The type filter got a value outside its list.
| Field | Type |
|---|---|
detail
|
string · nullable |
instance
|
string · nullable |
status
|
integer · nullable |
title
|
string · nullable |
type
|
string · nullable |
Standard errors:
401
403
Errors
Examples
curl "https://api.fluit.cloud/preview/channels"
{
"hasNextPage": true,
"hasPreviousPage": true,
"items": [
{
"allowGuestPrices": true,
"channelCode": "STD",
"createdDate": "2026-06-11T09:24:13.418",
"currencyCode": "SEK",
"defaultLanguage": "string",
"defaultPriceListCode": "STD",
"defaultWarehouseCode": "MAIN",
"isActive": true,
"links": {
"self": "string"
},
"modifiedDate": "2026-06-11T09:24:13.418",
"name": "Acme AB",
"orderTypeCode": "STD",
"type": "B2C"
}
],
"page": 1,
"pageSize": 50,
"totalCount": 137,
"totalPages": 3
}
Base URL https://api.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.