# Illegal base64 character 28

**URL:** <https://devforum.zoom.us/t/illegal-base64-character-28/70366>\
**Category:** API and Webhooks\
**Created:** [June 11, 2022, 3:07pm UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366 "2022-06-11T15:07:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kowalski.k](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kowalski.k/32/38400_2.png) [@kowalski.k](https://devforum.zoom.us/u/kowalski.k)\
**Post date:** [June 11, 2022, 3:07pm UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366/1 "2022-06-11T15:07:35Z")

</div>

**Description**  
_Details on your question or the problem you’re trying to solve._  
I’m trying to get access token according to this guide: [Create a Server-to-Server OAuth App](https://marketplace.zoom.us/docs/guides/build/server-to-server-oauth-app#make-api-calls-to-zoom-endpoints)  
I’m using server-to-server app, that is activated, I have replaced clientId, clientSecret and accountId with according strings. I also tried to encode it to base64 (as in `toBase64('clientId:clientSecret')`, replaced ofc). Tried without encoding too.

**Error?**

I keep getting `{"status":false,"errorCode":-1,"errorMessage":"Illegal base64 character 28","result":null}`  
_The full error message or issue you are running into, where applicable._

**API Endpoint/s?**  
_Share the API endpoint/s you’re working with to help give context._  
oauth/token?grant\_type=account\_credential&account\_id={accountId}

**How To Reproduce**  
The easiest via node js:  
import fetch from “node-fetch”  
;(async () =\> {  
const res = await fetch(  
“[https://zoom.us/oauth/token?grant\_type=account\_credentials&account\_id=A](https://zoom.us/oauth/token?grant_type=account_credentials&account_id=A)”,  
{  
headers: {  
Authorization: `Basic Base64Encoder(${btoa( "B:C" )})`,  
},  
method: “POST”,  
}  
)  
console.log(await res.text())  
})()

_Steps to reproduce the behavior:_  
_1. Request URL / Headers (without credentials) / Body_  
_2. Authentication method or app type_  
_3. Any errors_

**Additional context**  
_Add any other context about the problem here._

---

<div class="post-metadata">

**Author:** ![regit](https://avatars.discourse-cdn.com/v4/letter/r/6a8cbe/32.png) [@regit](https://devforum.zoom.us/u/regit)\
**Post date:** [August 4, 2022, 2:04am UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366/2 "2022-08-04T02:04:13Z")

</div>

Hi,

I got ‘Illegal base64 character 28’ error, too.

Can someone help?

---

<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 4, 2022, 2:10pm UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366/3 "2022-08-04T14:10:54Z")

</div>

Hi @kowalski.k and @regit  
Are you still experiencing this issue?  
Please refer to the following guide to make sure you are setting up your app correctly:

> [@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…

Cheers,  
Elisa

---

<div class="post-metadata">

**Author:** ![joey.grover](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/joey.grover/32/38861_2.png) [@joey.grover](https://devforum.zoom.us/u/joey.grover)\
**Post date:** [August 16, 2022, 6:04pm UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366/4 "2022-08-16T18:04:40Z")

</div>

For me the Curl command to encode the clientID and secret wasn’t working and giving the same error. So instead I just encoded them in a different command, copied that value into the Curl request and it worked.

`echo -n clientId:clientSecret | base64`

Printed:  
`encodedCharacters`

`curl -X POST -H "Authorization: Basic encodedCharacters" "https://zoom.us/oauth/token?grant_type=account_credentials&account_id={accountId}"`

---

<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 17, 2022, 10:46pm UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366/5 "2022-08-17T22:46:52Z")

</div>

Thanks for sharing this with the community @joey.grover  
I appreciate it

---

<div class="post-metadata">

**Author:** ![jackylau](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jackylau/32/46618_2.png) [@jackylau](https://devforum.zoom.us/u/jackylau)\
**Post date:** [March 20, 2023, 5:20pm UTC](https://devforum.zoom.us/t/illegal-base64-character-28/70366/6 "2023-03-20T17:20:32Z")

</div>

Thank you very much @joey.grover for guidance, I am using on “OAuth Server to Server”, this problem has troubled me for over a week
