{"slug":"monzo","name":"Monzo","domain":"monzo.com","category":"Banking","summary":"You can register a Monzo Developer API OAuth client in minutes and connect your own account the same day, but Monzo's docs say this API is not for public apps: it only connects your account and a small set of users you explicitly allow. To let any Monzo customer connect, you have to use Monzo's Open Banking APIs, which are only for FCA-licensed third-party providers (AISP/PISP) using certificates and dynamic client registration.","tier":"gated","tierReason":"Public access needs regulated status as an Account Information or Payment Initiation Service Provider under PSD2; the self-serve Developer API is limited to you and a few allowed users.","quality":"researched","updatedAt":"2026-10-27","composio":{"status":"unknown","note":"Monzo isn't in Composio's managed-auth catalog, so plan to register your own Monzo OAuth client and pass its credentials to whatever OAuth client you use."},"totals":{"effort":null,"wait":null,"firstConnection":"Today, in about 15–30 minutes, for your own Monzo account through the Developer API"},"stages":[{"id":"build","name":"Your own account","whoCanConnect":"Only the Monzo account that owns the OAuth client","userSees":"A Monzo email sign-in (magic link), then a push notification in the Monzo app asking them to approve access with PIN, fingerprint or Face ID","effort":{"min":15,"max":30,"unit":"minutes"},"wait":{"min":0,"max":0,"unit":"minutes"},"unlock":"Explicitly allow a small set of other users (the process isn't documented publicly)","evidence":{"kind":"docs","sources":["s1","s5"],"confidence":"high"}},{"id":"beta","name":"Allowed users","whoCanConnect":"A small set of Monzo users you explicitly allow","userSees":"Same email plus in-app approval flow. Users who aren't allowed get a 'Whoops! There was a problem' page after the magic link","effort":null,"wait":null,"unlock":"Become an FCA-authorised AISP/PISP (or use a licensed provider) and integrate Monzo's Open Banking APIs","evidence":{"kind":"docs","sources":["s1","s3"],"confidence":"medium"}},{"id":"launch","name":"Open Banking (licensed TPP)","whoCanConnect":"Any Monzo customer, through the Open Banking consent flow","userSees":"An Open Banking consent screen, then approval in the Monzo app","effort":null,"wait":null,"unlock":null,"evidence":{"kind":"docs","sources":["s2"],"confidence":"high"}}],"requirements":[{"id":"monzo-account","label":"A Monzo account with the Monzo app","detail":"You sign in to the developer portal with your Monzo email and approve the login in the Monzo app. Community reports suggest business accounts may not be able to create clients.","stage":"build","actor":"you","evidence":{"kind":"docs","sources":["s1","s5"],"confidence":"medium"}},{"id":"redirect-endpoint","label":"A reachable redirect URI","detail":"Your OAuth client needs a callback URL that receives the authorization code and state.","stage":"build","actor":"agent","evidence":{"kind":"docs","sources":["s1","s5"],"confidence":"high"}},{"id":"fca-authorisation","label":"FCA authorisation as an AISP or PISP","detail":"Monzo's Open Banking APIs are for licensed third-party providers only. In the EU you need eIDAS QWAC and QSealC certificates from a QTSP that Monzo trusts.","stage":"launch","actor":"you","evidence":{"kind":"docs","sources":["s2"],"confidence":"high"}}],"steps":[{"id":"sign-in-portal","title":"Sign in to the Monzo developer portal","actor":"you","stage":"build","time":{"min":2,"max":5,"unit":"minutes"},"detail":"Go to developers.monzo.com, enter your Monzo email, click the magic link in the email, then approve the login in the Monzo app.","actions":["Open developers.monzo.com and choose to sign in","Enter the email for your Monzo account and submit","Click 'Log Into Monzo' in the email","Approve the request in the Monzo app"],"agentNote":"A person has to sign in and approve in the Monzo app. Once you're signed in, an agent can continue.","gotcha":"The portal shows a 'not authorised' alert until you approve in the app.","link":{"label":"Monzo developer portal","url":"https://developers.monzo.com/"},"evidence":{"kind":"community","sources":["s5"],"confidence":"medium"}},{"id":"create-client","title":"Create a confidential OAuth client","actor":"agent","stage":"build","time":{"min":3,"max":5,"unit":"minutes"},"detail":"Open Clients and click '+ New OAuth Client'. Fill in Name, Logo URL (optional), Redirect URLs (your redirect URI) and Description, and set Confidentiality to Confidential so Monzo issues refresh tokens.","actions":["Open Clients in the top-right menu","Click '+ New OAuth Client'","Name: something that identifies your project","Redirect URLs: your redirect URI","Confidentiality: Confidential","Submit"],"agentNote":"An agent can fill in and submit the form. It should stop before showing or copying the client secret.","gotcha":"Non-confidential clients get no refresh token, so users have to re-authenticate when the token expires (about 6 hours).","link":{"label":"Monzo developer portal","url":"https://developers.monzo.com/"},"evidence":{"kind":"docs","sources":["s1","s5"],"confidence":"high"}},{"id":"store-credentials","title":"Copy the client ID and secret into your OAuth client","actor":"you","stage":"build","time":{"min":2,"max":5,"unit":"minutes"},"detail":"Open the new client to see its Client ID and Client Secret. Store the secret in your OAuth client's configuration. The authorize URL is https://auth.monzo.com and the token endpoint is https://api.monzo.com/oauth2/token.","actions":["Open the client entry","Copy the Client ID","Copy the Client Secret into secure storage"],"agentNote":"A person handles the secret. An agent can enter the client ID and endpoints.","link":{"label":"Monzo developer portal","url":"https://developers.monzo.com/"},"evidence":{"kind":"docs","sources":["s1","s5"],"confidence":"medium"}},{"id":"test-connection","title":"Connect and approve in the Monzo app","actor":"you","stage":"build","time":{"min":2,"max":5,"unit":"minutes"},"detail":"Run the authorization flow, then approve the push notification in the Monzo app. Until you approve it, the token has no permissions. Within 5 minutes, sync full transaction history, because after that only the last 90 days are available.","actions":["Start the OAuth flow from your OAuth client","Click the email magic link","Approve the push notification in the Monzo app","Call /ping/whoami to confirm the token"],"agentNote":"An agent can start the flow and call /ping/whoami. A person has to approve in the app.","gotcha":"Each client holds only one active token per user. Getting a new token or refreshing invalidates the old one.","link":{"label":"Monzo API docs","url":"https://docs.monzo.com/"},"evidence":{"kind":"docs","sources":["s1"],"confidence":"high"}},{"id":"open-banking-route","title":"Use Open Banking for public access","actor":"you","stage":"launch","time":null,"detail":"For any Monzo customer to connect, get FCA authorisation as an AISP/PISP (or use a licensed provider). Then register through Open Banking dynamic client registration (POST /register, tls_client_auth) and test in Monzo's sandbox.","actions":["Obtain AISP/PISP authorisation","Get Open Banking (UK) or eIDAS QWAC/QSealC (EU) certificates","Register with POST /register using an SSA","Test in Monzo's Open Banking sandbox"],"agentNote":"Regulatory authorisation and certificates need a person. An agent can help with sandbox testing afterwards.","gotcha":"The Developer API client you created above can't be promoted to public use.","link":{"label":"Monzo Open Banking docs","url":"https://docs.monzo.com/open-banking"},"evidence":{"kind":"docs","sources":["s2"],"confidence":"high"}}],"blockers":[{"symptom":"Other users see 'Whoops! There was a problem' after clicking the magic link","cause":"The Developer API only allows your own account and users you explicitly allow","fix":"Ask Monzo to allow the specific users, or move to Open Banking for public access","evidence":{"kind":"community","sources":["s3","s1"],"confidence":"medium"}},{"symptom":"Token works but API calls return forbidden","cause":"The user hasn't approved access in the Monzo app yet","fix":"Have the user approve the push notification, then retry","evidence":{"kind":"docs","sources":["s1"],"confidence":"high"}},{"symptom":"Unable to create a new client in the portal","cause":"Reported to be related to signing in with a business account","fix":"Sign in with a personal Monzo account","evidence":{"kind":"community","sources":["s6"],"confidence":"low"}}],"unknowns":[{"question":"How do you explicitly allow other users on a Developer API client, and how many?","why":"The docs say 'a small set of users you explicitly allow' but don't describe a mechanism or a number","resolve":"Ask Monzo developer support or the Monzo developer community"},{"question":"How long does FCA AISP/PISP authorisation take, and are there faster routes such as acting as an agent of a licensed provider?","why":"This is outside Monzo's docs","resolve":"See the FCA's payment services authorisation guidance, or consider an Open Banking aggregator"}],"handoff":{"agentCan":["Fill in the new OAuth client form","Enter your redirect URI, client ID and endpoints in your OAuth client","Start test flows and call /ping/whoami"],"youMust":["Sign in with your Monzo email and approve in the Monzo app","Handle the client secret","Approve each connection in the Monzo app","Obtain FCA authorisation and certificates for public access"]},"sources":[{"id":"s1","title":"Monzo API documentation","url":"https://docs.monzo.com/","publisher":"Monzo docs","kind":"official","checkedAt":"2026-10-27"},{"id":"s2","title":"Monzo Open Banking documentation","url":"https://docs.monzo.com/open-banking","publisher":"Monzo docs","kind":"official","checkedAt":"2026-10-27"},{"id":"s3","title":"Monzo OAuth 'Whoops!' Error — Only Developer Account Can Connect","url":"https://community.monzo.com/t/monzo-oauth-whoops-error-only-developer-account-can-connect/180289","publisher":"Monzo Community","kind":"community","checkedAt":"2026-10-27"},{"id":"s4","title":"Using the Monzo API in a public facing app?","url":"https://community.monzo.com/t/using-the-monzo-api-in-a-public-facing-app/193416","publisher":"Monzo Community","kind":"community","checkedAt":"2026-10-27"},{"id":"s5","title":"Monzo Setup (monzo-api library docs)","url":"https://monzo-api.readthedocs.io/en/latest/monzo_setup.html","publisher":"Read the Docs (petermcd/monzo-api)","kind":"community","checkedAt":"2026-10-27"},{"id":"s6","title":"Unable to Create New Client","url":"https://community.monzo.com/t/unable-to-create-new-client/143337","publisher":"Monzo Community","kind":"search","checkedAt":null},{"id":"s7","title":"Composio managed auth toolkits","url":"https://docs.composio.dev/toolkits/managed-auth.md","publisher":"Composio docs","kind":"composio","checkedAt":"2026-10-27"}],"feedback":{}}