How to register your own Moneybird OAuth app

Register a Moneybird OAuth app and connect it to Tenklo

This guide shows you how to obtain the Client ID and Client Secret required to let users authorize access to Moneybird.

Create an external OAuth application

Sign in to Moneybird and open New application. Choose an external OAuth application rather than a personal API token, then enter a name your users will recognize.

Add the callback URL

For Tenklo Cloud, set the redirect URI to:

https://api.tenklo.dev/oauth/callback

For a self-hosted or local Tenklo environment, use the callback URL shown by that environment. Moneybird requires the client_id and redirect_uri in the authorization request to match the registered application exactly.

Copy the OAuth credentials

Save the Client ID and Client Secret generated by Moneybird. Treat the Client Secret as a credential and do not expose it to client-side code.

Configure scopes in Tenklo

Create the Moneybird integration in Tenklo and enter the Client ID and Client Secret. If no scope is supplied, Moneybird grants sales_invoices by default.

Add only the scopes your integration needs: sales_invoices, documents, estimates, bank, time_entries, or settings. Accessing contacts requires at least one scope other than time_entries from that list.

Moneybird returns both an access token and a refresh token. Access tokens currently do not expire, but Moneybird may add expiration in the future. Tenklo accepts the response without expires_in, retains the refresh token, and can use Moneybird's token endpoint for refresh requests. If Moneybird adds expires_in, Tenklo will also use it when scheduling token refreshes.

For more details, see Moneybird authentication.