INSUFFICIENT_SCOPES Error When WRITE is supposed to include the READ permission?

I’m getting an INSUFFICIENT_SCOPES Error when I searching the catalog. My app has the ITEMS_WRITE permission and from what I read in the docs that includes the ITEMS_READ permission. Did I misread the docs? Here’s the response

{
    "success": false,
    "message": [
        {
            "category": "AUTHENTICATION_ERROR",
            "code": "INSUFFICIENT_SCOPES",
            "detail": "The merchant has not given your application sufficient permissions to do that. The merchant must authorize your application for the following scopes: ITEMS_READ"
        }
    ]
}

Each permission is its own permission. If you have ITEMS_WRITE you will also need ITEMS_READ. Having a WRITE permission won’t automatically grant you that permissions READ scope. :slightly_smiling_face:

I feel like that is very odd. All other API’s i’ve worked with include READ when you have WRITE access. What’s is the reasoning behind this?

With Square all permission scopes have to be explicitly requested which is why all necessary scopes need to be included in the OAuth request. :slightly_smiling_face: