Solved

The api_client does not have the required permission(s).

tanktankke
Tourist
8 0 2
{
    "fulfillment": {
        "message": "test",
        "notify_customer": false,
        "tracking_info": {
            "number": 9273750162665,
            "company": "USPS"
        },
        "line_items_by_fulfillment_order": [
            {
                "fulfillment_order_id": 7140246,
                "fulfillment_order_line_items": [
                    {
                        "id": 62614,
                        "quantity": 1
                    }
                ]
            }
        ]
    }
}
 
 
{
    "errors": "The api_client does not have the required permission(s)."
}
Accepted Solution (1)

flareAI
Shopify Partner
2405 223 539

This is an accepted solution.

Hello @tanktankke,

 

I am Gina from flareAI app helping Shopify merchants get $6Million+ in sales from Google Search, on autopilot. I am here to support you.


The error message you are seeing indicates that the API client you are using does not have the necessary permissions to perform the requested action.


Ensure that the fulfillment order scopes you are requesting in your API requests match the permissions that have been granted to your app. If the scopes do not match, you may need to update your app's permissions and test again. Once you add the missing scopes make sure to re-install the app to get the new scopes added to the store. Check this guide to get the complete list of available access scopes.


Also, review the API documentation to ensure that you are using the correct API endpoint and parameters in your request. Some endpoints may require additional parameters or specific data formats.


Hope this helps


Gina

flareAI : Get Sales from Google Search, on Autopilot
$10+ billion in eCommerce on Google Search, every day. Find out how much you are missing

View solution in original post

Replies 5 (5)

flareAI
Shopify Partner
2405 223 539

This is an accepted solution.

Hello @tanktankke,

 

I am Gina from flareAI app helping Shopify merchants get $6Million+ in sales from Google Search, on autopilot. I am here to support you.


The error message you are seeing indicates that the API client you are using does not have the necessary permissions to perform the requested action.


Ensure that the fulfillment order scopes you are requesting in your API requests match the permissions that have been granted to your app. If the scopes do not match, you may need to update your app's permissions and test again. Once you add the missing scopes make sure to re-install the app to get the new scopes added to the store. Check this guide to get the complete list of available access scopes.


Also, review the API documentation to ensure that you are using the correct API endpoint and parameters in your request. Some endpoints may require additional parameters or specific data formats.


Hope this helps


Gina

flareAI : Get Sales from Google Search, on Autopilot
$10+ billion in eCommerce on Google Search, every day. Find out how much you are missing
tanktankke
Tourist
8 0 2

Thank you for your answer, but my application has been used by many people. Do I need to inform all users to uninstall and reinstall it?

99diy
Shopify Partner
1 0 0

I had the same problem as you. How did you finally solve it? Thank you very much!

rafalillo
Shopify Partner
2 0 1

Could you please tell us which scopes are required for this topic? I´ve been looking in the doc but it doesn´t say which ones are required.

https://shopify.dev/docs/api/admin-rest/2023-04/resources/fulfillment#post-fulfillments-fulfillment-...

SteveMonsen
Shopify Partner
9 0 3

I had the correct scopes, but I was using a stale access token.

 

If you are still getting permission denied error, then check your app's API Access page to verify that the scopes have been deployed and then refresh your access token, if that's what you're using to make requests. This means that if you're building an app in development: shopify app dev --reset and re-install your app.

Even then, I've found that the access token still needs to be refreshed sometimes. So I would delete the Session from the db and refresh the app screen. This forces a new access token to be generated and stored in the Session.accessToken field for the store.

If you're not confused, you're not thinking.