client_id + client_secret — no bearer token.client_credentials: send store_id of a store in the app owner's organization. Grants the app's full scopes; no refresh token is returned — call this again when the token expires.refresh_token: exchanges a refresh token for a new pair. Refresh tokens rotate: always store the new refresh_token; the old one stops working.curl --location '/partner/v1/oauth/token' \
--header 'Accept-Language: en' \
--header 'Content-Type: application/json' \
--data '{
"grant_type": "client_credentials",
"client_id": "{{client_id}}",
"client_secret": "{{client_secret}}",
"store_id": "{{store_id}}"
}'{
"success": true,
"message": "string",
"data": {
"access_token": "string",
"refresh_token": "string",
"token_type": "string",
"expires_in": 0
}
}