Guide

This guide walks you through the optimal client integrations for the Ivy checkout. Including:
  1. Desktop Web - Use the React SDK and iframe to create a seamless experience for customers to complete their payment within your site.
  2. Mobile Web - Redirect your users to the Ivy hosted checkout for a clean payment experience on smaller screens.
  3. Mobile Native App - Redirect users to the Ivy hosted checkout to complete the payment and return directly to your app through deep linking.

SDK Backend Setup

The backend setup provides a secure, server-side integration to handle the communication between your application and Ivy’s API. It receives payment details from your frontend and return a checkout URL where users go to complete their payment.

Client Implementations

2.1. Desktop Web

For desktop web applications, iframe integration with our React SDK provides the best user experience and conversion rates.
embedded iframe: If you’re embedding the Ivy checkout into your page always append &iframe=true to the checkout URL you receive back and render.modal iframe: If you’re overlaying your iframe in a modal always append &popup=true to the checkout URL you receive back and render.The API can’t include these parameters by default as it doesn’t know your rendering method.

2.2. Mobile Web

For mobile web applications, redirecting users to the Ivy checkout URL provides better performance, security, and user experience compared to iframe embedding.
An iframe on mobile web can break the flow for users while going to or returning from their bank.

2.3. Mobile Native App

For native mobile applications, always open Ivy checkout in the user’s default browser. This is essential for proper deep linking and app redirects - using WebViews in native apps can interfere with:
  • Bank authentication flows
  • Deep linking back to your app
  • Security features and SSL certificate handling
  • User session management
Open Ivy’s checkout in browser for the best deeplinking user experience
// ❌ Don't do this in native apps
<WebView source={{ uri: checkoutUrl }} />

// ✅ Do this instead
Linking.openURL(checkoutUrl);

Need Help?