Storyous Public APIs
  1. Loyalty API
Storyous Public APIs
  • Introduction
  • Merchants API
    • Get merchant and all its places
  • Menu API
    • Get a menu tree
    • Get time-based menu
    • Get Remaining amounts of time-based menu
  • Bills API
    • Get list of payment bills
    • Get detail of a payment bill
  • Delivery API
    • Create an order through delivery API
    • Get status of delivery order
  • Deskview API
    • Get list of desks
    • Get list of sections
    • Get desk view of a place
  • Features API
    • Get list of merchants/places with a feature
  • Hotel accounts integration API
    • Provide list of accounts
    • Write consumed items to hotel account
  • Stocks API
    • Get list of stocks
    • Get list of items
    • Get list of stock ups
    • Get detail of stock up
    • Create new stock up
    • Modify stock up
    • Delete stock up
    • Get list of stock takings
    • Get detail of stock taking
    • Create new stock taking
    • Modify stock taking
    • Delete stock taking
    • Get suppliers
  • Loyalty API
    • Introduction
    • Get benefit offer
      POST
    • Report offer validation error
      POST
    • Report benefit usage
      POST
    • Get loyalty benefit usages
      GET
    • Mark benefit usages as synchronized
      POST
  • DataSync
    • Webhook receiving endpoint
      • Receive new or updated records
    • Data domains
      • Stock management
        • Stocks domain
        • StockItemCategories domain
        • StockItems domain
        • StockMovements domain
      • Sales and costs
        • Bills domain
        • BillCosts domain
        • TerminalTransactions domain
        • PaymentTypes domain
        • Loyalty domain
      • Desks
        • DeskSections domain
        • Desks domain
      • Menu
        • ItemCategories domain
        • Items domain
        • PlaceITems domain
      • Merchants
        • Merchants domain
        • Places domain
        • Persons domain
  • Schemas
    • Schemas
      • Loyalty api
        • BalanceBenefitOfferRequest
        • ThirdPartyLoyaltyOfferRequest
        • LoyaltyOfferValidationError
        • LoyaltyBenefitUsagesPayload
        • BenefitInput
        • PaidItem
        • Applied Benefits
        • PaymentByBalance
        • UsedBalance
        • LoyaltyOfferResponse
        • MenuProductDefinition
        • UsedGeneralDiscount
      • Desk
      • Section
  1. Loyalty API

Report offer validation error

Testing
Webhook
POST
Purpose
This webhook is called by Storyous when a previously returned benefit offer cannot be validated and therefore cannot be applied.
It allows the partner to log or react to situations where the POS or Storyous rejected the offer for business or technical reasons.

When it happens
After the partner returns an offer via Get benefit offer, Storyous performs internal validation.
If the offer is invalid (e.g., inconsistent discounts, incorrect totals, missing fields), Storyous notifies the partner by calling this webhook.
The partner should treat this as an error report only; no retry or correction is expected for the same offer.

Request body
loyaltyOfferId — Identifier of the offer that failed validation (the same ID you provided in your Get benefit offer response).
message — A human-readable explanation of why the offer was rejected.
This message may contain technical validation details.
Partners should log this message for debugging and monitoring.

Response
Always respond with 200 OK to confirm receipt.
No retries are performed — Storyous considers the error delivered once a 200 OK is received.

Notes
This webhook is informational. You cannot fix the rejected offer retroactively.
Partners should use the information to adjust their offer-calculation logic and prevent similar issues in future calls.
Make sure to persist loyaltyOfferId in your system so you can match the error notification to the original request/response cycle.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/json

Examples

Responses

🟢200Success
application/json
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://your-api-server.com' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "loyaltyOfferId": "string",
    "message": "string"
}'
Response Response Example
{}
Previous
Get benefit offer
Next
Report benefit usage
Built with