Access denied for balanceTransactions field

Topic summary

Access denied when querying the Shopify Admin GraphQL balanceTransactions connection on ShopifyPaymentsAccount; the same query succeeds if balanceTransactions is omitted. balanceTransactions lists transactions affecting a store’s Shopify Payments balance.

Documentation says this field requires either read_shopify_payments or read_shopify_payments_accounts access scope. Support asked to verify scopes via currentAppInstallation; the app shows read_shopify_payments_accounts (and related payouts scope) but not read_shopify_payments.

The app owner notes read_shopify_payments is not available to select for a custom app (screenshots shared). Support advises contacting Shopify Support to have access enabled or investigated if the scope can’t be selected but the field remains blocked.

A second developer confirms the same behavior: read_shopify_payments_accounts is granted, read_shopify_payments is no longer a valid permission, and balanceTransactions still returns access denied. They suspect an issue with the balanceTransactions connection and link a related thread about being unable to add read_shopify_payments.

Status: unresolved. Action item: provide app ID, store ID, and request details to Shopify Support for escalation. Open questions: whether balanceTransactions incorrectly requires legacy scope or is misconfigured with new scopes.

Summarized with AI on December 12. AI used: gpt-5.

I’m trying to the transaction details for payouts, but it says access denied. I have given all and full persons to the custom app api. what am I missing?

uery MyQuery {
  shopifyPaymentsAccount {
    id
    balance {
      amount
    }
    payouts(first: 10) {
      nodes {
        id
      }
    }
    balanceTransactions(first: 10) {
      edges {
        node {
          id
        }
      }
    }
  }
}

if I exclude “balanceTransactions” I don’t get the error:

uery MyQuery {
  shopifyPaymentsAccount {
    id
    balance {
      amount
    }
    payouts(first: 10) {
      nodes {
        id
      }
    }
  }
}

Hey @ellamila ,

You’re query looks alright. Our documentation mentions this requires

Requires the read_shopify_payments or the read_shopify_payments_accounts access scope.

Can you try the following query to confirm if the access scopes are properly granted?

{> currentAppInstallation {> accessScopes {> handle> }> }> }

If the response doesn’t include the scopes, but you’ve selected them in your custom app settings, or if they are showing but you’re still getting that error returned I’d recommend reaching out to our support teams with your app ID, storeID and an example of this request so we can look in to this a little closer.

Kind Regards,

Kyle G.
Shopify Senior Support Specialist | API

@ShopifyDevSup

We have setup a custom app api, the “read_shopify_payments” option is not available? Any suggestions?

Thanks for the screenshot @ellamila . It looks like you have the necessary scopes added. Can you try the query I provided to confirm that you have the scopes through the API?

If so and the information still isn’t being returned, reach out through our support so we can take a closer look.

  • Kyle G.

@ShopifyDevSup

here are the results of the query

{
    "data": {
        "currentAppInstallation": {
            "accessScopes": [
                {
                    "handle": "read_shopify_payments_accounts"
                },
                {
                    "handle": "read_shopify_payments_payouts"
                },
                {
                    "handle": "read_assigned_fulfillment_orders"
                },
                {
                    "handle": "read_apps"
                },
                {
                    "handle": "read_analytics"
                },
                {
                    "handle": "read_audit_events"
                },
                {
                    "handle": "read_customer_events"
                },
                {
                    "handle": "read_checkout_branding_settings"
                },
                {
                    "handle": "read_custom_pixels"
                },
                {
                    "handle": "read_customers"
                },
                {
                    "handle": "read_discounts"
                },
                {
                    "handle": "read_discovery"
                },
                {
                    "handle": "read_draft_orders"
                },
                {
                    "handle": "read_files"
                },
                {
                    "handle": "read_fulfillments"
                },
                {
                    "handle": "read_inventory"
                },
                {
                    "handle": "read_legal_policies"
                },
                {
                    "handle": "read_locations"
                },
                {
                    "handle": "read_marketing_events"
                },
                {
                    "handle": "read_merchant_managed_fulfillment_orders"
                },
                {
                    "handle": "read_metaobject_definitions"
                },
                {
                    "handle": "read_metaobjects"
                },
                {
                    "handle": "read_online_store_pages"
                },
                {
                    "handle": "read_online_store_navigation"
                },
                {
                    "handle": "read_validations"
                },
                {
                    "handle": "read_shopify_payments_provider_accounts_sensitive"
                },
                {
                    "handle": "read_fulfillment_constraint_rules"
                },
                {
                    "handle": "read_gates"
                },
                {
                    "handle": "read_payment_customizations"
                },
                {
                    "handle": "read_payment_terms"
                },
                {
                    "handle": "read_shopify_payments_bank_accounts"
                },
                {
                    "handle": "read_shopify_payments_disputes"
                },
                {
                    "handle": "read_store_credit_accounts"
                },
                {
                    "handle": "read_orders"
                },
                {
                    "handle": "read_store_credit_account_transactions"
                },
                {
                    "handle": "read_gift_cards"
                },
                {
                    "handle": "read_order_edits"
                },
                {
                    "handle": "read_packing_slip_templates"
                },
                {
                    "handle": "read_price_rules"
                },
                {
                    "handle": "read_pixels"
                },
                {
                    "handle": "read_product_feeds"
                },
                {
                    "handle": "read_product_listings"
                },
                {
                    "handle": "read_products"
                },
                {
                    "handle": "read_publications"
                },
                {
                    "handle": "read_purchase_options"
                },
                {
                    "handle": "read_resource_feedbacks"
                },
                {
                    "handle": "read_reports"
                },
                {
                    "handle": "read_channels"
                },
                {
                    "handle": "read_returns"
                },
                {
                    "handle": "read_script_tags"
                },
                {
                    "handle": "read_shipping"
                },
                {
                    "handle": "read_locales"
                },
                {
                    "handle": "read_markets"
                },
                {
                    "handle": "read_shopify_credit"
                },
                {
                    "handle": "read_content"
                },
                {
                    "handle": "read_themes"
                },
                {
                    "handle": "read_translations"
                },
                {
                    "handle": "read_third_party_fulfillment_orders"
                },
                {
                    "handle": "read_all_cart_transforms"
                },
                {
                    "handle": "read_all_checkout_completion_target_customizations"
                },
                {
                    "handle": "read_cart_transforms"
                },
                {
                    "handle": "read_cash_tracking"
                },
                {
                    "handle": "read_companies"
                },
                {
                    "handle": "read_custom_fulfillment_services"
                },
                {
                    "handle": "read_customer_data_erasure"
                },
                {
                    "handle": "read_customer_merge"
                },
                {
                    "handle": "read_delivery_customizations"
                },
                {
                    "handle": "read_discounts_allocator_functions"
                },
                {
                    "handle": "read_order_submission_rules"
                },
                {
                    "handle": "read_privacy_settings"
                },
                {
                    "handle": "read_all_orders"
                }
            ]
        }
    },
    "extensions": {
        "cost": {
            "requestedQueryCost": 2,
            "actualQueryCost": 2,
            "throttleStatus": {
                "maximumAvailable": 20000.0,
                "currentlyAvailable": 19998,
                "restoreRate": 1000.0
            }
        }
    }
}

Hey @ellamila ,

I don’t see the "read_shopify_payments" listed in your app’s scopes, although there are several scopes with similar names.

If you are using a custom app and the option to enable "read_shopify_payments" is not already enabled in the admin, then you will need to reach out to support with the details of the API client and the store for them to look into enabling it’s access.

Hope that helps,

  • James

I am having exactly the same problem. I have the new read_shopify_payments_accounts permission granted by I am not able to run a balanceTransactions query. I tried to add the read_shopify_payments permission, but it’s no longer a valid permission. I think something is wrong with the balanceTransactions connection.

This is also related to Cannot add scope read_shopify_payments

I also am unable to access the payouts connection. The both give the same error:

[200] Error(s): ACCESS_DENIED - Access denied for payouts field.
[200] Error(s): ACCESS_DENIED - Access denied for balanceTransactions field.

But the ShopifyPaymentsShowBalance works just fine.

It seems like something is wrong with the payouts and balanceTransactions permissions.