Skip to main content
Checkout gets you paid without building a payment page. Your server describes the purchase, and Ionic hosts the payment page: the card form, Apple Pay, and decline handling that lets the buyer try another card. Card details stay off your servers, and one webhook tells you when to fulfill. Hosted Checkout, embedded checkout, and payment links run the same hosted payment page, and each creates a checkout session.

Hosted Checkout

Create a session from your server and redirect the buyer to its URL.

Embedded checkout

Create the session in embedded mode and mount it inside your page, so buyers stay on your site.

Payment links

Publish a reusable URL that opens a fresh checkout for every buyer.

When to use Checkout

Start with Hosted Checkout. It is the smallest integration, and embedded checkout uses the same session fields, webhooks, and fulfillment when you want buyers to stay on your site.

What you can do

Start here

Quickstart

Create a hosted checkout session and complete a test payment.

Accept a payment with Hosted Checkout

Create a session, redirect the buyer, and fulfill from the webhook.

Availability

  • Apple Pay is enabled per account. Hosted Checkout and payment links show it with no domain setup. Embedded checkout shows it after you register your domain and serve Apple’s association file. See Apple Pay.
  • Google Pay appears on Hosted Checkout and payment links for one-time payments, with no domain setup. Google Pay requires payment processing that supports it; ask Ionic support to confirm it for your account. See Google Pay.
  • Subscription mode uses recurring catalog prices that share one currency and billing cadence.
  • Payment links use catalog prices. Create the products and prices first.
  • To save a card without a purchase, use a SetupIntent with Ionic Blocks.

Guides

Server code uses @ionicfi/sdk. Embedded checkout mounts with @ionicfi/js or the React <CheckoutEmbed> component.

API reference

Ionic sends checkout.session.created, checkout.session.completed, and checkout.session.expired. See their payloads in the event catalog.