> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dintero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List terminals

> List terminals for the account. Filter by store, payout destination, status, device model, or serial number.

scopes:
- admin:accounts
- read:accounts




## OpenAPI

````yaml /mintlify-docs/openapi/spec-payments-v2.yaml get /accounts/{aid}/terminals
openapi: 3.0.0
info:
  title: Payments API v2
  contact:
    name: API Integration Support
    email: integration@dintero.com
  description: |
    Public endpoints for payments served under the account-scoped URL format
    `https://api.dintero.com/v1/accounts/{aid}/...`.
  version: LATEST
  license:
    name: UNLICENSED
    url: https://dintero.com
  x-logo:
    url: https://docs.dintero.com/img/dintero-dark-padded.svg
    altText: Dintero Logo
servers:
  - url: https://api.dintero.com/v1
security:
  - JWT: []
tags:
  - name: Transactions
    x-displayName: Transactions
    description: |
      View and perform operations on transactions
  - name: session
    x-displayName: Sessions
    description: |
      A Checkout Session relates to an order in your system.
      When an order has been placed you create a corresponding Checkout Session
      to receive payment for that order.
  - name: payment
    x-displayName: Payment
    description: |
      Resources used by the customer aka user to complete the payment of a
      session.
  - name: settlements
    x-displayName: Settlement reports
    description: Get settlement reports generated per payout
  - name: settlements.configuration
    x-displayName: Configuration
    description: Configure settlement reports
  - name: reports
    x-displayName: Reports
    description: List the generated monthly transaction reports
  - name: Sellers
    x-displayName: Sellers
    description: Manage the signup of a new Seller / Merchant account
  - name: example-session-callbacks
    x-displayName: Example Callbacks
    description: Example of callbacks delivered
  - name: v2-config-payout-destinations
    x-displayName: Sellers
    description: Get payout data for sellers
  - name: Card Tokens
    description: |
      Manage card tokens
  - name: terminals
    x-displayName: Terminals
    description: Terminal operations
  - name: v2-fund-transfers
    x-displayName: Fund transfers
    description: Transfer funds between sellers
  - name: payout-destinations
    x-displayName: payout destinations
    description: |
      Payout destinations
  - name: account-stores
    x-displayName: stores
    description: |
      Manage account stores
  - name: account-terminals
    x-displayName: terminals
    description: |
      Manage account terminals
  - name: report-configuration
    x-displayName: Report configuration
    description: Manage report configurations
  - name: kpi
    x-displayName: KPI
    description: Get KPI data
paths:
  /accounts/{aid}/terminals:
    get:
      tags:
        - account-terminals
      summary: aid_account_management_terminals_get
      description: >
        List terminals for the account. Filter by store, payout destination,
        status, device model, or serial number.


        scopes:

        - admin:accounts

        - read:accounts
      operationId: aid_account_management_terminals_get
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/PayoutDestinationId'
        - $ref: '#/components/parameters/StoreId'
        - $ref: '#/components/parameters/TerminalStatus'
        - $ref: '#/components/parameters/TerminalModel'
        - $ref: '#/components/parameters/TerminalSerialNumber'
        - $ref: '#/components/parameters/TerminalIncludes'
        - $ref: '#/components/parameters/TerminalId'
        - name: search
          in: query
          description: >
            Search terminals by device serial number, terminal id, or device
            model.
          example: '123444555679'
          schema:
            type: string
        - $ref: '#/components/parameters/startingAfter'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/TerminalCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - JWT: []
components:
  parameters:
    accountId:
      name: aid
      description: |
        An id that uniquely identifies the account.
      in: path
      required: true
      schema:
        type: string
        format: ^[PT]{1}\d{8}$
        minLength: 9
        maxLength: 9
    PayoutDestinationId:
      name: payout_destination_id
      description: Filter by Payout Destination ID
      in: query
      required: false
      example: PPD-MX9421N
      explode: true
      schema:
        type: array
        items:
          type: string
          maxItems: 10
    StoreId:
      name: store_id
      description: Filter by Store ID
      in: query
      required: false
      example: S312
      explode: true
      schema:
        type: array
        items:
          type: string
          maxItems: 10
    TerminalStatus:
      name: status
      description: Filter terminals by status
      in: query
      required: false
      example: ACTIVE
      explode: true
      schema:
        type: array
        items:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - PENDING
            - ACTION_REQUIRED
            - ERROR
            - DELETED
        maxItems: 10
    TerminalModel:
      name: device_model
      description: Filter terminals by device model
      in: query
      required: false
      example: SATURN1000
      explode: true
      schema:
        type: array
        items:
          type: string
          enum:
            - SATURN1000
            - Saturn_S1F4_Pro
            - S1P2
            - S1MINI2
            - S1U2
            - SIMULATED
        maxItems: 10
    TerminalSerialNumber:
      name: device_serial_number
      description: Filter terminals by device serial number
      in: query
      required: false
      example: '123444555679'
      explode: true
      schema:
        type: array
        items:
          type: string
        maxItems: 10
    TerminalIncludes:
      name: includes
      description: >
        Include related data. Use `store` to include basic store details along
        with the main payout destination for the store.
      in: query
      required: false
      example: store
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
            - store
        maxItems: 1
    TerminalId:
      name: terminal_id
      description: Filter by Terminal ID
      in: query
      required: false
      example: P12345678-T0075
      explode: true
      schema:
        type: array
        items:
          type: string
        maxItems: 10
    startingAfter:
      name: starting_after
      in: query
      description: |
        cursor for use in pagination. starting_after is an object ID
        that defines your place in the list. For instance, if you make
        a list request and receive 100 objects, end the result contains
          `paging_token=pt1`, your subsequent call can include
        `starting_after=pt1` in order to fetch the next page of the list.
      required: false
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: |
        A limit on the number of objects to be returned. Limit can range
        between 1 and 100 items, and the default is 10 items.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
  responses:
    TerminalCollection:
      description: List of terminals
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TerminalCollection'
    BadRequest:
      description: Bad / Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    AccessForbidden:
      description: Access forbidden, invalid JWT token was used
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    TerminalCollection:
      type: object
      additionalProperties: false
      required:
        - terminals
      properties:
        starting_after:
          type: string
        terminals:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/Terminal'
              - $ref: '#/components/schemas/TerminalReadOnly'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            code:
              type: string
              description: The code used to identify the error/warning
            errors:
              type: array
              description: The nested error(s) encountered during validation
              items:
                type: object
            message:
              type: string
              description: The human readable description of the error/warning
    Terminal:
      type: object
      allOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/TerminalUpdateInput'
        - type: object
          required:
            - terminal_id
            - device_serial_number
          properties:
            terminal_id:
              type: string
              example: T12233302-T0001
            device_serial_number:
              type: string
              example: '123444555679'
            status:
              $ref: '#/components/schemas/TerminalStatus'
            status_reason:
              $ref: '#/components/schemas/TerminalStatusReason'
    TerminalReadOnly:
      type: object
      properties:
        store:
          type: object
          description: >
            Store details are included when the `includes=store` query parameter
            is used.
          properties:
            id:
              type: string
            store_name:
              type: string
    Entity:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: |
            An UUID that uniquely identifies the resource
          readOnly: true
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
          readOnly: true
        created_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was last updated
          readOnly: true
        deleted_by:
          type: string
          example: 1c92f7e1-2897-4d46-bdcc-c127a914fb4e
          description: |
            The ID of the user/client created the resource
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          readOnly: true
    TerminalUpdateInput:
      type: object
      properties:
        device_model:
          $ref: '#/components/schemas/TerminalDeviceModel'
        store_id:
          type: string
    TerminalStatus:
      type: string
      description: >
        How far the terminal has got through setup, and whether it can take
        payments. Only an `ACTIVE` terminal can be used for a payment; a session
        referencing a terminal in any other status is rejected.


        This says nothing about whether the terminal is online right now - for
        that, send a [`poll_terminal` terminal
        operation](/docs/checkout/in-person/terminal-operations#check-that-a-terminal-is-reachable).


        - `PENDING`: The terminal has been registered and Dintero is configuring
        it. No action needed, the status updates on its own. See `status_reason`
        for what is currently happening.

        - `ACTION_REQUIRED`: Dintero has finished its side, and the terminal now
        has to fetch its configuration from its own on-screen menu before it can
        be activated. Also set when a configuration fetch was attempted and did
        not complete, in which case fetch the settings again.

        - `ACTIVE`: The terminal is configured and ready to accept payments.

        - `INACTIVE`: The device has been disabled and cannot take payments.
        Re-enabling it is not self-service - contact Dintero support.

        - `ERROR`: Setting up the terminal failed. Delete the terminal and
        register it again, or contact Dintero support.

        - `DELETED`: The terminal has been removed from the account. Register
        the terminal again to reuse it.
      readOnly: true
      enum:
        - DELETED
        - PENDING
        - ACTION_REQUIRED
        - ACTIVE
        - INACTIVE
        - ERROR
    TerminalStatusReason:
      type: string
      description: >
        Context explaining why the terminal has its current status.


        Applies to terminals with status `PENDING`:


        - `ADDING`: the terminal is being registered and configured to Dintero.

        - `ACTIVATING`: the terminal is being activated.


        Applies to terminals with status `ACTION_REQUIRED`:


        - `CHECK_UPDATE`: the terminal must fetch its settings, then run a
        `check_update` terminal operation to complete activation.

        - `START_ACTIVATION`: an activation task should be run to activate the
        terminal, using `POST /admin/terminals/{terminal_id}/activations`.
      enum:
        - ADDING
        - ACTIVATING
        - CHECK_UPDATE
        - START_ACTIVATION
    TerminalDeviceModel:
      type: string
      description: |
        Hardware model of the terminal.
        - `SATURN1000` — Saturn S1F2
        - `Saturn_S1F4_Pro` — Saturn S1F4 Pro
        - `S1P2` — Saturn S1P2
        - `S1MINI2` — Saturn S1MINI2
        - `S1U2` — Saturn S1U2
        - `SIMULATED` — Simulated terminal (sandbox accounts only)
      enum:
        - SATURN1000
        - Saturn_S1F4_Pro
        - S1P2
        - S1MINI2
        - S1U2
        - SIMULATED
  securitySchemes:
    JWT:
      type: http
      description: >
        Bearer authentication (token authentication) should be used for
        accessing the API.


        Use [Get Token](/api-reference/authenticate/aid_auths_oauth_token_post)
        to get an access token for client credentials.

        Pass the token in the request header:

            Authorization: Bearer {access_token}

        where the **access_token** is JSON Web Tokens (JWT).
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.