Moov Authentication API

OAuth2 access token creation and revocation for API authentication.

OpenAPI Specification

moov-authentication-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Moov Accounts Authentication API
  description: The Moov API is a RESTful financial infrastructure platform that enables developers to integrate money movement capabilities into their applications. The API supports a full range of financial operations including account management, payment method onboarding, transfers, sweeps, refunds, dispute resolution, card issuing, and payment links. It provides capabilities for accepting payments, storing funds in digital wallets, sending money between accounts, and issuing cards for spend management. Authentication uses OAuth2 access tokens with permission scopes, and the API returns JSON responses using standard HTTP response codes.
  version: 2026.01.00
  contact:
    name: Moov Support
    url: https://docs.moov.io/
  termsOfService: https://moov.io/legal/platform-agreement/
servers:
- url: https://api.moov.io
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Authentication
  description: OAuth2 access token creation and revocation for API authentication.
paths:
  /oauth2/token:
    post:
      operationId: createAccessToken
      summary: Create an access token
      description: Exchange credentials for an OAuth2 access token. The token must be included as a Bearer token in the Authorization header for all subsequent API requests. Include the required scopes to grant permission for the operations you intend to perform.
      tags:
      - Authentication
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenRequest'
      responses:
        '200':
          description: Access token created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /oauth2/revoke:
    post:
      operationId: revokeAccessToken
      summary: Revoke an access token
      description: Revoke a previously issued OAuth2 access token to invalidate it immediately. Use this when a token is no longer needed or when rotating credentials.
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/RevokeTokenRequest'
      responses:
        '204':
          description: Token revoked successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    RevokeTokenRequest:
      type: object
      description: Request body for revoking an OAuth2 access token.
      required:
      - token
      properties:
        token:
          type: string
          description: The access token to revoke.
    Error:
      type: object
      description: Standard error response returned by the Moov API.
      properties:
        error:
          type: string
          description: Human-readable description of the error.
        code:
          type: string
          description: Machine-readable error code.
    AccessToken:
      type: object
      description: OAuth2 access token response from the Moov API.
      properties:
        access_token:
          type: string
          description: The bearer token to include in API request headers.
        token_type:
          type: string
          description: Token type, always "bearer".
          enum:
          - bearer
        expires_in:
          type: integer
          description: Number of seconds until the token expires.
        scope:
          type: string
          description: Space-separated list of granted permission scopes.
    TokenRequest:
      type: object
      description: Request body for creating an OAuth2 access token.
      required:
      - grant_type
      - client_id
      - client_secret
      properties:
        grant_type:
          type: string
          description: OAuth2 grant type. Use "client_credentials" for server-side integrations.
          enum:
          - client_credentials
        client_id:
          type: string
          description: The Moov API key public identifier.
        client_secret:
          type: string
          description: The Moov API key secret.
        scope:
          type: string
          description: Space-separated list of permission scopes to request. Scopes follow the pattern /accounts/{accountID}/transfers.write for resource-specific access, or /accounts.write for platform-level access.
  responses:
    Unauthorized:
      description: Authentication failed. Ensure a valid Bearer token is provided with the required scopes for this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or contained invalid parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth2 bearer token obtained from the /oauth2/token endpoint. Include in the Authorization header as "Bearer {token}".
externalDocs:
  description: Moov API Documentation
  url: https://docs.moov.io/api/