Skip to main content
Use this page when you are replacing a legacy browser card flow.

What changes

  • raw browser tokenization flow -> hosted Payment Element field
  • legacy browser-side card orchestration -> elements.submit(...)
  • custom challenge plumbing -> card authentication handled inside elements.submit(...)
  • manual retry after an interrupted challenge -> elements.resume({ transactionId })
  • unstable browser contract -> stable backend POST /v2/transactions

Keep stable during migration

  • keep your backend transaction route stable
  • keep external_ref, transaction ID, and requestId persistence unchanged
  • keep webhook and reconciliation logic unchanged
  • migrate one checkout surface at a time

Backend contract example