OnPay · OAuth Scopes

OnPay OAuth Scopes

OAuth 2.0 searched

OnPay publishes 6 OAuth 2.0 scopes via the authorizationCode flow. Scopes are the fine-grained permissions an application requests at authorization time to act against the OnPay API on a user’s behalf.

Tokens are issued from https://app.onpay.com/app/oauth/authorize.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

PayrollHuman ResourcesEmployee Benefitspayroll-taxSmall BusinessWorkforce ManagementFintechHR TechTime and Attendanceretirement-401k
Scopes: 6 Flows: authorizationCode Method: searched

OAuth endpoints

Authorization URL
https://app.onpay.com/app/oauth/authorize
Token URL
https://app.onpay.com/app/oauth/authorize
Flows
authorizationCode

Scopes (6)

ScopeDescriptionFlows
Owner OnPay company owner. Accepted on all 58 operations. authorizationCode
Approver Payroll approver. Accepted on all 58 operations, same reach as Owner in this spec. authorizationCode
Controller Restricted role. Accepted on 8 operations only — employee deduction reads, recent notes, termination and rehire, worksite reads, and pay-schedule dates. authorizationCode
Manager Restricted role. Accepted on the same 8 operations as Controller. authorizationCode
Accountant Declared in the securityScheme but required by ZERO operations in the published spec — an accountant-scoped token authorizes nothing the document describes. authorizationCode
Employee Self-service role. Accepted on 2 operations only — GET /employees/{employee_id}/deductions and GET /user. authorizationCode

Source

OAuth Scopes

Raw ↑
generated: '2026-08-04'
method: searched
source: openapi/onpay-api-openapi.json
docs: https://onpay.readme.io/reference/authorization
model: role-based
note: >-
  OnPay's OAuth 2.0 "scopes" are not permission strings — they are the platform's six USER ROLES, and
  the description on each in the OpenAPI is the numeric `access_type` code that the token response
  returns (Owner=1, Approver=2, Controller=3, Manager=4, Accountant=5, Employee=6). There is no
  read/write split, no resource-scoped grant, and no published scopes reference page: a partner
  receives whatever the authorizing user's role allows. The operation counts below are derived from
  the per-operation security[] requirements across all 58 operations.
schemes:
- name: OAuth2
  source: openapi/onpay-api-openapi.json
  flows:
  - flow: authorizationCode
    authorizationUrl: https://app.onpay.com/app/oauth/authorize
    tokenUrl: https://app.onpay.com/app/oauth/authorize
    tokenUrl_documented: https://app.onpay.com/app/oauth/token
scopes:
- scope: Owner
  access_type: 1
  description: OnPay company owner. Accepted on all 58 operations.
  operations: 58
  flows: [authorizationCode]
  sources: [openapi/onpay-api-openapi.json]
- scope: Approver
  access_type: 2
  description: Payroll approver. Accepted on all 58 operations, same reach as Owner in this spec.
  operations: 58
  flows: [authorizationCode]
  sources: [openapi/onpay-api-openapi.json]
- scope: Controller
  access_type: 3
  description: >-
    Restricted role. Accepted on 8 operations only — employee deduction reads, recent notes,
    termination and rehire, worksite reads, and pay-schedule dates.
  operations: 8
  flows: [authorizationCode]
  sources: [openapi/onpay-api-openapi.json]
- scope: Manager
  access_type: 4
  description: Restricted role. Accepted on the same 8 operations as Controller.
  operations: 8
  flows: [authorizationCode]
  sources: [openapi/onpay-api-openapi.json]
- scope: Accountant
  access_type: 5
  description: >-
    Declared in the securityScheme but required by ZERO operations in the published spec — an
    accountant-scoped token authorizes nothing the document describes.
  operations: 0
  flows: [authorizationCode]
  sources: [openapi/onpay-api-openapi.json]
- scope: Employee
  access_type: 6
  description: >-
    Self-service role. Accepted on 2 operations only — GET /employees/{employee_id}/deductions and
    GET /user.
  operations: 2
  flows: [authorizationCode]
  sources: [openapi/onpay-api-openapi.json]
gaps:
- No scopes/permissions reference page exists in the docs; the ReadMe hub's llms.txt lists every page
  it has and there is no permissions article.
- Roles are coarse — Owner and Approver both unlock every write in the API, including
  POST /employees/{employee_id}/termination and PUT /employees/{employee_id}/bank-accounts. There is
  no read-only grant an integration can request.
- The Accountant role is declared but unused, so its meaning cannot be verified from the contract.
x-evidence:
- url: https://onpay.readme.io/reference/authorization.md
  http_status: 200
  fetched: '2026-08-04'
- url: https://onpay.readme.io/llms.txt
  http_status: 200
  fetched: '2026-08-04'

Work with this as data

Every scope set here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This scope set
curl "https://apis.io/api/v1/scopes/onpay-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.