TL;DR: If the iframe loads but events never arrive, it’s almost always a listener-timing or origin mismatch.
CHECKOUT_* events to your page’s origin if that origin is one you’ve registered — even if the iframe itself loaded successfully. A registered-but-mismatched origin, or a listener attached too late, both look the same: the iframe works, but your page never hears from it.
When this happens
- Your listener is attached after the iframe has already posted its first event (most commonly
CHECKOUT_READY). - The origin RadiumOne resolves for your page doesn’t match what you expect — on browsers that expose
window.location.ancestorOrigins(Chrome, Safari), that’s used directly; Firefox doesn’t expose it, so RadiumOne falls back to the origin derived from yoursuccess_urlinstead. - Your
success_urlorigin doesn’t match your embedding page’s real origin, so the Firefox fallback resolves to the wrong host and every message is silently dropped rather than sent to the wrong place.
What you see
What to do
1
Attach your listener before the iframe loads
Add the
message event listener before setting the iframe’s src, not after — a CHECKOUT_READY posted before your listener exists is simply missed, with no way to replay it.2
Check event.origin matches the checkout host
3
On Firefox, make sure success_url shares your embedding page's origin
Since Firefox doesn’t expose the real parent-frame origin, RadiumOne derives the target from
success_url instead. If that origin doesn’t match your actual embedding page, every event is dropped rather than misdirected — align success_url’s origin with your embedding page’s origin to fix it.4
Never fulfil on the event, once it does arrive
A received event is a UX signal only — confirm the outcome server-side regardless. See Verify the payment result.
Related
Embedded checkout events
The full event and payload reference.
Embed hosted checkout
The full embedded integration guide.
Fix embedded checkout that won't load
When the iframe itself doesn’t render.
Handle failures
All ten failure scenarios, symptom → page.