Every action inside Play Console is gated by a permission, and in 2026 those permissions are organised on three axes: the access level of the person, the scope of the grant, and an optional expiry date. Get the combination right and a contractor can upload a closed-test build without ever seeing your revenue reports. Get it wrong and a reviewer who was only supposed to answer user comments can push a release to production. This guide walks the Users and permissions page end to end — access levels, account versus app scope, permission groups, expiry dates, removal — and finishes with the parts of team access that do not live inside Play Console at all.
Three access levels, and the one that cannot be replaced
Before you add anyone, decide which of the three levels you are handing out, because only one of them is irreplaceable.
- Account owner — the first registered account in Play Console. It has full access, and it is the only level that can invite and remove users and manage individual permissions. It is also the only account that can hold a linked payments profile for selling paid apps, and the only one that can open and edit the Payments settings page. Developer account information can only be changed by the account owner as well.
- Admin — any account carrying the Admin (all permissions) permission. Admins can be scoped to all apps or to specific apps, can invite and remove users, and can manage individual permissions. They do not pay the $25 registration fee.
- User — any other level of access, again scoped either to all apps or to specific apps. Users cannot invite people or edit permissions, and they do not pay the registration fee either.
The operational consequence is simple: keep at least one admin at account level so that user management never depends on a single login. Adding someone as a user does not transfer ownership of the account, no matter how many permissions you switch on for them.
Step 1 — Decide between account access and app access
Every grant is either account level (it applies to all apps, including apps you add later) or app level (it applies only to the apps you select). Google's documentation is explicit that some permissions exist at only one of the two levels, which is why the same idea can appear twice under slightly different names:
- View app information (read-only) is the app-level permission; its account-level sibling is View app information and download bulk reports (read-only).
- Edit and delete draft apps (app) versus Create, edit, and delete draft apps (account). To actually create a new draft app you need the account-level version, and you also need the account-level read-only view permission alongside it.
- View financial data (app) versus View financial data, orders, and cancellation survey responses (account).
- The games services permissions, Edit Google Play games services projects and Publish Google Play games services projects, are account level only.
Note what neither of the draft-app permissions does: they do not publish anything. Google deliberately separates "prepare a release" from "release to production", and the permission names carry that distinction.
Step 2 — Add users and switch permissions on or off
- Open Play Console and go to Users and permissions. To change an existing person, click anywhere on their row. To add someone new, type their email address and set an access expiry date if the access is temporary.
- Choose the scope. Use the App permissions tab for per-app grants — select Add app, pick the apps, then Apply — or the Account permissions tab for grants that should cover every app in the developer account.
- Click Invite user. You need the Admin (all permissions) permission at account level to do this at all.
Two details catch people out. The invited person must sign in with exactly the email address you invited — not an alias, and not a personal Gmail address if you invited a company one. And if you leave the expiry field empty, the access never lapses on its own; it stays indefinitely until somebody removes it.
Permission groups, for teams instead of individuals
Once more than a handful of people need the same shape of access, stop editing people one at a time and create a permission group instead. Go to Users and permissions → Permission Groups → Create permission group, give it a name, optionally tick Set access expiry date, add an internal description that only the account's admins can read, select the app and account permissions you want the group to carry, then add the members on the Users in this group tab and click Create group. Everyone in the group inherits those grants, and deleting the group withdraws them from all of its members at once. If you skip the expiry date, the permissions the group hands out do not expire by themselves.
Invitations and expiry dates
- After you send an invitation the address is listed with the status Invite sent. When the person accepts, the status changes to Active and the account owner receives a confirmation email.
- An invitation that is not accepted and signed in to within 30 days expires, and the admin has to resend it. Nothing is lost, but nothing is granted either.
- To extend access: Users and permissions → Manage users, select the people, click Extend access, choose the new duration, then Extend access followed by Confirm. For a single person, open their row and tick Set access expiry to enter a specific date.
- To remove access: same page, select the users, choose Remove, then Save changes — or open the user's row and select Remove user.
What the "Admin (all permissions)" switch really does
The generic admin permission behaves differently depending on where you grant it. An admin scoped per app can see every user who has permission to access the same apps, but cannot remove a user whose access is global. An admin holding the permission globally can additionally change access expiration dates and review what happened in the account through the Activity log. If your internal controls depend on somebody being able to audit who changed what, that is the distinction that matters — and it is the reason a global admin grant deserves a written reason.
Permissions that live outside Play Console
Three surprises worth planning for:
- Google payments centre is separate. Play Console permissions do not grant payments-centre reporting. Add the same person there too: payments centre → Settings → Payments users → Manage Payments Users → Add a new user → Invite.
- Games services projects need matching access in the Google Developers Console, on top of the Play Console permission. Games services financial data requires both the account-level financial permission and the app-level View financial data permission for at least one linked app.
- Account Groups do not share access. Creating or joining an Account Group is required to enrol in the 15% service-fee tier, and admins of the Primary Developer Account manage the group — but nobody, including the Primary Developer Account, gains access to another account's financial data, publishing rights or similar permissions unless that account's own admins explicitly add them as a user.
When the permissions are wrong
The most common symptom is Error 403 inside Play Console: the person signs in, the app is visible, but a section refuses to load. That is a missing permission rather than a broken account, and the fix is to ask the account owner to grant the permission for that app. Other patterns are worth recognising in advance. Someone who can upload files but cannot send a release to production is missing Release to production, exclude devices, and use Play App Signing. Someone who does hold that permission is one mis-click away from a live release, so when the job only needs a testing track, grant Release apps to testing tracks alone — it covers draft uploads, testing releases, .obb files, internal sharing and release notes, and it cannot publish to production. And somebody who can refund orders and cancel subscriptions still cannot see aggregate financial reports unless they also hold a financial data permission.
Checklist before you hand out access
- Does this person need account scope, or only one app?
- Is the access temporary? If so, set the expiry date at the moment you invite them.
- Does the job involve publishing to production, or only to a testing track?
- Do they need production publishing but not store listing or pricing changes?
- Will they reply to reviews, manage policy declarations, or handle orders and refunds?
- If financial data is involved, do they also need to be added in the payments centre?
- Is there a second account-level admin, so user management never depends on one login?
The one-line model: the account owner is the only irreplaceable level and the only one that can manage payments; admins can be delegated but their power differs depending on whether the grant is global or per app; every permission is either account-wide or app-only, and some only exist at one of the two; and any grant without an expiry date is permanent until somebody removes it. Grant the narrowest permission that does the job, and set the end date when you start.