Base URL and scope
Authentication
API-key routes requireAuthorization: Bearer YOUR_API_KEY and X-Device-ID. Card operations also require X-Employee-Token. Public card views and payment-session create/status routes are unauthenticated. Session info requires the API key and device id. See authentication.
Units and identifiers
Timestamps use ISO 8601 date-time strings. Card types are
blankCard, couponCard, loyaltyCard, pointsCard, and statusCard. Partner sessions use the shorter values coupon, loyalty, points, and status.
Success messages can contain $t(...) translation expressions. Use structured fields such as success and rewardEarned for application logic.
Errors
Handler errors include a machine-readableerrorCode:
error. Rate-limit responses may use a different body; handle the HTTP status first.
Rate limits
Limits are applied per IP and can stack. API-key routes share a limit of 300 requests per minute. Login and credential validation add a 20-per-minute limit. Session info adds a 60-per-minute limit. Public session creation allows 30 requests per minute; public session status allows 60. Public card and card-reward views each allow 10 requests per minute. Back off on429.
Card writes do not expose an idempotency-key parameter. After an uncertain network result, inspect card state or history before retrying a charge, stamp, or award.