Designing resends, ordering, and idempotency
What counts as success, the retry rules (1 min, 10 min, 1 h, four attempts), ordering and lost events, and dropping duplicates by X-RR-Delivery.
Error codes and retry guidance
The status codes and error body shapes the ReceiptRoller API returns, token endpoint errors, and which failures to retry and how.
Rate limiting and throttling
Which ReceiptRoller API endpoints limit requests and by how much, what a 429 looks like, and how to pace and retry your client's calls.
Webhook is not being delivered
When a webhook does not arrive: narrow it down with a test send and the delivery log, then check the active flag, subscribed events, connection and signature.
Receive new sales by webhook and post them to Slack
Register a receipt.created webhook, verify its signature and drop duplicates in Node.js, and post each new sale to a Slack channel.
Monitoring and handling failures
Read a webhook's active flag, last delivery time and delivery log, notice when it has switched itself off, recover, and fill the gap from the API.
Signature verification and security
How X-RR-Signature is computed, verification code for Node.js, Python and C#, guarding against replays, and how to replace a webhook secret.
Webhook overview
Which webhook events are actually sent, what the request and signature headers look like, how duplicates, order and lost events behave, and when to use the API.
Obtaining and refreshing an access token
How to obtain and refresh access tokens (8 hours) and refresh tokens (30 days), how refresh tokens rotate, and when tokens stop working.
How to register a Webhook
Register a webhook in the developer portal or through the API, choose events that are actually sent, run a test send, and change, pause or delete a webhook.
Sync your product catalogue with ReceiptRoller
Build a Node.js script that reads a local CSV or JSON file, matches products by SKU, and creates or patches them through the Products API.
Using the Products API
How to list, read, create, patch, replace, soft-delete and upload cover images for products with the Products API (/api/v1/products), with exact field names.
Your first API call: from app registration to listing transactions
Get a token with the OAuth authorization code flow and PKCE, confirm the business account, list its transactions, and refresh the token.