# Server-to-Server Oauth error: invalid\_client

**URL:** <https://devforum.zoom.us/t/server-to-server-oauth-error-invalid-client/136424>\
**Category:** Authentication\
**Created:** [August 12, 2025, 5:49pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-error-invalid-client/136424 "2025-08-12T17:49:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cybjorg](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/cybjorg/32/70696_2.png) [@Cybjorg](https://devforum.zoom.us/u/Cybjorg)\
**Post date:** [August 12, 2025, 5:49pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-error-invalid-client/136424/1 "2025-08-12T17:49:01Z")

</div>

**API Endpoint(s) and/or Zoom API Event(s)**

POST [zoom-url]/oauth/token?grant\_type=account\_credentials&account\_id=[account-id]

**Description**  
I’m trying to use Postman to get an authorization token for my S2S app, but it keeps returning with an error: “invalid\_client”. I’ll post my Postman configuration below to see if anyone can spot what I’m doing wrong.

**Error?**

- Reason: Invalid client\_id or client\_secret
- Error: invalid\_client

**Postman Configuration**

**Authorization tab**

- Auth Type: Basic Auth
- Client ID and Client Secret provided in the Zoom app

**Headers tab**

- Authorization: Basic [base64-encoded client-id:client-secret
- Cookie: [auto-generated]
- Postman-Token: [auto-generated]
- Content-Length: 0
- Host: 
- User-Agent: PostmanRuntime/7.45.0
- Accept: \*/\*
- Accept-Encoding: gzip, deflate, br
- Connection: keep-alive

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [August 12, 2025, 6:18pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-error-invalid-client/136424/2 "2025-08-12T18:18:50Z")

</div>

Hey @Cybjorg  
Thanks for reaching out to us!  
Interesting, have you had the chance to review this guide here:

> [@How to user Server-to-Sever OAuth app with Postman](https://devforum.zoom.us/t/how-to-user-server-to-sever-oauth-app-with-postman/70848):
>
> How to use our Server-to-Server OAuth with Postman? As some of you might be aware of, our JWT app is being deprecated by June 2023 and we encourage you to migrate to the newly introduced [Server-to-Server OAuth App](https://marketplace.zoom.us/docs/guides/build/server-to-server-oauth-app) That being said, here is a quick and simple guide on how to use or new app with Postman As stated in our documentation here: This new app type facilitates OAuth-authenticated requests between servers without end-user involvement. And this grant type enable your private server a…

---

<div class="post-metadata">

**Author:** ![Cybjorg](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/cybjorg/32/70696_2.png) [@Cybjorg](https://devforum.zoom.us/u/Cybjorg)\
**Post date:** [August 14, 2025, 8:34pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-error-invalid-client/136424/3 "2025-08-14T20:34:15Z")

</div>

It looks like apps can only have one owner. Since I had my IT department create the app for me, I wasn’t able to authenticate even though I had the correct Client ID and Client Secret. It was only once the app ownership was transferred to me that I was able to authenticate successfully.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [August 15, 2025, 1:04pm UTC](https://devforum.zoom.us/t/server-to-server-oauth-error-invalid-client/136424/4 "2025-08-15T13:04:42Z")

</div>

Hi @Cybjorg  
That is correct. Glad you were able to troubleshoot this
