Skip to main content
POST
Calculate a promotion's discount for a cart

Authorizations

Authorization
string
header
required

API Key Authentication

Use your API key in the Authorization header:

Key Types:

Secret Keys (Server-Side Only):

  • Format: tybrite_sk_live_* (production) or tybrite_sk_test_* (sandbox)
  • Full read/write access to all endpoints
  • ⚠️ NEVER expose in client-side code or public repositories
  • Required for: write operations, authentication, payment verification, AI recommendations

Publishable Keys (Client-Safe):

  • Format: tybrite_pk_live_* (production) or tybrite_pk_test_* (sandbox)
  • Read-only access (GET requests only, plus POST semantic search)
  • ✅ Safe for client-side JavaScript, mobile apps, and public code
  • Allowed for: browsing products, search, CMS content, pricing queries

Endpoint-Specific Requirements:

  • Authentication endpoints (/v1/auth/*): Secret key required
  • Payment verification (POST /v1/payments/verify): Secret key required
  • AI Recommendations (POST /v1/recommendations): Secret key required
  • Semantic Search (POST /v1/search): Both key types allowed (read-only operation)
  • All write operations: Secret key required
  • All read operations: Both key types allowed

Using a publishable key for restricted operations returns 403 Forbidden.

Path Parameters

id
string<uuid>
required

Query Parameters

store_id
string<uuid>

The merchant whose promotion to calculate against. Required for marketplace storefronts — pass the merchant_store_id you received with the promotion. Ignored for single-store keys.

Body

application/json
cart
object[]
required

The cart lines to calculate the discount against. Also accepted under the name items, which behaves identically; send whichever matches your storefront's own cart shape, and cart when both are present.

items
object[]

Alias of cart. Send one or the other, not both.

Response

Success

The result of calculating a single promotion against a cart. The discount is computed server-side so it always matches the merchant's own calculation — you never reimplement the math.

promotion_id
string<uuid>

The promotion that was evaluated.

type
enum<string>

How the promotion works. discount (percentage) and fixed are cart-wide discounts; bundle and bogo are computed from the products in the cart.

Available options:
discount,
fixed,
bundle,
bogo
eligible
boolean

Whether the cart qualifies for the promotion.

discount
number

The discount amount to subtract from the cart total. 0 when the cart is not eligible.

reason
string | null

When eligible is false, a short explanation of why the cart does not qualify (for example: minimum purchase not met, the promotion is outside its active date/time window, or required products are absent). null when eligible.