API
Idempotency
Use idempotency to safely retry requests without creating duplicate side effects where supported.
Native Apple Pay authorize
POST /v1/sdk/apple-pay/payments/{track_id}/authorize requires an Idempotency-Key header.
- Same key + same body → VenPays returns the original result
- Same key + different body → conflict error
Generate a unique key per logical authorize attempt from your client.
Other merchant endpoints
For initiate, refund, and similar merchant endpoints, treat each successful initiation as a new payment. If your HTTP client times out, reconcile by track_id (when you have one) using status APIs and webhooks rather than blindly retrying initiation.
Webhooks
Each webhook delivery includes a unique event id. Process events idempotently so retries do not apply the same business action twice.