Skip to main content

API purpose

In a direct Coupon service integration, the POS retrieves all available coupons for the customer and decides which ones should be applied. After the purchase is finalized, the POS notifies the Lobyco Coupon service about the redeemed coupons. This approach is best when the POS already has the discount/offer definitions and wants full control over what is applied and how the basket is calculated.
Not sure which approach to choose?See Applying discounts: two options for how this compares with the Discount Integration, where Lobyco decides which coupons to apply.
The Lobyco Promotion Portal Coupon APIs enable Point of Sale (POS) systems and e-commerce platforms to:
  • Retrieve active customer coupons during checkout
  • Apply and redeem coupons in real-time
  • Manage coupon reservations to prevent fraud
  • Handle coupon returns and refunds

Retrieving and applying coupons

During the checkout flow, all active customer coupons are retrieved, either at customer check-in and/or subtotal/total. Active means coupons that are within the validity period and have been activated or are already pre-activated. We do not recommend giving the user the option to choose which coupons should be used for this transaction at the POS. This prolongs the checkout total time and creates extra complexity for the POS integration. Optionally, the coupons could be reserved for some time (e.g. 1-5 minutes) to better handle fraud attempts of using the same coupon in parallel at different POSes. At total, the Lobyco coupons are stacked with the preexisting coupons as aligned during implementation. Lobyco coupons are applied in the order of their stacking priority and usage settings (see Stacking of coupons).

Flow

In this integration method, the POS receives all available coupons for the user and decides which ones should be applied. After the purchase is finalized, the POS should notify the Lobyco Coupon service about the redeemed coupons.
1

Get the list of available coupons

GET v2/customers/{customerId}/coupons with includeOfferData = true if the POS doesn’t have discount definitions; otherwise set it to false. Coupons will be returned only when customerId is provided, so anonymous purchases are not supported.
2

POS determines which coupons should be used

3

Optional: Reserve coupons

POST v1/customers/{customerId}/coupons/reserve - prevents using the same coupons on a different POS or different channels (e.g. e-commerce) at the same time.
4

Redeem coupons

POST v2/customers/{customerId}/coupons/redeem - confirm that the purchase was finished and coupons were used. Coupons can be also redeemed based on coupon ids sent along with transaction data. Include store id and total basket value for better reporting.
5

Optional: Cancel reservation

POST /v1/customers/{customerId}/coupons/cancel-reservation - notify that the purchase was canceled and coupons should be available again on other POSes.
The reserve / redeem / cancel-reservation mechanics used in steps 3-5 are shared with the Discount integration and are described in detail in Coupon Redemption at POS.
You still need to record the saleThis integration only handles coupon selection and redemption. To store the transaction and trigger bonus, digital receipts, and challenges, send the finalized sale to the Purchase API — see Transaction Data.
Last modified on August 12, 2026