C2C Stream API

A Stream API allows you to track emerging events from your B&W coffee machine in real time, such as the end of a brewing process or a malfunction. This data can be used to react quickly to problems and take immediate action. In addition, you can use the Stream API to react to specific events on the coffee machine. With the Stream API, you can also facilitate the connection of your coffee machine to other devices and systems, such as maintenance or ordering systems, and thus increase the efficiency of your sales and maintenance processes.

You can find the credentials here:

Returns event and product data in a stream.

{ 
"Type": "Event",
"MessageId": "694de446-0720-4504-9fc8-ab9927c9a586",
"Serial": "200000000",
"DateTimeLocal": "2025-12-12T15:45:17",
"DateTimeUtc": "2025-12-12T14:45:17.000Z",
"SoftwareVersion": "1.47.0",
"Configuration": "BW4 CTM2 S P",
"Model": "BW4",
"Number": 3,
"EventDescription": "BoilerAvailable",
"SeverityId": 1,
"Severity": "Info",
"Category": "Machine Issue",
"InternalText": "",
"CustomerName": "Thermoplan AG",
"TenantName": "Thermoplan"
}

Event

{
 "Type": "Product",
"MessageId": "59a274e8-3522-46bb-8718-9b140f9fd116",
"Serial": "310000000",
"DateTimeLocal": "2025-12-12T15:41:39",
"DateTimeUtc": "2025-12-12T14:41:39.000Z",
"SoftwareVersion": "1.47.0",
"Configuration": "BW4 CTM2 S P",
"Model": "BW4",
"CustomerName": "Thermoplan AG",
"TenantName": "Thermoplan",
"ProductName": "Latte (Grinder 1, Milk 1, Medium)",
"ProductId": "Latte_1",
"ArticleNo": 14.025,
"BeanName": "Gold Coast",
"Price": 8.348,
"MilkNames": [
"cow milk"
],
"RecipeParamAmountWaterAmount": 0.0,
"RecipeParamAmountTemperature": 0.0,
"RecipeParamCoffeeGrinder1Amount": 12,
"RecipeParamCoffeeGrinder2Amount": 0,
"RecipeParamCoffeeTotalAmount": 59.166,
"RecipeParamCoffeePreBrew": 0.0,
"RecipeParamCoffeeRelaxTime": 0.0,
"RecipeParamCoffeePressFactor": 1.467,
"RecipeParamCoffeeNumBrewCycles": 1,
"RecipeParamCoffeeUseForIsq": true,
"RecipeParamCoffeeIsqExtrTime": 26.014,
"RecipeParamCoffeeIsqPuckThickn": 16.789,
"RecipeParamCoffeeMinValidExtrTime": 13.854,
"RecipeParamCoffeeMaxValidExtrTime": 39.305,
"RecipeParamFlavor1AmountSeconds": 0.0,
"RecipeParamFlavor2AmountSeconds": 0.0,
"RecipeParamFlavor3AmountSeconds": 0.0,
"RecipeParamFlavor4AmountSeconds": null,
"RecipeParamMilkParts": [
{
"AirAmount": 0.0,
"Duration": 20.0,
"Source": 0.0,
"Temperature": 70.0
}
],
"RecipeParamPowderPowderAmountSeconds": 0.0,
"RecipeParamPowderPowderIntensity": 0.0,
"RecipeParamSteamBw4SteamFoeamQuality": 0.0,
"RecipeParamSteamBw4TargetTemperatureDegreesCelsius": 0.0,
"Success": true,
"ResultCoffeeErrorNo": 0,
"ResultCoffeeGrinder1Duration": 0.291,
"ResultCoffeeGrinder2Duration": 0.0,
"ResultCoffeeWaterAmount": 74.366,
"ResultCoffeeNumBrewCycles": 1,
"ResultAmountWaterAmount": 0.0,
"ResultMilkTemperatureAtProductStart": 15.688,
"ResultMilkParts": [
{
"Duration": 18.521
}
],
"ResultSteamBw4Success": false,
"ResultSteamBw4ErrorNo": 0,
"ResultStreamBw4SteamDuration": 0.0,
"ResultSteamBw4StartTemperature": 0.0,
"ResultSteamBw4EndTemperature": 0.0,
"ResultCoffeeBrewCycleExtrTime": [
14.8,
14.2,
13.99,
14,
14.01
],
"ResultCoffeeBrewCyclePuckThicknAfterPr": [
11.097,
11.08,
11.05,
11,
11.089
],
"ResultCoffeeBrewCyclePuckThicknAfterSq": [
11.717,
11.521,
11.684,
11,
11.801
]
}

Product

Parameters - Master Data

MessageId

MessageId refers to the unique identifier assigned to each message, which is used to distinguish it from all other messages.

Serial

The serial refers to the machine serial number used to uniquely identify the machine.

DateTimeLocal

DateTimeLocal refers to the local time at a specific location or time zone used to synchronise events or activities within that location or time zone.

DateTimeUtc

DateTimeUtc refers to Coordinated Universal Time (UTC), which is used as a reference time standard for synchronising events or activities between different locations or time zones.

SoftwareVersion

The software version refers to the currently installed version of the device software.

Configuration

Machine Configuration covers the assembly and configuration of the various components and options on the coffee machine.

Model

The model refers to a specific machine model within the series of coffee machines.

CustomerName

Name of the customer as a unique identifier assigned by the system. Based on the name of the customer who requested access to the Streaming API.

TenantName

The name of the tenant which the coffee machine is assigned when it generated the event or product message.

Parameters - Product

ProductName

ProductName refers to the customer-created name for a particular product that is used to identify and distinguish that product from other products.

ProductId

ProductId is a identifier that distinguishes the product from others.

ArticleNumber

ArticleNumber is a numerical code that can be added to a product and, when used in conjunction with a payment system, serves to identify the product for tracking and purchase purposes.

BeanName

BeanName refers to the type of coffee beans used for the product, providing a specific name that identifies the bean variety whenever the product contains coffee.

Price

The price of the product that is associated with the coffee machine.

MilkNames

MilkNames refers to the names of the milk types used in the product, provided whenever the product contains milk.

RecipeParamAmountWaterAmount

RecipeParamAmountWaterAmount defines the recipe water amount, measured in milliliters, for the water that does not pass through the brew chamber. This water can be added in addition to the brewing process (e.g. water part for amerciano), but for products such as tea, it may represent the entire water amount used for the product.

RecipeParamAmountTemperature

RecipeParamParamAmountTemperature defines the recipe temperature, measured in degrees Celsius, for the water that does not pass through the brew chamber. This water can be added in addition to the brewing process, but for products such as tea, it may represent the full water used for preparation.

RecipeParamCoffeeGrinder1Amount

RecipeParamGrinder1Amount refers to the amount of coffee, measured in grams, defined in the recipe for grinder 1. This value specifies how much coffee the machine is instructed to use from grinder 1 during the brewing process.

RecipeParamCoffeeGrinder2Amount

RecipeParamGrinder2Amount refers to the amount of coffee, measured in grams, defined in the recipe for grinder 2. This value specifies how much coffee the machine is instructed to use from grinder 2 during the brewing process.

RecipeParamCoffeeTotalAmount

RecipeParamCoffeeTotalAmount defines the recipe water brew amount per brew cycle, measured in milliliters, for the coffee part.

RecipeParamCoffeePreBrew

RecipeParamCoffeePreBrew defines the pre-brew water amount, measured in milliliters, that is specified in the recipe for the coffee part. This value indicates how much water is added during the pre-brew phase before the main extraction begins.

RecipeParamCoffeeRelaxTime

RecipeParamCoffeeRelaxTime defines the relax time, measured in seconds.

RecipeParamCoffeePressFactor

RecipeParamCoffeePressFactor specifies the press factor of the brewing chamber, indicating how strongly the coffee grounds are compressed before brewing, expressed as a percentage. This value represents the tamp pressure defined in the recipe.

RecipeParamCoffeeNumBrewCycles

RecipeParamCoffeeNumBrewCycles specifies in the recipe the number of brew cycles to be performed for the product. This value defines how many individual brewing steps are required according to the recipe.

RecipeParamCoffeeUseForIsq

RecipeParamCoffeeUseForIsq indicates whether the product is linked to an ISQ recipe, meaning that its coffee parameters are optimized by  Intelligent Shot Quality (ISQ) System.

RecipeParamCoffeeIsqExtrTime

RecipeParamCoffeeIsqExtrTime defines the target extraction time, measured in seconds, that is used by the Intelligent Shot Quality (ISQ) system to evaluate and optimize the coffee shot. This value represents the recipe’s reference extraction duration for consistent shot quality.

RecipeParamCoffeeIsqPuckThickn

Defines the target puck thickness, measured in millimeters, that is used by the Intelligent Shot Quality (ISQ) system to assess and adjust the brewing process. This value represents the recipe’s reference puck thickness for maintaining consistent shot quality. 

RecipeParamCoffeeMinValidExtrTime

RecipeParamCoffeeMinValidExtrTime defines the minimum valid extraction time, measured in seconds, that is allowed for the product according to the recipe. This value specifies the lower limit used to evaluate whether an extraction falls within the acceptable time range.

RecipeParamCoffeeMaxValidExtrTime

RecipeParamCoffeeMaxValidExtrTime defines the maximum valid extraction time, measured in seconds, that is allowed for the product according to the recipe. This value specifies the upper limit used to evaluate whether an extraction falls within the acceptable time range.

RecipeParamFlavor1AmountSeconds

RecipeParamFlavor1AmountSeconds value indicates the flavor 1 dispensing time, measured in seconds.

RecipeParamFlavor2AmountSeconds

RecipeParamFlavor2AmountSeconds value indicates the flavor 2 dispensing time, measured in seconds.

RecipeParamFlavor3AmountSeconds

RecipeParamFlavor3AmountSeconds value indicates the flavor 3 dispensing time, measured in seconds.

RecipeParamFlavor4AmountSeconds

RecipeParamFlavor4AmountSeconds value indicates the flavor 4 dispensing time, measured in seconds.

RecipeParamMilkParts

This is a dynamic variable which includes the milk air amount, duration, source and temperature. Air Amount is he amount of air injected in percent 0 to 1 (0 to 100%). Duration is the duration of the process in seconds. The source describes the milk source (type) used in the process. Temperature defines the milk temperature in  Celsius. The phases can be named "parts" as well, which is a more common used word. A maximum of two milk parts can be defined. All values are target values, not actual values.

RecipeParamPowderPowderAmountSeconds

RecipeParamPowderAmountSeconds defines the powder dispensing amount, measured in seconds.

RecipeParamPowderPowderIntensity

This value indicates the powder target intensity in percent 0..1 (0..100%)

RecipeParamSteamBw4SteamFoamQuality

RecipeParamSteamBw4SteamFoamQuality defines the foam consistency factor for the steam process, ranging from wet (0.2) to dry (0.7).

RecipeParamSteamBw4TargetTemperatureDegreesCelsius

RecipeParamSteamBw4TargetTemperatureDegreesCelsius defines the desired target temperature of the product, measured in degrees Celsius, for a steam product.

Success

Success indicates whether the product preparation was successfully completed or aborted. This value helps determine the final outcome of the preparation process.

ResultCoffeeErrorNo

ResultCoffeeErrorNo indicates which specific event or error caused a product to be unsuccessful.

ResultCoffeeGrinder1Duration

ResultCoffeeGrinder1Duration indicates the time, measured in seconds, that grinder 1 was actively grinding.

ResultCoffeeGrinder2Duration

ResultCoffeeGrinder2Duration indicates the time, measured in seconds, that grinder 2 was actively grinding.

ResultCoffeeWaterAmount

ResultCoffeeWaterAmount indicates the actual total amount of water used for the coffee part, measured in milliliters. This value reflects what was really dispensed by the machine during all brew cycles. It can be compared with the theoretical value, which is approximately the product of  Number of brew cycles × Recipe: Coffee water amount per brew cycle (ml).

ResultCoffeeNumBrewCycles

ResultCoffeNumBrewCycles indicates how many brews have been performed for the product.

ResultCoffeeBrewCycleExtrTime

The ResultCoffeeBrewCycleExtrTime indicates how long the coffee extraction process took, providing information on the duration of the brewing cycle. A product may have multiple brewing cycles and therefore multiple extraction times. These values are returned as an array

ResultCoffeeBrewCyclePuckThicknAfterPr

The ResultCoffeeBrewCyclePuckThicknAfterPr indicates the thickness in millimeters of the coffee puck after dry pressing and provides an approximation of how much coffee grounds are present in the chamber. A product may have multiple brewing cycles and therefore multiple values for puck thickness after press. These values are returned as an array

ResultCoffeeBrewCyclePuckThicknAfterSq

The ResultCoffeeBrewCyclePuckThicknAfterSq indicates the thickness in millimeters of the coffee puck after the product is dispensed, providing an approximation of how much coffee grounds were used for that particular product. A product may have multiple brewing cycles and therefore multiple values for puck thickness after squeezing. These values are returned as an array

ResultAmountWaterAmount

Is the actual water amount in milliliters, used for the product

ResultMilkTemperatureAtProductStart

Milk temperature at the moment the product process begins

ResultMilkParts

Indicates the duration of time (in seconds) it takes to dispense the set amount of milk and milk foam.

ResultSteamBw4Success

Indicates whether steaming was successfully completed

ResultSteamBw4ErrorNo

Indicates defined steaming error events, following the event numbers in the list of events

ResultSteamBw4SteamDuration

Indicates the duration of the steaming process (in seconds)

ResultSteamBw4StartTemperature

Indicates the measured temperature of the steam lance (steam wand) at the moment the steam process begins

ResultSteamBw4EndTemperature

Indicates the measured temperature of the steam lance (steam wand) at the moment the steam process ends