Overview
Embedded Components lets you render the SportsPay payment fragment inside your own checkout flow instead of sending the customer away to a full-page redirect. You get the same PCI-safe, server-hosted card capture, delivered as a fragment that visually fits inside your registration platform.
SportsPay still hosts the payment fragment and your platform still never touches card data — you keep the same minimal PCI scope as Customized Checkout and add a smoother, in-place checkout experience.
Under the hood, Embedded Components uses the same StartSession / GetResult / Ack messages as Customized Checkout. The difference is how the customer reaches the payment form: mount it into a <div> on your page using the SportsPay JavaScript Library (coming soon), or embed the returned URL into an <iframe>. Either way, you pass an EMBED= flag on StartSession to tell the gateway which visual components to render. The fragment uses the same brand theming as Customized Checkout — your colours, gradients, and logo carry through.
When to use Embedded Components
Use Embedded Components when you want the payment fragment to appear as part of your existing checkout page — for example, in a modal, a side panel, or a step in a multi-step wizard — rather than redirecting the customer away to a standalone SportsPay page. The fragment seamlessly handles advanced functionality — schedules, CustomerPay, Platform Fees, wallets, and retries — with no additional integration work on your side. Future feature additions are handled inside the fragment too, so your integration doesn't need to change as the platform evolves.
Use Customized Checkout instead when a full-page redirect is acceptable or when you don't need to control the surrounding page chrome.
Choosing between Customized Checkout and Embedded Components
Both methods use the same StartSession, GetResult, and Ack calls — the difference is entirely in how the customer's browser reaches the payment page and how the result returns to your application. Pick one per checkout flow; they are not interchangeable on a per-call basis.
| Customized Checkout | Embedded Components | |
|---|---|---|
| Customer experience | Full-page redirect to SportsPay | Payment form appears inside your page |
| Browser navigation | Top-level redirect | Iframe |
| Return page | Runs in top-level window | Runs inside iframe, posts result to parent |
| Front-end code | Redirect + return handler | JS library mount or iframe embed + parent message handler |
| Layout control | Gateway controls the full page | You control the surrounding layout; EMBED= flags strip chrome |
Visual Components and the EMBED= flag
EMBED= flagThe EMBED= parameter on StartSession is a string of one or more letters. Each letter switches off one visual component of the hosted page so that the fragment blends into your own layout.
| Flag | Component removed |
|---|---|
W | Wrapper container (background and centering) |
C | Card container |
H | Header section |
I | Info section |
A | Amount / schedule block |
B | Pay / Cancel buttons (reserved — see Coming soon note below) |
S | SportsPay branding |
P | Partner area |
Combine letters in any order. For example, EMBED=WCSP strips the wrapper, card, branding, and partner area while leaving the header, info, amount, and buttons in place.
Driving the form from your own buttons (EMBED=B)
EMBED=B)Coming soon. A JavaScript bridge that lets your parent checkout page drive the embedded form from its own Pay, Cancel, and language buttons is on the roadmap. Until it ships, leave the built-in buttons in place — omit the
Bflag fromEMBED=— so the customer submits and cancels from inside the embedded fragment. Once the bridge is released, you'll be able to render your own buttons in the surrounding layout and forward their clicks into the iframe.
StartSession, GetResult, and Ack
StartSession, GetResult, and AckEmbedded Components uses the same three gateway messages as Customized Checkout:
StartSession— creates the payment session, returns aSECUREIDand aURLyou mount into a<div>via the JS library or load directly into an iframe. PassEMBED=to choose which components render.GetResult— called from your return URL (inside the iframe) after the customer completes payment. Returns the result of the transaction.Ack— confirms and finalizes the transaction. Can be combined withGetResultby passingACK=Y, or sent separately.
Each request includes the required fields that allow the gateway to validate the request and credit the correct merchant account.
Note: CustomerPay is supported with no additional implementation. The gateway determines whether a merchant is enabled for CustomerPay based on the
TERMID, the hosted page auto-calculatesUSERFEE, and the final amount is returned in theGetResultresponse.
Payment Sequence
flowchart TD
A[Customer reaches checkout] --> B[Registration platform sends StartSession with EMBED flags]
B --> C[Gateway returns SECUREID + Payment URL]
C --> D[Registration platform renders URL in an iframe on the checkout page]
D --> E[Customer enters card details in the embedded fragment]
E --> F[Payment processed by gateway]
F --> G[Iframe redirected to Success or Failure URL]
G --> H[Return page calls GetResult server-side]
H --> I[Return page posts result to parent window]
I --> J[Parent page closes the iframe and shows the result]
J --> K{Ack required?}
K -- Yes --> L[Registration platform sends Ack]
L --> M[Gateway confirms and closes session]
K -- No --> N[Session ends]
M --> O[Registration platform continues user flow]
N --> OUpdated about 23 hours ago
