For developers & integratorsFür Entwickler & Integratoren
One call evaluates the whole basket: line items in, resolved discounts, totals and upsell recommendations out. That's the integration. The rest is detail — and the detail is documented. Ein Call bewertet den ganzen Warenkorb: Positionen rein — aufgelöste Rabatte, Summen und Upsell-Empfehlungen raus. Das ist die Integration. Der Rest ist Detail — und das Detail ist dokumentiert.
{
"items": [
{ "articleNumber": "CIGAR-PREM-01",
"quantity": 5, "unitPrice": 18.00 },
{ "articleNumber": "COCKTAIL-SPRING",
"quantity": 2, "unitPrice": 12.00 }
],
"customer": {
"customerGroup": "MILITARY",
"loyaltyCardNo": "L-829441"
},
"coupons": [ { "code": "SAVE10" } ],
"posGroupCode": "STORE-MUC-01",
"timestamp": "2026-06-06T18:30:00Z"
}
{
"minorVersion": 2,
"lineItems": [
{ "articleNumber": "CIGAR-PREM-01",
"quantity": { "value": 5, "unitOfMeasure": "PCE" },
"unitPrice": { "value": 18.00, "currency": "EUR" },
"lineTotal": { "value": 90.00, "currency": "EUR" },
"lineDiscount": { "value": 9.00, "currency": "EUR" },
"lineNet": { "value": 81.00, "currency": "EUR" },
"discounts": [ { "promotionName": "Cigar Tuesday", "discountType": "PERCENTAGE",
"totalDiscount": { "value": 9.00, "currency": "EUR" }, "triggeredByCoupon": false } ] }
/* …COCKTAIL-SPRING line omitted */
],
"totals": {
"subtotal": { "value": 114.00, "currency": "EUR" },
"discount": { "value": 15.40, "currency": "EUR" },
"grandTotal": { "value": 98.60, "currency": "EUR" }
},
"appliedCoupons": [ { "code": "SAVE10", "couponTypeName": "Spring Saver", "promotionIds": ["…"] } ],
"invalidCoupons": [ /* { code, reason } */ ],
"recommendations": [ /* { kind, code, defaultMessage, promotionName } */ ],
"nudges": [ {
"message": "1 more cocktail unlocks Happy Hour",
"potentialSaving": { "value": 2.00, "currency": "EUR" }
} ],
"meta": { "evaluatedAt": "…", "isSimulation": false, "source": "btp" }
}
Illustrative payload — abbreviated for the page. The complete wire contract lives in the OpenAPI spec. Illustratives Payload — für die Seite gekürzt. Der vollständige Wire-Contract steht in der OpenAPI-Spezifikation.
The surfacesDie Schnittstellen
AuthenticationAuthentifizierung
Backends and integrations authenticate with XSUAA-issued JWTs. Scopes separate read from write on the Public API.Backends und Integrationen authentifizieren sich mit XSUAA-JWTs. Scopes trennen Lesen von Schreiben auf der Public API.
POS terminals authenticate with mutual TLS client certificates — built for fleets of devices, not browser sessions.POS-Terminals authentifizieren sich mit Mutual-TLS-Client-Zertifikaten — gebaut für Geräteflotten, nicht für Browser-Sessions.
Admin, Promotion Manager, Budget Manager, POS Reader — every endpoint checks the role it needs and nothing more.Admin, Promotion Manager, Budget Manager, POS Reader — jeder Endpunkt prüft genau die Rolle, die er braucht. Nicht mehr.
The OpenAPI specification is generated from the service definitions and validated in CI — the spec can't drift from the implementation. Die OpenAPI-Spezifikation wird aus den Service-Definitionen generiert und in der CI validiert — die Spec kann nicht von der Implementierung abdriften.