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.
- 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 withincludeOfferData = 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