Why am I getting "status code 401" attempting patch app_metadata?

I’m banging my head against the wall trying to solve issuing a patch request after getting an access token. This same access token works for get requests to https://${appDomain}/api/v2/users/${userid}. But it fails with “Request failed with status code 401” when trying to use it to patch app_metadata.

Using NodeJS and Axios.

     axios
      .post(`https://${appDomain}/oauth/token`, {
        grant_type: 'client_credentials',
        client_id: clientId,
        client_secret: clientSecret,
        audience: `https://${appDomain}/api/v2/`,
      })
      .then(({ data: { access_token, token_type } }) => {
        const jwt = jwtDecode(access_token)

        axios
          .patch(`https://${appDomain}/api/v2/users/${userid}`, {
            data: {
              app_metadata: { stripeCustomerId: customer.id },
            },
            headers: {
              Authorization: `${token_type} ${access_token}`,
            },
          })
          .then(({ data }) => {
            console.warn('patch response', data)
          })
          .catch((err) => {
            console.error('patch error', err) // <--- ERROR 401 happens here
            res.send(err)
          })
      })
      .catch((err) => {
        console.error('token error', err)
        res.send(err)
      })

After shadow boxing documentation I discovered a syntax error in my axios.patch call. Format should have been the following, which fixed my problems. I was passing data:{…} when it should have been like this:

              .patch(
            `https://${appDomain}/api/v2/users/${userid}`,
            {
              app_metadata: { stripeCustomerId: customer.id },
            },
            {
              headers: {
                Authorization: `${token_type} ${access_token}`,
              },
            }
          )

Glad you have figured it out and thanks for sharing with the rest of community!