Create a payments app
A public app becomes a payments app after you've configured your payments app extension, submitted it for approval, and published a version. When you publish your payments app, your app becomes available, and merchants can install and use the app in their Shopify stores.
What you'll learn
Anchor link to section titled "What you'll learn"In this tutorial, you'll learn how to do the following tasks:
- Configure offsite and credit card payments app extensions
- Submit your payments app extension for review
- Publish a version of your payments app extension
Requirements
Anchor link to section titled "Requirements"- You've applied and been approved to become a Payments Partner.
- You've created a Partner account and a development store.
- You understand how apps fit into Shopify and the different ways of distributing your app.
You've created an app that uses Shopify CLI 3.0 or higher, or you've migrated your existing app so that it's compatible with Shopify CLI 3.0 or higher.
You've disabled the embedded app configuration for your app in the Partner Dashboard.
Step 1: Configure your payments app extension for submission
Anchor link to section titled "Step 1: Configure your payments app extension for submission"Before you can publish your payments app extension, you need to create a payments app extension, open a draft for your payments app extension, and then submit your payments app extension.
Create a payments app extension
Anchor link to section titled "Create a payments app extension"- From your Partner Dashboard, click Apps.
- Click the name of the app that you want to change.
- Click Extensions.
- Click Create.
- Select the Payments tab to create an offsite payments app extension or credit card payments app extension.
- Enter your extension name and select Save.
Open a draft for your payments app extension
Anchor link to section titled "Open a draft for your payments app extension"From the Extension settings page, click Open draft.
Configure the fields of the payments app extension, and then click Save draft.
Offsite payments app extension
Anchor link to section titled "Offsite payments app extension"Field | Description |
---|---|
Payment session URL Required |
The URL that receives payment and order details from the checkout. |
Refund session URL Required |
The URL that refund session requests are sent to. |
Capture session URL | The URL that capture session requests are sent to. This is only used if your payments app supports merchant manual capture or void payments. |
Void session URL | The URL that void session requests are sent to. This is only used if your payments app supports merchant manual capture or void payments. |
Buyer features | The customer features that your payments app offers. 3D Secure support is mandated in some instances. For example, you must select the 3D Secure buyer feature checkbox if you plan to support credit card payments in countries which have mandated 3D Secure. |
Payment methods Required |
The payment methods (for example, Visa) that are available with your payments app. |
Available countries Required |
The countries where your payments app is available. |
Merchant admin name Required |
The name for your payment provider app. This name is displayed to merchants in the Shopify admin when they search for payment methods to add to their store. Limited to 50 characters. |
Checkout name | The name of the checkout. Your checkout name can be the same as your Merchant admin name or it can be customized for customers. This name is displayed with the payment methods that you support in the customer checkout. After a checkout name has been set, translations should be provided for localization. |
Test mode Required |
Enables merchants using your payments app to test their setup by simulating transactions. To test your app on a development store, your alternative payment provider in the Shopify admin must be set to test mode. |
API version Required |
The Payments Apps GraphQL API version used by the payment provider app to receive requests from Shopify. You must use the same API version for sending GraphQL requests. You must not use unstable in production. API versions are updated in accordance with Shopify's general API versioning timelines. |
Credit card payments app extension
Anchor link to section titled "Credit card payments app extension"Field | Description |
---|---|
Payment session URL Required |
The URL that receives payment and order details from the checkout. |
Refund session URL Required |
The URL that refund session requests are sent to. |
Capture session URL Required |
The URL that capture session requests are sent to. |
Void session URL Required |
The URL that void session requests are sent to. |
Confirm session URL | The URL that confirm session requests are sent to. This URL is required if your payments app supports 3-D Secure authentication. |
Buyer features | The customer features that your payments app offers. 3D Secure support is mandated in some instances. For example, you must select the 3D Secure buyer feature checkbox if you plan to support credit card payments in countries which have mandated 3D Secure. |
Payment methods Required |
The payment methods (for example, Visa) that are available with your payments app. |
Available countries Required |
The countries where your payments app is available. |
Merchant admin name Required |
The name for your payment provider app. This name is displayed to merchants in the Shopify admin when they search for payment methods to add to their store. Limited to 50 characters. |
Checkout name | The name of the checkout. Your checkout name can be the same as your Merchant admin name or it can be customized for customers. This name is displayed with the payment methods that you support in the customer checkout. After a checkout name has been set, translations should be provided for localization. |
Test mode Required |
Enables merchants using your payments app to test their setup by simulating transactions. To test your app on a development store, your alternative payment provider in the Shopify admin must be set to test mode. |
Encryption Certificate Required |
The certificate that Shopify uses to generate the ephemeral key and encrypt the credit card information of the customer. Refer to manage encryption certificates section to learn more. |
API version Required |
The Payments Apps GraphQL API version used by the payment provider app to receive requests from Shopify. You must use the same API version for sending GraphQL requests. You must not use unstable in production. API versions are updated in accordance with Shopify's general API versioning timelines. |
Step 2: Submit your payments app extension
Anchor link to section titled "Step 2: Submit your payments app extension"After you've finished your draft, you can submit your payments app extension for review. You can use this same process to submit new versions of your payments app extension.
From the Extension details page, click Create version.
Select Minor or Major version.
Select Submit for Review.
Wait for Shopify to approve your submitted version of your payments app extension. For more information, refer to the payments app approval process.
While Shopify reviews your payments app extension, the version displays a Pending state.
After Shopify approves your payments app extension version, it's marked with Approved and Live tags.
If we reject your payments app extension, then we'll send you an email indicating next steps. Make sure that you check the business email for your Partner account, as well as the email address included in your Payments Platform application. After making the required changes, you can resubmit your app extension.
Step 3: Publish a version of your payments app extension
Anchor link to section titled "Step 3: Publish a version of your payments app extension"After your payments app extension has been approved, you can publish it.
When you publish your payments app extension, the configuration of your payments app extension that you chose to publish becomes live. After the first payments app extension is published, the payments app extension can be used and tested.
- Select Publish beside the version that you want to publish.
- Click Publish in the popup modal to confirm.
Unpublishing a version of your payments app extension
Anchor link to section titled "Unpublishing a version of your payments app extension"Don't unpublish a version of your payments app extension. Instead, you should publish a different version of your payments app extension.
Unpublishing a version of your payments app extension invalidates the payments app provider. It breaks the payments app provider for stores that have it installed because the store tries to fetch a published version that no longer exists.
- Learn how to implement a payments app to process transactions.