View charges and earnings
You can view data on charges and transactions using the following mechanisms:
Anchor to App charge data in the Partner DashboardApp charge data in the Partner Dashboard
You can view the following data by page in the Partner Dashboard:
Page | Data |
---|---|
App charge overview |
|
Store | App charges for a specific store |
Payouts | App charges for a specific payout |
App history | App charge details |
Anchor to App charge overview pageApp charge overview page
In the event of a discrepancy between the overview page and the Payouts page, the information on the Payouts page should be considered the accurate reference.
The app charge overview page provides the most comprehensive information regarding charges and earnings. The page provides the following details:
-
Merchant information, including a link to the store where the app is installed
-
The name of the app that the merchant was charged for, including a link to the app
-
The status of the app charge or subscription
-
The list of merchant payment transactions that are associated with the charge
Clicking the arrow next to a transaction displays the following details:
-
An itemized list of the Shopify revenue share fee, processing fee, and your net profit as the app's developer
-
A link to the Partner payout that includes the app charge. The payout link isn't applicable to pending payouts.
The overview page includes additional charge details for subscription charges.
Anchor to Subscription charge detailsSubscription charge details
You can view the following additional details for subscription charges:
-
A description of the charge, such as $15 every 30 days for an app subscription charge.
-
The date on which the charge was created.
-
The charge's status, which can be one of the following:
Charge statuses Status Description Pending The merchant hasn't yet approved or declined the charge. Activated The charge is currently active.
For some payments, such as wire transfers, Shopify marks the charge as active when the payment is in flight.
Declined The merchant declined the charge. Canceled The merchant or the developer canceled the subscription
If a payment doesn't go through, then Shopify retries the charge. Only shut off a merchant's app access after Shopify freezes the charge.
Frozen The subscription is on hold due to a store subscription non-payment. The charge reactivates after the subscription payments resume. Expired The merchant didn't accept the charge within two non-business days.
Anchor to Transaction data through the GraphQL Admin APITransaction data through the Graph QL Admin API
You can use the following billing resources on the GraphQL Admin API to view transaction data:
Transaction data | Resource | Learn how |
---|---|---|
Single app purchase | AppPurchaseOneTime | Example |
Multiple app purchases | currentAppInstallation | Example |
Single app subscription | currentAppInstallation | Example |
Multiple app subscription | AppSubscription | Example |
App usage records for a single subscription | AppSubscription | Example |
App usage records for multiple subscriptions | currentAppInstallation | Example |
App usage record | currentAppInstallation | Example |
Anchor to View app revenueView app revenue
You can view your app's revenue and retrieve data on transactions using the following mechanisms:
Anchor to RequirementsRequirements
-
To use the Partner Dashboard, you require a Partner account.
-
To view the Partner Dashboard's app charge overview and Payouts pages, store owners and staff require the
View financials
permission. -
To use the GraphQL Admin API, your app must be able to make authenticated requests to the API.
Anchor to Viewing app charges in the Partner DashboardViewing app charges in the Partner Dashboard
The following procedures explain how to view app charges and data from the Partner Dashboard:
Anchor to App charge overview pageApp charge overview page
From the Partner Dashboard, click Apps
.- Select the app that you want to view charges for.
- On the Overview page, scroll to Latest app history.
- Optional: Select View all app history and navigate through the pages.
- In the Event Details column, click Open payments.
- To view transaction details, next to a transaction click the inverted caret (â–¼).
Anchor to Store pageStore page
From the Partner Dashboard, click Apps
.- In the search bar, enter the name of the store with the app charges that you want to check.
- In the search results, select the store.
- Next to the app charge that you want to check, click the link in the Details column.
Anchor to Payouts pagePayouts page
From the Partner Dashboard, click Apps
.- In the sidebar, click Payouts.
- On the Payouts page, click the payout with the app charges that you want to check.
- Next to the app charge that you want to check, click the link in the Type column.
- For details, next to a transaction click the inverted caret.
Anchor to App history pageApp history page
From the Partner Dashboard, click Apps
.- Click the name of the app with the charges that you want to check.
- In the sidebar, click Insights > App history.
- In the table next to the app charge that you want to check, in the Event Details column, click Open payments.
- For details, next to a transaction click the inverted caret.
Anchor to Querying billing data with the GraphQL Admin APIQuerying billing data with the Graph QL Admin API
Use the following examples to familiarize yourself with billing data in the GraphQL Admin API. The currency code must be one of the supported currencies.
Anchor to App purchasesApp purchases
You can query a single purchase or multiple purchases.
Anchor to Single app purchaseSingle app purchase
Query a single purchase with the AppPurchaseOneTime
object. Pass the app purchase ID as an argument. You can retrieve this ID from the Payouts page.
The following is an example:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Multiple app purchasesMultiple app purchases
Query multiple purchases using currentAppInstallation
. Specify the number of purchases to return by passing first
or last
as an argument.
The following is an example:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to App subscriptionsApp subscriptions
You can query a single subscription or multiple subscriptions.
Anchor to Single app subscriptionSingle app subscription
Query a single subscription using the AppSubscription
object. Pass the subscription ID as an argument.
The subscription ID is returned when you create a subscription. The AppSubscription
object can also return the app subscriptions that are associated with the installation.
The following is an example:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to Multiple app subscriptionsMultiple app subscriptions
Query multiple subscriptions using currentAppInstallation
. Specify the number of subscriptions to return by passing first
or last
as an argument.
The following is an example:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to App usage recordsApp usage records
Query an app usage record for a single subscription or records for multiple subscriptions. You can also query a specific app usage record by its ID.
Anchor to App usage records for a single subscriptionApp usage records for a single subscription
Query the app usage record for a single subscription using the AppSubscription
object. Pass the subscription ID as an argument. You can specify the number of records to return by passing first
or last
as an argument.
The subscription ID is returned when you create a subscription. The AppSubscription
object can also return the app subscriptions that are associated with the installation.
The following is an example:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to App usage records for multiple subscriptionsApp usage records for multiple subscriptions
Query the app usage record for a single subscription using currentAppInstallation
. You can get the usageRecords
from the lineItems
field of allSubscriptions
. Specify the number of records to return by passing first
or last
as an argument.
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL query
JSON response
Anchor to App usage record by IDApp usage record by ID
Query a specific app usage record using the AppUsageRecord
object. Pass the app usage record ID as an argument.