Onboarding a merchant to a payments app
Your payments app needs to be approved before merchants can install it on their Shopify store.
There are two ways for a merchant to discover a payments app:
- Through a direct installation link.
- Through Shopify’s public list of payment gateways under alternative payment methods.
To be added to the list of payment gateways in the Shopify admin, the payments app must meet certain criteria, such as being used by at least 50 Shopify stores and must have processed over 1,000,000 USD.
How a merchant installs a payments appAnchor link to section titled "How a merchant installs a payments app"
- Payments apps can be installed by merchants directly through an installation link shared by the payments developer or through Shopify’s public list of payment gateways in the Shopify admin.
- Merchant connects the app using OAuth.
- Merchant is redirected to the payments app page to perform configuration. During this time, a banner shows that the provider is not ready to process payments yet.
- Merchant configures the payments app.
- The app marks itself as ready by calling the Shopify API.
- Shopify enables the app to be activated by the merchant in Shopify admin.
- The merchant activates the app.
- Conditional: Merchant deactivates the legacy payments gateway to avoid duplicate payment methods during checkout, if applicable.
Payments app installation URLAnchor link to section titled "Payments app installation URL"
When you edit a version from the Edit draft page, you can access a URL that links to the provider page corresponding to your payments app. You can share this URL with merchants so that they can install your payments app on their stores.
The URL displays only after Shopify has approved your payments app.
InstallationAnchor link to section titled "Installation"
You use OAuth to obtain permission from the merchant to install your payments app. The merchant clicks on a link to install your app, which redirects to Shopify's OAuth screen.
After the merchant agrees to the OAuth permissions, your app requests an access token for API access.
Step 1: Connect to the appAnchor link to section titled "Step 1: Connect to the app"
After selecting a payments app for the first time, the merchant is presented with a description and a Connect button. By clicking Connect, the merchant is redirected to the Payments App URL. This triggers the installation through OAuth.
Step 2: Host app URLAnchor link to section titled "Step 2: Host app URL"
Host an OAuth app URL on your servers so that the merchant can give your app permissions:
Payments apps should request for offline access, by setting
value. If no access mode is defined, then it defaults to offline access mode. Refer to OAuth for definitions of the app URL properties.
PermissionsAnchor link to section titled "Permissions"
You can request the following OAuth access scopes from the merchant:
write_payment_gateways: Allows access to APIs related to merchant onboarding and readiness management.
- Required for the
- Required for the
write_payment_sessions: Allows access to APIs related to payment requests and callback APIs.
- Required for
- Required for
For more detailed information, refer to Getting started with OAuth.
Step 3: Get a token for the shopAnchor link to section titled "Step 3: Get a token for the shop"
You can get a token for a shop by exchanging the code for a token. When a merchant grants your app permissions, the following redirect URL is returned to your app server, including the code that can be exchanged for an access token:
Step 4: Redirect the user to your app's onboardingAnchor link to section titled "Step 4: Redirect the user to your app's onboarding"
The installation flow ends with the merchant being redirected to the redirection URL.
Provider authorization and configurationAnchor link to section titled "Provider authorization and configuration"
After the installation is completed, the merchant is redirected to the payments app to complete configuration. What that page contains is totally up to the app developer. The merchant completes any required authentication or configuration as part of this step.
Prompt the merchant to login to or create an account with the payment provider.
Ask the merchant to complete configuration for billing plans, payouts, or notifications.
Provider readinessAnchor link to section titled "Provider readiness"
Your app needs to inform Shopify that it's ready to process payments for the merchant. Until then, Shopify displays a warning banner in the Shopify admin as a reminder to the merchant.
GraphQL mutationAnchor link to section titled "GraphQL mutation"
You can set your app as ready to process payments by calling the paymentsAppConfigure mutation.
There are two required arguments that you need to supply in the mutation:
externalHandle: A username or identifier associated with the account that the merchant has used with the Partner. This is displayed in the Shopify admin on the Payments section of the Shopify admin Settings. It allows the merchant to identify the connected payment provider account.
ready: A signal that the provider is ready to process payments. Accepted values are
true: Allows your app to process payments.
false: Indicates your app isn't yet able to process payments.
You can set
externalHandleto let the merchant know that the account connection is established, but it's still awaiting finalization and approval to process payments:
After the merchant has completed all the actions required for your app's onboarding, they must be redirected back to the Shopify admin using the following URL:
After authorization and configuration are complete, merchants are redirected back to the Shopify admin to select payment methods to offer. These payment methods are displayed to customers as payment icons during checkout.
Merchants use the alternative payment method settings in Shopify admin to activate and deactivate payments apps.
For more information, refer to Alternative payment method apps.
DeactivationAnchor link to section titled "Deactivation"
If merchants no longer need a payments app, then they can deactivate it. When a merchant deactivates a payments app, customers can't select it at checkout for payment. However, merchants can still manage refunds and captures for orders created with the deactivated payments app. For more information, refer to Alternative payment method apps.