Invalid request: Client ID mismatch error

Description
I ran into error code 401, client ID mismatch when I try to follow the steps to retrieve the access_token from an user. I have no idea what the error is about, since I’ve double checked my client_id both in the request for user authorization and for the access token, and they seem to match.

Error
I20200522-17:39:30.567(-4)? response: {
I20200522-17:39:30.567(-4)? statusCode: 401,
I20200522-17:39:30.568(-4)? content: ‘{“reason”:“Invalid request : Client ID mismatch”,“error”:“invalid_client”}’,
I20200522-17:39:30.568(-4)? headers: {
I20200522-17:39:30.568(-4)? date: ‘Fri, 22 May 2020 21:39:30 GMT’,
I20200522-17:39:30.568(-4)? ‘content-type’: ‘application/json;charset=UTF-8’,
I20200522-17:39:30.568(-4)? ‘transfer-encoding’: ‘chunked’,
I20200522-17:39:30.568(-4)? connection: ‘close’,
I20200522-17:39:30.568(-4)? server: ‘ZOOM’,
I20200522-17:39:30.568(-4)? ‘x-zm-trackingid’: ‘WEB_c0b6183cd26e969c68bee52564ec2f2b’,
I20200522-17:39:30.568(-4)? ‘x-content-type-options’: ‘nosniff’,
I20200522-17:39:30.568(-4)? ‘content-security-policy’: “default-src https://.zoom.us https://zoom.us https://.zoom.com.cn https://zoom.com.cn https://d17o6on0vd932d.cloudfront.net blob: ‘self’; script-src ‘unsafe-eval’ ‘unsafe-inline’ blob: about: https://ajax.aspnetcdn.com/ajax/3.5/MicrosoftAjax.js https://appsforoffice.microsoft.com https://assets.zendesk.com https://autocomplete.demandbase.com https://cdn-javascript.net https://cdn-js.net https://cdn.wootric.com https://cdncache-a.akamaihd.net https://connect.facebook.net https://consent.trustarc.com https://d.adroll.mgr.consensu.org https://d2b9h3rz4xo53c.cloudfront.net https://d24cgw3uvb9a9h.cloudfront.net https://googleads.g.doubleclick.net https://pi.pardot.com https://ruanshi2.8686c.com https://s.dcbap.com https://s.ytimg.com https://s3.amazonaws.com https://scout-cdn.salesloft.com https://sealserver.trustwave.com https://secure-cdn.mplxtms.com https://serve2.cheqzone.com https://snap.licdn.com https://sp.analytics.yahoo.com https://static.zdassets.com https://static2.sharepointonline.com https://tag.demandbase.com https://tpc.googlesyndication.com https://tracking.g2crowd.com https://trk.techtarget.com https://www.comeet.co https://www.dropbox.com https://www.google-analytics.com https://www.googleadservices.com https://www.googletagmanager.com https://www.gstatic.com https://www.youtube.com https://d17o6on0vd932d.cloudfront.net https://.ada.support https://.adroll.com https://.google.com https://.hotjar.com https://.linkedin.com https://.zoom.us https://.zoomcloudpbx.com https://.zoomus.cn https://.zopim.com https://adroll.com https://google.com https://linkedin.com https://zoom.us https://zoom.com.cn https://.zoom.com.cn ‘self’; img-src https: http: about: blob: data: ‘self’; style-src https: safari-extension: chrome-extension: ‘unsafe-inline’ data: ‘self’; font-src https: safari-extension: chrome-extension: blob: data: ‘self’; connect-src * about: blob: data: ‘self’; media-src * rtmp: blob: data: ‘self’; frame-src https: ms-appx-web: zoommtg: zoomus: wvjbscheme: data: ‘self’”,
I20200522-17:39:30.568(-4)? ‘set-cookie’: [Array],
I20200522-17:39:30.568(-4)? p3p: ‘CP=“NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM”’,
I20200522-17:39:30.568(-4)? ‘cache-control’: ‘no-store’,
I20200522-17:39:30.569(-4)? pragma: ‘no-cache’
I20200522-17:39:30.569(-4)? },
I20200522-17:39:30.569(-4)? data: {
I20200522-17:39:30.569(-4)? reason: ‘Invalid request : Client ID mismatch’,
I20200522-17:39:30.569(-4)? error: ‘invalid_client’
I20200522-17:39:30.569(-4)? }
I20200522-17:39:30.569(-4)? }
I20200522-17:39:30.569(-4)? }

Which App Type (OAuth / Chatbot / JWT / Webhook)?
OAuth

Which Endpoint/s?

POST request at url:

https://zoom.us/oauth/token?grant_type=authorization_code&code=${code}&redirect_uri=http://44aedc9a.ngrok.io/redirect

header: {
Authorization: Basic ${hash}
}