OnPay · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the OnPay API

6 actions 6 updates update extends openapi/onpay-api-openapi.json
Derived by API Evangelist Built from the contracts OnPay publishes. OnPay did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-notex-apievangelist-profilex-apievangelist-enrichedx-api-accessx-apievangelist-corrected-tokenUrlx-token-lifetime-secondsx-refresh-tokenx-scope-semantics

Targets 6

$.info
$.servers
$.components.securitySchemes.OAuth2.flows.authorizationCode
$.components.securitySchemes.OAuth2
$.components.schemas.ErrorBadRequest
$.components.schemas.PaySchedule.properties.version

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the OnPay API
  version: 1.0.0
extends: openapi/onpay-api-openapi.json
x-provenance:
  generated: '2026-08-04'
  method: generated
  source: >-
    Enhancements derived from live probes of https://api.onpay.com/v2 and the published docs at
    https://onpay.readme.io. The harvested OpenAPI is never mutated; every correction below is an
    Overlay action so the provider's original document stays verbatim.
  findings:
  - The only servers[] entry is https://onpaydev.com/v2. That domain is parked (GoDaddy lander) and
    is not an OnPay API host. The live production host is https://api.onpay.com/v2, verified by the
    real error envelope it returns.
  - securitySchemes.OAuth2.flows.authorizationCode.tokenUrl is identical to authorizationUrl
    (.../app/oauth/authorize). The docs state the token endpoint is .../app/oauth/token. The spec's
    tokenUrl is wrong and would break any generated client.
  - The six oauth2 "scopes" are role names whose descriptions are the numeric access_type codes
    ("1".."6") returned in the token response, not human-readable scope descriptions.
  - All 58 operations lack an operationId, so no generated SDK, Arazzo workflow, or MCP tool can bind
    to a stable identifier.
  - ErrorBadRequest omits error_code, error_message and more_info, all of which the live API returns.
actions:
- target: $.info
  update:
    x-apievangelist-profile: https://apis.io/provider/onpay/
    x-apievangelist-enriched: '2026-08-04'
    x-api-access: partner-only
- target: $.servers
  update:
  - url: https://api.onpay.com/v2
    description: >-
      Production (verified live 2026-08-04). Added by API Evangelist — the document's only declared
      server, https://onpaydev.com/v2, resolves to a parked domain.
    x-apievangelist-added: true
- target: $.components.securitySchemes.OAuth2.flows.authorizationCode
  update:
    x-apievangelist-corrected-tokenUrl: https://app.onpay.com/app/oauth/token
    x-apievangelist-note: >-
      The document's tokenUrl duplicates authorizationUrl. https://onpay.readme.io/reference/authorization
      documents the token endpoint as /app/oauth/token.
    x-token-lifetime-seconds: 7200
    x-refresh-token: single-use
- target: $.components.securitySchemes.OAuth2
  update:
    x-scope-semantics: >-
      Scopes are OnPay role names; the description value on each is the numeric access_type code
      returned in the OAuth token response (Owner=1, Approver=2, Controller=3, Manager=4,
      Accountant=5, Employee=6).
- target: $.components.schemas.ErrorBadRequest
  update:
    x-apievangelist-observed-fields: [resp, error_code, error_message, message, more_info]
    x-apievangelist-note: >-
      The live API returns error_code, error_message and more_info in addition to the two declared
      properties. more_info points at https://docs.onpay.com, which does not resolve.
- target: $.components.schemas.PaySchedule.properties.version
  update:
    x-concurrency-token: true
    x-apievangelist-note: >-
      OnPay uses `version` for optimistic concurrency — a PATCH without the latest version is rejected
      with a version mismatch. See https://onpay.readme.io/reference/versioning.

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay 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 overlay
curl "https://apis.io/api/v1/overlays/onpay-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.