<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic BAD_GRANT_TYPE Error - Authentication for Webhooks v4 in APIs &amp; Integrations</title>
    <link>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1220589#M85278</link>
    <description>&lt;P&gt;Hello everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm trying to get an access token using the &lt;CODE&gt;client_credentials&lt;/CODE&gt; grant type so I can manage Webhooks V4.&lt;/P&gt;
&lt;P&gt;I'm using the Client ID and Client Secret from my app, but I keep receiving a &lt;CODE&gt;BAD_GRANT_TYPE&lt;/CODE&gt; error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;{"status":"BAD_GRANT_TYPE","message":"missing or unknown grant type","correlationId":"3c50489d-180c-4a7a-bc66-6cdd1a06c277"}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;curl --location 'https://api.hubapi.com/oauth/v1/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'client_id=my_client_id' \
  --data-urlencode 'client_secret=my_client_secret' \
  --data-urlencode 'scope=developer.webhooks_journal.read developer.webhooks_journal.subscriptions.read developer.webhooks_journal.subscriptions.write developer.webhooks_journal.snapshots.read developer.webhooks_journal.snapshots.write'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Am I missing a step, or perhaps using the wrong credentials for this grant type? My understanding was that &lt;CODE&gt;client_credentials&lt;/CODE&gt; is the correct flow for server-to-server API access for these developer scopes.&lt;/P&gt;
&lt;P&gt;Any help would be greatly appreciated!&lt;/P&gt;</description>
    <pubDate>Thu, 06 Nov 2025 08:01:00 GMT</pubDate>
    <dc:creator>miguelncg</dc:creator>
    <dc:date>2025-11-06T08:01:00Z</dc:date>
    <item>
      <title>BAD_GRANT_TYPE Error - Authentication for Webhooks v4</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1220589#M85278</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm trying to get an access token using the &lt;CODE&gt;client_credentials&lt;/CODE&gt; grant type so I can manage Webhooks V4.&lt;/P&gt;
&lt;P&gt;I'm using the Client ID and Client Secret from my app, but I keep receiving a &lt;CODE&gt;BAD_GRANT_TYPE&lt;/CODE&gt; error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;{"status":"BAD_GRANT_TYPE","message":"missing or unknown grant type","correlationId":"3c50489d-180c-4a7a-bc66-6cdd1a06c277"}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;curl --location 'https://api.hubapi.com/oauth/v1/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'client_id=my_client_id' \
  --data-urlencode 'client_secret=my_client_secret' \
  --data-urlencode 'scope=developer.webhooks_journal.read developer.webhooks_journal.subscriptions.read developer.webhooks_journal.subscriptions.write developer.webhooks_journal.snapshots.read developer.webhooks_journal.snapshots.write'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Am I missing a step, or perhaps using the wrong credentials for this grant type? My understanding was that &lt;CODE&gt;client_credentials&lt;/CODE&gt; is the correct flow for server-to-server API access for these developer scopes.&lt;/P&gt;
&lt;P&gt;Any help would be greatly appreciated!&lt;/P&gt;</description>
      <pubDate>Thu, 06 Nov 2025 08:01:00 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1220589#M85278</guid>
      <dc:creator>miguelncg</dc:creator>
      <dc:date>2025-11-06T08:01:00Z</dc:date>
    </item>
    <item>
      <title>Re: BAD_GRANT_TYPE Error - Authentication for Webhooks v4</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1222067#M85348</link>
      <description>&lt;P&gt;Hi &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/768767"&gt;@miguelncg&lt;/a&gt;&lt;/SPAN&gt;,&lt;BR /&gt;&lt;BR /&gt;Thank you for posting to the Community!&lt;BR /&gt;&lt;BR /&gt;I'd like to tag in some of our Top Contributors to see if they have any ideas on this one -- Hi &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/580930"&gt;@HubSpot_Corey&lt;/a&gt; &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/20261"&gt;@louischausse&lt;/a&gt; and &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/101258"&gt;@Teun&lt;/a&gt; Do any of you have any suggestions for &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/768767"&gt;@miguelncg&lt;/a&gt;&lt;/SPAN&gt;?&lt;BR /&gt;&lt;BR /&gt;Thank you!&lt;BR /&gt;&lt;BR /&gt;Cassie, Community Manager&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Nov 2025 14:38:26 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1222067#M85348</guid>
      <dc:creator>chighsmith</dc:creator>
      <dc:date>2025-11-10T14:38:26Z</dc:date>
    </item>
    <item>
      <title>Re: BAD_GRANT_TYPE Error - Authentication for Webhooks v4</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1222377#M85371</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/768767"&gt;@miguelncg&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hey, I think you are trying to hit an API endpoint. If so, then the approach you should use is to create a private app in instance, provide all the required scopes as per the need, and then use its access token to hit the API. There is no need to create the public app.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I hope this will help you out. Please mark it as &lt;/SPAN&gt;&lt;STRONG&gt;Solution Accepted and upvote&lt;/STRONG&gt;&lt;SPAN&gt; to help another Community member.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2025 07:44:15 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1222377#M85371</guid>
      <dc:creator>GRajput</dc:creator>
      <dc:date>2025-11-11T07:44:15Z</dc:date>
    </item>
    <item>
      <title>Re: BAD_GRANT_TYPE Error - Authentication for Webhooks v4</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1222388#M85374</link>
      <description>&lt;P&gt;Hey Gaurav!&lt;BR /&gt;&lt;BR /&gt;Thank you for taking the time to reply.&lt;/P&gt;
&lt;P&gt;Unfortunately, I don't believe the private app approach will work for this use case. The scopes I am trying to access (like &lt;CODE&gt;developer.webhooks_journal.read&lt;/CODE&gt; and &lt;CODE&gt;developer.webhooks_journal.subscriptions.write&lt;/CODE&gt;) are for the Webhooks V4 API.&lt;/P&gt;
&lt;P&gt;According to HubSpot's documentation, these scopes are only available for public apps and cannot be added to private apps.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Miguel&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2025 08:11:44 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1222388#M85374</guid>
      <dc:creator>miguelncg</dc:creator>
      <dc:date>2025-11-11T08:11:44Z</dc:date>
    </item>
    <item>
      <title>Re: BAD_GRANT_TYPE Error - Authentication for Webhooks v4</title>
      <link>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1229468#M85830</link>
      <description>&lt;P data-start="0" data-end="71"&gt;Hi &lt;a href="https://community.hubspot.com/t5/user/viewprofilepage/user-id/768767"&gt;@miguelncg&lt;/a&gt;&amp;nbsp;, good question, this part of the docs is easy to misread.&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;HubSpot’s public app OAuth flow today only supports authorization_code (and then refresh_token) for getting access tokens. The /oauth/v1/token endpoint simply does not accept client_credentials as a valid grant_type, which is why you’re getting BAD_GRANT_TYPE even&amp;nbsp;though the payload looks correct.&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;In other words, for those developer.webhooks_journal.* scopes, you still have to go through a standard OAuth install on a developer test account or portal, get an auth code, exchange it for an access token, and then keep it fresh with the refresh token flow (&lt;A href="https://developers.hubspot.com/docs/apps/legacy-apps/authentication/oauth-quickstart-guide" target="_blank"&gt;https://developers.hubspot.com/docs/apps/legacy-apps/authentication/oauth-quickstart-guide&lt;/A&gt; )&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;Private apps won’t help here, as you already spotted, because those specific scopes are only available to public apps. The clean pattern is usually: public app with the Webhooks v4 developer scopes, one install into a “control” portal, store the refresh token securely, and build a small server-side job that rotates access tokens using grant_type=refresh_token only.&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="73" data-end="816"&gt;That&amp;nbsp;keeps it server-to-server in practice, even if the underlying OAuth flow is not pure client_credentials on the wire. If you later need to mirror those webhook events into another system reliably, Stacksync can consume HubSpot changes and keep your downstream database or CRM in step without you having to juggle custom token logic and sync code._&lt;/P&gt;</description>
      <pubDate>Fri, 28 Nov 2025 19:56:15 GMT</pubDate>
      <guid>https://community.hubspot.com/t5/APIs-Integrations/BAD-GRANT-TYPE-Error-Authentication-for-Webhooks-v4/m-p/1229468#M85830</guid>
      <dc:creator>RubenBurdin</dc:creator>
      <dc:date>2025-11-28T19:56:15Z</dc:date>
    </item>
  </channel>
</rss>

