Skip to main content
Use this checklist for every integration, even when the first test looked simple. Loyalty errors are customer-visible and often occur during a busy sale.

Credentials

  • A new live key exists for this integration only.
  • The key has the minimum scopes required.
  • The secret is stored server-side and is absent from source control and logs.
  • The owner and rotation process are documented.
  • The test key is not used in production.

Customer and card mapping

  • Upstream customer references are stable and namespaced.
  • Every store or programme maps to an explicit Perkstar card_id when several cards exist.
  • Perkstar locationId mappings have been checked for every venue.
  • Current opaque and legacy wallet barcode values are passed through unchanged.
  • Consent flags are copied only from an auditable consent source.

Transactions

  • Every POST has a stable Idempotency-Key.
  • POS awards include a permanent external_transaction_id.
  • A simulated timeout followed by a retry creates one result.
  • A duplicate upstream webhook creates one result.
  • Full refunds reverse the original transaction.
  • Partial-refund behaviour has been agreed with the business.
  • The card type rejects incompatible transaction types cleanly.

Failure handling

  • 429 respects Retry-After.
  • Network errors and retryable 5xx responses enter a durable retry queue.
  • Non-retryable 4xx failures are visible to an operator.
  • Offline operations retain their original stable IDs.
  • Reconciliation can detect an order with no matching Perkstar transaction.
  • Logs retain X-Request-Id but never API keys or full personal payloads.

Webhooks

  • Signatures are verified against the raw body.
  • Event IDs are deduplicated in persistent storage.
  • Test events are separated using testMode.
  • Events can arrive more than once or out of order.
  • The receiver acknowledges only after durable storage or processing.

Launch

  1. Process one low-risk live transaction.
  2. Confirm the Perkstar ledger and wallet update.
  3. Reverse it and confirm both systems.
  4. Enable one location or small traffic group.
  5. Monitor errors, retries, and reconciliation before widening traffic.