Moov Onboarding API

The Onboarding API from Moov — 2 operation(s) for onboarding.

Operations 4

POST /onboarding-invites Create onboarding invite #
GET /onboarding-invites List onboarding invites #
GET /onboarding-invites/{code} Get onboarding invite #
DELETE /onboarding-invites/{code} Revoke onboarding invite #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/moov:moov-onboarding-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

moov-onboarding-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Moov Onboarding API
  version: v2026.01.00
  contact:
    name: Moov Developer Support
    email: help@moov.io
    url: https://moov.io
  license:
    name: Unlicensed
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  description: 'Operations tagged Onboarding across 2 of this provider''s published API definitions: moov-api-v2026.01.00-openapi.yml, moov-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.moov.io
  description: Production API host
  variables: {}
security:
- BasicAuth: []
tags:
- name: Onboarding
paths:
  /onboarding-invites:
    post:
      operationId: createOnboardingInvite
      description: 'Create an invitation containing a unique link that allows the recipient to onboard their organization with Moov.


        To access this endpoint using an access token

        you''ll need to specify the `/accounts.write` scope.'
      parameters:
      - $ref: '#/components/parameters/VersionHeader'
      responses:
        '200':
          description: The request completed successfully.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvite'
        '400':
          description: The server could not understand the request due to invalid syntax.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '401':
          description: The request contained missing or expired authentication.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '403':
          description: The user is not authorized to make the request.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '404':
          description: The requested resource was not found.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '409':
          description: The request conflicted with the current state of the target resource.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '422':
          description: The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInviteError'
        '429':
          description: Request was refused due to rate limiting.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '500':
          description: The request failed due to an unexpected error.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '504':
          description: The request failed because a downstream service failed to respond.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
      tags:
      - Onboarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingInviteRequest'
      x-speakeasy-name-override: createInvite
      summary: Create onboarding invite
      x-summary-source: derived
    get:
      operationId: listOnboardingInvites
      description: 'List all the onboarding invites created by the caller''s account.


        To access this endpoint using an access token

        you''ll need to specify the `/accounts.read` scope.'
      parameters:
      - $ref: '#/components/parameters/VersionHeader'
      responses:
        '200':
          description: The request completed successfully.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnboardingInvite'
        '401':
          description: The request contained missing or expired authentication.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '403':
          description: The user is not authorized to make the request.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '429':
          description: Request was refused due to rate limiting.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '500':
          description: The request failed due to an unexpected error.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '504':
          description: The request failed because a downstream service failed to respond.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
      tags:
      - Onboarding
      x-speakeasy-name-override: listInvites
      summary: List onboarding invites
      x-summary-source: derived
    servers:
    - url: https://api.moov.io
      description: Production API host
      variables: {}
  /onboarding-invites/{code}:
    get:
      operationId: getOnboardingInvite
      description: 'Retrieve details about an onboarding invite.


        To access this endpoint using an access token

        you''ll need to specify the `/accounts.read` scope.'
      parameters:
      - $ref: '#/components/parameters/VersionHeader'
      - name: code
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OnboardingInviteCode'
      responses:
        '200':
          description: The request completed successfully.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvite'
        '401':
          description: The request contained missing or expired authentication.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '403':
          description: The user is not authorized to make the request.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '404':
          description: The requested resource was not found.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '429':
          description: Request was refused due to rate limiting.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '500':
          description: The request failed due to an unexpected error.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
        '504':
          description: The request failed because a downstream service failed to respond.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
      tags:
      - Onboarding
      x-speakeasy-name-override: getInvite
      summary: Get onboarding invite
      x-summary-source: derived
    delete:
      operationId: revokeOnboardingInvite
      description: 'Revoke an onboarding invite, rendering the invitation link unusable.


        To access this endpoint using an access token

        you''ll need to specify the `/accounts.write` scope.'
      parameters:
      - $ref: '#/components/parameters/VersionHeader'
      - name: code
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OnboardingInviteCode'
      responses:
        '204':
          description: The request completed successfully, but there is no content to return.
          headers:
            x-request-id:
              required: true
              description: A unique identifier used to trace requests.
              schema:
                type: string
      tags:
      - Onboarding
      x-speakeasy-name-override: revokeInvite
      summary: Revoke onboarding invite
      x-summary-source: derived
    servers:
    - url: https://api.moov.io
      description: Production API host
      variables: {}
components:
  schemas:
    CreateBusinessProfile:
      type: object
      required:
      - legalBusinessName
      properties:
        legalBusinessName:
          type: string
          maxLength: 64
          pattern: '[À-ÖØ-öø-ÿ"''(),.0-9A-Za-z~ &!+:/-]*'
          description: The legal name under which the entity is registered.
          example: Classbooker, LLC
        doingBusinessAs:
          type: string
          maxLength: 64
          pattern: '[À-ÖØ-öø-ÿ"''(),.0-9A-Za-z~ &!+:/-]*'
          description: A registered trade name under which the business operates, if different from its legal name.
        businessType:
          $ref: '#/components/schemas/BusinessType'
        address:
          $ref: '#/components/schemas/Address'
        phone:
          $ref: '#/components/schemas/PhoneNumber'
        email:
          $ref: '#/components/schemas/Email'
        website:
          type: string
          format: uri
          maxLength: 100
        description:
          type: string
          minLength: 10
          maxLength: 100
          pattern: '[a-zA-Z0-9,.\/?:''"|~!@#$%^&*()+_= -]+'
          example: Local fitness gym paying out instructors
        taxID:
          $ref: '#/components/schemas/TaxID'
        industryCodes:
          $ref: '#/components/schemas/IndustryCodes'
        industry:
          type: string
          description: Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.
          example: electronics-appliances
        primaryRegulator:
          $ref: '#/components/schemas/PrimaryRegulator'
    CreateIndividualProfile:
      type: object
      required:
      - name
      properties:
        name:
          $ref: '#/components/schemas/IndividualName'
        phone:
          $ref: '#/components/schemas/PhoneNumber'
        email:
          $ref: '#/components/schemas/Email'
        address:
          $ref: '#/components/schemas/Address'
        birthDate:
          $ref: '#/components/schemas/BirthDate'
        governmentID:
          $ref: '#/components/schemas/GovernmentID'
    CapabilityID:
      type: string
      enum:
      - transfers
      - send-funds
      - send-funds.push-to-card
      - money-transfer.push-to-card
      - send-funds.ach
      - send-funds.rtp
      - send-funds.instant-bank
      - collect-funds
      - collect-funds.card-payments
      - money-transfer.pull-from-card
      - collect-funds.ach
      - wallet
      - wallet.balance
      - card-issuing
      - issuing.cardholder
      - production-app
      - platform.production-app
      - platform.wallet-transfers
      description: 'Moov account capabilities.


        **Deprecated capabilities**


        The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.


        Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.


        The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.'
    Address:
      type: object
      required:
      - addressLine1
      - city
      - stateOrProvince
      - postalCode
      - country
      properties:
        addressLine1:
          type: string
          maxLength: 60
          pattern: '[a-zA-Z0-9,.\/?:''"|~!@#$%^&*()+_= -]+'
          example: 123 Main Street
        addressLine2:
          type: string
          maxLength: 32
          pattern: '[a-zA-Z0-9,.\/?:''"|~!@#$%^&*()+_= -]+'
          example: Apt 302
        city:
          type: string
          maxLength: 32
          pattern: '[a-zA-Z0-9,.\/?:''"|~!@#$%^&*()+_= -]+'
          example: Boulder
        stateOrProvince:
          type: string
          maxLength: 2
          example: CO
        postalCode:
          type: string
          maxLength: 5
          example: '80301'
        country:
          type: string
          maxLength: 2
          example: US
    OnboardingInviteRequest:
      type: object
      required:
      - scopes
      - capabilities
      - feePlanCodes
      properties:
        returnURL:
          type: string
          format: uri
          description: Optional URL to redirect the user to after they complete the onboarding process.
        termsOfServiceURL:
          type: string
          format: uri
          description: Optional URL to your organization's terms of service.
        scopes:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationScope'
          minItems: 1
          description: "  List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this\n  account. These values are used to determine what can be done with the account onboarded."
          example:
          - accounts.read
        grantScopes:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationScope'
          minItems: 0
          description: "  List of [scopes](https://docs.moov.io/api/authentication/scopes/) you grant to allow being used \n  by the new account on yourself. These values are used to determine what the account onboarded can do."
          example:
          - transfers.write
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/CapabilityID'
          minItems: 1
          description: "  List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/) you intend to request for this\n  account. These values are used to determine what information to collect from the user during onboarding."
          example:
          - collect-funds.card-payments
          - send-funds.ach
        feePlanCodes:
          type: array
          items:
            type: string
          minItems: 1
          description: List of fee plan codes to assign the account created by the invitee.
          example:
          - merchant-direct
        prefill:
          $ref: '#/components/schemas/CreateAccount'
      description: Request to create an onboarding invite.
    OnboardingInviteError:
      type: object
      properties:
        returnURL:
          type: string
        termsOfServiceURL:
          type: string
        scopes:
          $ref: '#/components/schemas/ArrayValidationError'
        capabilities:
          $ref: '#/components/schemas/ArrayValidationError'
        feePlanCodes:
          $ref: '#/components/schemas/ArrayValidationError'
    PhoneNumber:
      type: object
      properties:
        number:
          type: string
          maxLength: 10
          example: '8185551212'
        countryCode:
          type: string
          maxLength: 1
          example: '1'
    ManualTermsOfService:
      type: object
      required:
      - acceptedDate
      - acceptedIP
      - acceptedUserAgent
      - acceptedDomain
      properties:
        acceptedDate:
          type: string
          format: date-time
          description: The date and time the terms of service were accepted.
        acceptedIP:
          type: string
          description: The IP address (IPv4 or IPv6) from which the terms of service were accepted.
          example: 2001:db8::1
        acceptedUserAgent:
          type: string
          maxLength: 255
          description: The user-agent of the user making the request.
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36
        acceptedDomain:
          type: string
          format: uri
      description: Describes the acceptance of the Terms of Service. All data is required, and must be from the user.
      title: Manual
    BusinessType:
      type: string
      enum:
      - soleProprietorship
      - unincorporatedAssociation
      - trust
      - publicCorporation
      - privateCorporation
      - llc
      - partnership
      - unincorporatedNonProfit
      - incorporatedNonProfit
      - governmentEntity
      description: The type of entity represented by this business.
      example: llc
    CreateAccount:
      type: object
      required:
      - accountType
      - profile
      properties:
        accountType:
          $ref: '#/components/schemas/CreateAccountType'
        profile:
          $ref: '#/components/schemas/CreateProfile'
        metadata:
          $ref: '#/components/schemas/Metadata'
        termsOfService:
          $ref: '#/components/schemas/TermsOfServicePayload'
        foreignID:
          type: string
          maxLength: 64
          pattern: '[a-zA-Z0-9,.\/?:''"|~!@#$%^&*()+_= -]+'
          description: Optional alias from a foreign/external system which can be used to reference this resource.
        customerSupport:
          $ref: '#/components/schemas/CustomerSupport'
        settings:
          $ref: '#/components/schemas/Settings'
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/CapabilityID'
          description: 'Capabilities to request when the account is created. Request granular capability IDs that match your use case.


            Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.


            The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.'
          example:
          - collect-funds.card-payments
          - send-funds.ach
        mode:
          $ref: '#/components/schemas/Mode'
      example:
        accountType: business
        profile:
          business:
            legalBusinessName: Whole Body Fitness LLC
    Email:
      type: string
      maxLength: 255
      format: email
      example: jordan.lee@classbooker.dev
    Metadata:
      type: object
      additionalProperties:
        type: string
      description: Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
      example:
        optional: metadata
    BirthDate:
      type: object
      required:
      - day
      - month
      - year
      properties:
        day:
          type: integer
          example: 9
        month:
          type: integer
          example: 11
        year:
          type: integer
          example: 1989
    OnboardingInviteCode:
      type: string
      description: A unique code that identifies an onboarding invite.
      example: N1IA5eWYNh
    OnboardingPartnerAccount:
      type: object
      required:
      - accountID
      - accountMode
      - displayName
      properties:
        accountID:
          type: string
          description: The account ID of the partner that created the invite.
        accountMode:
          $ref: '#/components/schemas/Mode'
        displayName:
          type: string
          description: The name of the Moov account used to create the onboarding invite.
          example: Bob's Widgets
      description: The account that created the onboarding invite.
    ApplicationScope:
      type: string
      enum:
      - accounts.read
      - accounts.write
      - analytics.read
      - apple-pay-merchant.read
      - apple-pay-merchant.write
      - apple-pay.read
      - apple-pay.write
      - bank-accounts.read
      - bank-accounts.write
      - capabilities.read
      - capabilities.write
      - cards.read
      - cards.write
      - documents.read
      - documents.write
      - fed.read
      - files.read
      - files.write
      - issued-cards.read
      - issued-cards.write
      - issued-cards.read-private
      - payment-methods.read
      - ping.read
      - profile-enrichment.read
      - profile.read
      - profile.write
      - profile.disconnect
      - representatives.read
      - representatives.write
      - transfers.read
      - transfers.write
      - wallets.read
      description: A permission that the application requests on another account.
    OnboardingInvite:
      type: object
      required:
      - code
      - link
      - scopes
      - capabilities
      - feePlanCodes
      - createdOn
      properties:
        code:
          $ref: '#/components/schemas/OnboardingInviteCode'
        link:
          type: string
          format: uri
          description: A unique URL, including the invite code, that the recipient can follow to redeem the invitation.
        returnURL:
          type: string
          description: Optional URL to redirect the user to after they complete the onboarding process.
        termsOfServiceURL:
          type: string
          description: The terms of service URL set by the inviter.
        scopes:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationScope'
          minItems: 1
          description: 'List of [scopes](https://docs.moov.io/api/authentication/scopes/) you request to use on this

            account. These values are used to determine what can be done with the account onboarded.'
          example:
          - accounts.read
        grantScopes:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationScope'
          minItems: 0
          description: "  List of [scopes](https://docs.moov.io/api/authentication/scopes/) you grant to allow being used \n  by the new account on yourself. These values are used to determine what the account onboarded can do."
          example:
          - transfers.write
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/CapabilityID'
          minItems: 1
          description: "  List of [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/) you intend to request for this\n  account. These values are used to determine what information to collect from the user during onboarding."
          example:
          - collect-funds.card-payments
          - send-funds.ach
        feePlanCodes:
          type: array
          items:
            type: string
          minItems: 1
          description: List of fee plan codes to assign the account created by the invitee.
          example:
          - merchant-direct
        redeemedAccountID:
          type: string
          description: The account ID of the account that redeemed the invite.
        prefill:
          $ref: '#/components/schemas/CreateAccount'
        partner:
          $ref: '#/components/schemas/OnboardingPartnerAccount'
        createdOn:
          type: string
          format: date-time
        revokedOn:
          type: string
          format: date-time
        redeemedOn:
          type: string
          format: date-time
    CreateAccountType:
      type: string
      enum:
      - individual
      - business
    GovernmentID:
      type: object
      properties:
        ssn:
          type: object
          properties:
            full:
              type: string
              pattern: ^\d{3}[-]?\d{2}[-]?\d{4}$
            lastFour:
              type: string
        itin:
          type: object
          properties:
            full:
              type: string
              pattern: ^\d{3}[-]?\d{2}[-]?\d{4}$
            lastFour:
              type: string
    ACHPaymentSettings:
      type: object
      required:
      - companyName
      properties:
        companyName:
          type: string
          minLength: 1
          maxLength: 16
          pattern: '[a-zA-Z0-9- ]+'
          description: The description that shows up on ACH transactions. This will default to the account's display name on account creation.
          example: WholeBodyFitness
    CardPaymentSettings:
      type: object
      properties:
        statementDescriptor:
          type: string
          minLength: 4
          maxLength: 22
          pattern: '[a-zA-Z0-9.!*-+_ ]+'
          description: The description that shows up on credit card transactions. This will default to the accounts display name on account creation.
          example: Whole Body Fitness
      description: User provided settings to manage card payments. This data is only allowed on a business account.
    ArrayValidationError:
      type: object
      additionalProperties:
        type: string
      example:
        '0': first element failed validation...
    CreateProfile:
      type: object
      properties:
        individual:
          $ref: '#/components/schemas/CreateIndividualProfile'
        business:
          $ref: '#/components/schemas/CreateBusinessProfile'
    CustomerSupport:
      type: object
      properties:
        phone:
          $ref: '#/components/schemas/PhoneNumber'
        email:
          $ref: '#/components/schemas/Email'
        address:
          $ref: '#/components/schemas/Address'
        website:
          type: string
          format: uri
      description: 'User-provided information that can be displayed on credit card transactions for customers to use when

        contacting a customer support team. This data is only allowed on a business account.'
    GenericError:
      type: object
      required:
      - error
      properties:
        error:
          type: string
    PrimaryRegulator:
      type: string
      enum:
      - OCC
      - FDIC
      - NCUA
      - FRB
      - state-cu-regulator
      description: If the business is a financial institution, this field describes its primary regulator.
    Mode:
      type: string
      enum:
      - sandbox
      - production
      description: The operating mode for an account.
      example: production
    IndividualName:
      type: object
      required:
      - firstName
      - lastName
      properties:
        firstName:
          type: string
          maxLength: 64
          pattern: '[À-ÖØ-öø-ÿ"''(),.0-9A-Za-z~ &!-]*'
          description: The individual's first given name.
          example: Jordan
        middleName:
          type: string
          maxLength: 64
          pattern: '[À-ÖØ-öø-ÿ"''(),.0-9A-Za-z~ &!-]*'
          description: The individual's second given name, if any.
          example: Reese
        lastName:
          type: string
          maxLength: 64
          pattern: '[À-ÖØ-öø-ÿ"''(),.0-9A-Za-z~ &!-]*'
          description: The individual's family name.
          example: Lee
        suffix:
          type: string
          maxLength: 20
          pattern: '[À-ÖØ-öø-ÿ"''(),.0-9A-Za-z~ &!-]*'
          description: Suffix of a given name.
          example: Jr
    TermsOfServicePayload:
      type: object
      properties:
        token:
          type: string
        manual:
          $ref: '#/components/schemas/ManualTermsOfService'
    IndustryCodes:
      type: object
      properties:
        naics:
          type: string
          minLength: 2
          maxLength: 6
          example: '713940'
        sic:
          type: string
          minLength: 4
          maxLength: 4
          example: '7991'
        mcc:
          type: string
          minLength: 4
          maxLength: 4
          example: '7997'
    Settings:
      type: object
      properties:
        cardPayment:
          $ref: '#/components/schemas/CardPaymentSettings'
        achPayment:
          $ref: '#/components/schemas/ACHPaymentSettings'
      description: User provided settings to manage an account.
    TaxID:
      type: object
      required:
      - ein
      properties:
        ein:
          type: object
          properties:
            number:
              type: string
              example: 12-3456789
          required:
          - number
      description: An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN.
  parameters:
    VersionHeader:
      name: X-Moov-Version
      in: header
      required: false
      description: 'Set this header to v2026.01.00 to use the API described in this specification.

        When omitted, the server defaults to v2024.01.00, the earliest supported version, which may not match the behavior documented here.

        An unrecognized well-formed version uses the latest supported version that is not newer than the requested version, when one exists.

        For example, `v2026.08.00` uses `v2026.07.00`.

        A malformed value, such as `2022`, returns a `404` response.'
      schema:
        type: string
        enum:
        - v2026.01.00
        example: v2026.01.00
        x-speakeasy-ignore: true
      x-speakeasy-ignore: true
  securitySchemes:
    BasicAuth:
      type: http
      scheme: Basic
externalDocs:
  url: https://docs.moov.io/
  description: Moov Guides and API Documentation
x-refined-from:
- moov-api-v2026.01.00-openapi.yml
- moov-openapi.yml