openapi: 3.2.0 info: title: Moov Account Terminal Applications 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 Account Terminal Applications 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: Account Terminal Applications paths: /accounts/{accountID}/terminal-applications: post: operationId: linkAccountTerminalApplication description: 'Link an account with a terminal application. To access this endpoint using an access token you''ll need to specify the `/accounts/{accountID}/terminal-applications.write` scope.' parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: $ref: '#/components/schemas/MerchantAccountID' 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/AccountTerminalApplication' '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/AccountTerminalApplicationError' '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: - Account Terminal Applications requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LinkAccountTerminalApplication' x-speakeasy-name-override: link summary: Link account terminal application x-summary-source: derived get: operationId: listAccountTerminalApplications description: 'Retrieve all terminal applications linked to a specific account. To access this endpoint using an access token you''ll need to specify the `/accounts/{accountID}/terminal-applications.read` scope.' parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: $ref: '#/components/schemas/MerchantAccountID' 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/AccountTerminalApplication' '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: - Account Terminal Applications x-speakeasy-name-override: list summary: List account terminal applications x-summary-source: derived servers: - url: https://api.moov.io description: Production API host variables: {} /accounts/{accountID}/terminal-applications/{terminalApplicationID}: get: operationId: getAccountTerminalApplication description: 'Verifies if a specific Terminal Application is linked to an Account. This endpoint acts as a validation check for the link''s existence. To access this endpoint using an access token you''ll need to specify the `/accounts/{accountID}/terminal-applications.read` scope.' parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: $ref: '#/components/schemas/MerchantAccountID' - name: terminalApplicationID in: path required: true schema: $ref: '#/components/schemas/TerminalApplicationID' 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/AccountTerminalApplication' '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: - Account Terminal Applications x-speakeasy-name-override: get summary: Get account terminal application x-summary-source: derived servers: - url: https://api.moov.io description: Production API host variables: {} /accounts/{accountID}/terminal-applications/{terminalApplicationID}/configuration: get: operationId: getTerminalConfiguration description: 'Fetch the configuration for a given Terminal Application linked to a specific Account. To access this endpoint using an access token you''ll need to specify the `/accounts/{accountID}/terminal-configuration.read` scope.' parameters: - $ref: '#/components/parameters/VersionHeader' - name: accountID in: path required: true schema: $ref: '#/components/schemas/MerchantAccountID' - name: terminalApplicationID in: path required: true schema: $ref: '#/components/schemas/TerminalApplicationID' 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/TerminalConfiguration' '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: - Account Terminal Applications x-speakeasy-name-override: getConfiguration summary: Get terminal configuration x-summary-source: derived servers: - url: https://api.moov.io description: Production API host variables: {} components: schemas: TerminalApplicationID: type: string description: ID of the terminal application. example: 12345678-1234-1234-1234-123456789012 AccountTerminalApplicationError: type: object properties: terminalApplicationID: type: string LinkAccountTerminalApplication: type: object required: - terminalApplicationID properties: terminalApplicationID: $ref: '#/components/schemas/TerminalApplicationID' description: Describes a request to link an account with a terminal application. MerchantAccountID: type: string description: ID of the merchant account. example: 76d4c8a0-1f2b-4e3b-8f5c-7a9e1b2c3d4e TerminalConfiguration: type: object required: - configuration properties: configuration: type: string description: Describes a terminal configuration. example: configuration: Zm9vYmFyCg== GenericError: type: object required: - error properties: error: type: string AccountTerminalApplication: type: object required: - accountID - terminalApplicationID properties: accountID: $ref: '#/components/schemas/MerchantAccountID' terminalApplicationID: $ref: '#/components/schemas/TerminalApplicationID' description: Describes link between an account and a terminal application. 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