iOS Safari Memory Management Clearing Form Fields Before tokenization — Phone/Job Number/Signature Missing ~5% of Transactions
Background / What We're Building
We have a custom payment form for a moving company (Safebound Moving & Storage) built on Webflow, processed through Authorize.net Accept.js, with a Netlify serverless function handling the backend. The form collects:
Everything works correctly on desktop and Android. Payments always complete successfully on iOS Safari as well — the transaction itself is never the problem.
The Issue
On iOS Safari (iPhone/iPad), approximately 1–2 out of every 20–30 payments arrives with one or more of these three fields missing: phone number, job number, or signature. The payment clears, the customer is charged, but our records are incomplete.
The root cause appears to be iOS Safari's aggressive memory/state management when the Accept.js payment popup opens. The fields appear filled when the customer taps the pay button — iOS clears them after the popup launches, not before. So client-side validation passes, but by the time our serverless function reads the submitted data, those fields are empty.
What We've Already Tried
The Core Constraint
We need:
The hosted payment page solves the iOS issue but breaks variable amounts. Inline fields break payments on iOS entirely.
Has anyone solved this pattern — persisting custom form field data through the Accept.js popup flow on iOS Safari? Specifically: is there a way to pass additional metadata (phone, job number) server-side at the point of transaction, or store it in a way iOS Safari can't wipe? Would using localStorage or sessionStorage before the popup opens be more iOS-resistant than JS variables? Any guidance appreciated.
06-08-2026 11:28 AM