Skip to content

Digital Wallets

Integrate fast, one-touch digital wallet payments into your applications. Digital wallets provide frictionless checkout, enhanced security with device-level biometrics, and reduced cart abandonment.


Supported Wallets & Platforms


Platform Matrix

Platform Apple Pay Google Pay
Web Browsers Guide (Safari) Guide (Chrome, Edge, Firefox, Safari)
Native iOS Guide (PassKit) -
Native Android - Guide (Play Services)
Cross-Platform Flutter Guide (pay plugin) Guide (pay plugin)

Duplicate references and retries

The following contract applies to SaleWithApplePay and SaleWithGooglePay. Do not assume that another sale endpoint has the same retry behavior.

  • Send a non-empty UserTransactionNumber of at most 50 characters. Its uniqueness scope is the merchant (mid), shared across endpoints, applications using that merchant, and test/live modes. Use distinct references for separate payment attempts, including sandbox tests.
  • Reusing a previously reserved reference returns ResponseCode: 5. The API does not replay the original payment response, even when the repeated payload is identical. RC 5 alone does not establish that the first payment succeeded; invalid references can also produce that code.
  • Once reserved, the reference remains used even if the payment is declined or processing fails. A failure before reservation does not necessarily consume it. The reference is not automatically released for another attempt.
  • A timeout or lost response leaves the payment outcome unknown. Keep the original reference and reconcile the original attempt through transaction records, your webhook, or support before deciding whether to create a new payment attempt. Do not automatically switch to a new reference and charge again.
  • Prevent concurrent checkout submissions in your application and persist the reference before sending the request. Duplicate-reference rejection is not a response-replay service or an end-to-end exactly-once payment guarantee.
  • Correlate the synchronous response and webhook for the same payment; do not credit the order twice. Webhook delivery deduplication is separate from request-reference handling. See Receiving Events.

In these wallet guides, duplicate protection means rejection of a reserved reference, not a promise that retrying the request returns the previous result.