Set up Enterprise SSO
Last reviewed: 2026-06-26
Scope: How to set up Enterprise SSO for JomeInvoice.
Enterprise SSO lets your employees sign in to JomeInvoice with their existing Microsoft 365 or Google Workspace account instead of a separate JomeInvoice password.
JomeInvoice uses SSO for login only. After a user signs in, their access inside JomeInvoice is still controlled by the workspace roles and permissions configured in JomeInvoice.
Enterprise SSO is configured in Settings > Workspace > Single Sign-On. You need workspace admin access in JomeInvoice and admin access to your Microsoft Entra ID or Google Workspace tenant.
What you need before setup
Your IT admin must create an SSO application in your identity provider and provide these values to the JomeInvoice workspace admin:
| Provider | Values needed |
|---|---|
| Microsoft Entra ID | Tenant ID, Client ID, Client Secret |
| Google Workspace | Workspace domain, Client ID, Client Secret |
You should also confirm:
- The email domains allowed to use SSO, for example
company.comorcompany.com.my. - The default JomeInvoice company and role for new SSO users.
- Whether password login should be blocked for users on verified SSO domains.
Do not send client secrets through plain email, Slack, WhatsApp, or any unencrypted channel. Use a secure password manager share, encrypted email, or another secure handoff method agreed with your team.
Step 1: Copy the redirect URI from JomeInvoice
- In JomeInvoice, go to Settings > Workspace.
- Open the Single Sign-On tab.
- Find the provider you want to configure.
- Copy the OAuth Redirect URI / Callback URL.
- Add that exact URL to your Microsoft Entra ID or Google Workspace application.
The redirect URI is environment-specific and provider-specific. It follows this format:
UAT Environment
https://api-staging.jomeinvoice.my/api/v1/sso/callback/{provider}/{company_slug}
Production Environment
https://api.jomeinvoice.my/api/v1/sso/callback/{provider}/{company_slug}
Examples of {provider} are microsoft and google.
Redirect URIs must match exactly. A different domain, path, provider, company slug, or trailing slash can cause a redirect_uri_mismatch error.
Step 2: Create the SSO app in Microsoft Entra ID
Use this section if your company uses Microsoft 365 or Office 365.
- Go to
https://entra.microsoft.com. - Sign in with your company admin account.
- Open Identity > Applications > App registrations.
- Click New registration.
- Enter a name, for example
JomeInvoice SSO. - For Supported account types, choose Accounts in this organizational directory only.
- Click Register.
- On the app overview page, copy the Application (client) ID.
- Copy the Directory (tenant) ID.
- Open Authentication.
- Click Add a platform.
- Choose Web.
- Paste the JomeInvoice OAuth Redirect URI / Callback URL copied from the SSO settings page.
- Click Configure.
- Open Certificates & secrets.
- Click New client secret.
- Enter a description, for example
JomeInvoice SSO secret. - Choose an expiry period and set a renewal reminder before it expires.
- Click Add.
- Copy the secret Value immediately.
Microsoft only shows the client secret value once. If you leave the page without copying it, you must create a new secret.
Microsoft OIDC details
JomeInvoice uses the standard OIDC authorization code flow.
| Item | Value |
|---|---|
| Authorization endpoint | https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize |
| Token endpoint | https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token |
| OIDC metadata | https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid-configuration |
| Required scopes | openid profile email |
| Response type | code |
| Flow | Authorization code flow |
JomeInvoice validates the Microsoft tenant ID and the user's email domain before allowing the user into the workspace.
Step 3: Create the SSO app in Google Workspace
Use this section if your company uses Gmail for business through Google Workspace.
- Go to
https://console.cloud.google.com. - Sign in with your Google Workspace admin account.
- Select an existing project or create a new project, for example
JomeInvoice SSO. - Open APIs & Services > OAuth consent screen.
- Complete the app information or branding form.
- Set the audience to Internal so only users in your Workspace can sign in.
- Open APIs & Services > Credentials.
- Click Create credentials > OAuth client ID.
- For Application type, choose Web application.
- Enter a name, for example
JomeInvoice SSO. - Under Authorized redirect URIs, paste the JomeInvoice OAuth Redirect URI / Callback URL copied from the SSO settings page.
- Leave Authorized JavaScript origins blank.
- Click Create.
- Copy the Client ID and Client Secret.
- Note your Workspace domain, which is the part after
@in your work email.
Google may only show the client secret once when the OAuth client is created. Copy it before closing the popup.
Step 4: Enter credentials in JomeInvoice
In Settings > Workspace > Single Sign-On, configure the provider.
- Enter a Configuration Name, for example
Company Microsoft SSOorCompany Google SSO. - Paste the Client ID from your identity provider.
- Paste the Client Secret.
- Confirm the read-only OAuth Redirect URI / Callback URL is the same URL configured in your identity provider.
- Under JIT Provisioning Defaults, choose the Default Company.
- Choose the Default Role for new SSO users.
- Turn on Enable SSO Configuration.
- If required, turn on Enforce SSO.
- Click Save Settings.
If the Client Secret field is left blank while editing an existing configuration, JomeInvoice keeps the existing secret.
Step 5: Configure domain routing
The SSO Domain Routing section controls which corporate email domains route to this SSO flow.
- Enter your corporate email domain, for example
company.com. - Click Add.
- Confirm the domain appears under Configured Domains.
Public email domains such as Gmail, Yahoo, and similar consumer domains are blocked. Use your company's corporate domain.
Step 6: Share the SSO login link
After SSO is enabled, use the SSO Login Link shown at the top of the Single Sign-On settings page.
The login link follows this format:
https://v2.jomeinvoice.my/auth/{company_slug}/login
Share this URL with users who should sign in through corporate SSO.
First-time SSO users
When a valid user signs in with SSO for the first time:
- JomeInvoice checks whether a user with the same email already exists.
- If the user does not exist, JomeInvoice creates the user and marks the email as verified.
- JomeInvoice adds the user to the default company configured in JIT Provisioning Defaults.
- JomeInvoice assigns the configured default role.
- The user can access the workspace based on JomeInvoice roles and permissions.
If the user was already invited to the workspace with a specific role, JomeInvoice keeps the existing role. SSO does not overwrite invited or manually assigned roles.
What Enforce SSO does
When Enforce SSO is turned on, users on verified SSO domains cannot use standard password login for that workspace. They should use the SSO login link instead.
Use this only after the provider configuration, redirect URI, domain routing, and at least one admin login have been tested.
What SSO does not change
Enterprise SSO does not replace JomeInvoice roles and permissions.
For the current SSO setup:
- JomeInvoice does not map Microsoft Entra ID groups to JomeInvoice roles.
- JomeInvoice does not map Google Workspace groups to JomeInvoice roles.
- New SSO users receive the configured default JomeInvoice role.
- Workspace admins can adjust user roles later in JomeInvoice.
- SAML, SCIM, directory sync, and single logout are not included unless separately agreed.
Troubleshooting
| Issue | What to check |
|---|---|
redirect_uri_mismatch |
The redirect URI in the identity provider must exactly match the JomeInvoice callback URL shown in Settings. |
| Email domain is not authorised | Confirm the user's email domain is listed in SSO Domain Routing. |
| User signs in but cannot see the workspace | Confirm JIT Provisioning Defaults have a default company and default role, or confirm the user was invited to the workspace. |
| SSO button or provider is unavailable | Confirm Enable SSO Configuration is turned on for the provider. |
| User cannot use password login | Enforce SSO may be turned on. Use the SSO login link. |
Microsoft shows Need admin approval |
Ask the Entra admin to grant admin consent for the app. |
| Google consent screen blocks users | Confirm the OAuth consent screen is saved and the audience is set correctly. |