Expose a notification_link
Every create call carries a notification_link. It must be an HTTPS URL reachable from the public internet: localhost and IP-allowlisted staging hosts will silently fail. Point sandbox and production at separate endpoints so test traffic never touches live records.
Respond 2xx quickly
Acknowledge as soon as you have persisted the raw payload, then do the real work asynchronously. A slow handler looks like a failure and triggers redelivery; anything that is not a 2xx is treated as undelivered.
Process idempotently
The same notification can arrive more than once. Key your processing on request_id and the transaction status so a duplicate is a no-op instead of a second shipment or a double credit.
- Store a processed marker before doing side effects.
- Ignore transitions that move a transaction backwards.
- Handle unknown reason codes gracefully, new codes ship over time.
Retry expectations
slikair retries failed deliveries, so a short outage recovers on its own. Build for at-least-once delivery and out-of-order arrival rather than assuming a single clean callback.
Notifications are the source of truth
Redirect landing pages can be closed, bookmarked or replayed, and polling lags behind. Reconcile against the notification before releasing goods, crediting a balance or marking an order paid; use get-status only to fill gaps.