# Lists merchant's terminals

GET {{baseURL}}/v2/terminals
This endpoint lists all available terminals for the authenticated merchant.
Only active terminals are returned.
Terminals in the following conditions are excluded:
* Pre-activation states, such as pending shipment or in transit
* Deactivated terminals

This endpoint requires a merchant API token.
A partner API token will result in a permissions error including possibly a 403 response.
See Also:
To retrieve a terminal's status by ID, see GET /v2/terminals/{terminalId}/status.

Endpoint: GET /v2/terminals
Version: V2 Beta
Security: Bearer

## Security:

  - `Bearer` (unknown)
    http bearer JWT

## Query parameters:

  - `pageIndex` (integer)
    Specifies the page number of the returned search results.

A page is considered each set of the `pageSize` values.

The page count is zero-based.
The maximum for `pageIndex`, or the page number, is the `pageSize` divided by the `total` count rounded down.
For example, the `pageSize` is 50 and the `total` is 130.
That means there are three pages, but the `pageIndex` value is in the inclusive range from zero to two.

Value restrictions include:
* A value less than zero is not permitted.<br>
* Values equal to or greater than `totalPages` end successfully but will not return any items.

For page size information, see `pageSize`.

Example: 0

  - `pageSize` (integer)
    Specifies the number of items for each page of the returned search results.

A page is considered each set of the `pageSize` values.

The page count is zero-based.
The maximum for `pageIndex`, or the page number, is the `pageSize` divided by the `total` count rounded down.
For example, the `pageSize` is 50 and the `total` is 130.
That means there are three pages, but the `pageIndex` value is in the inclusive range from zero to two.

For page numbering information, see `pageIndex`.

Example: 50

  - `sortBy` (string)
    Specifies a field name to sort the results by.

If null or omitted, results come back newest first.

The sort order is specified by the `sortOrder` value.

The following fields may be used to sort results:<br>
createdOn<br>
serialNumber<br>
terminalModel<br>
terminalManufacturer<br>
merchantCompanyName

Example: terminalManufacturer

  - `sortOrder` (string)
    Specifies the sort order.

The sort order is specified by the `sortOrder` value.<br>
The field that gets sorted by is specified by the `sortBy` value.

Valid values are:

| Value  | Description                                               |
| ------ | --------------------------------------------------------- |
| asc    | Sorts results in ascending order, from the lowest value to the highest, or from the oldest timestamp to the most recent. |
| desc   | Sorts results in descending order, from the highest value to the lowest, or from the most recent timestamp to the oldest. |

  - `terminalStatus` (string)
    Indicates the availability status of the terminal.

Valid values are:

| Status  | Meaning                                            |
|---------|----------------------------------------------------|
| Busy    | The terminal is processing a transaction.          |
| Ready   | The terminal is available for a new transaction.   |
| Offline | The terminal is unavailable for a new transaction. |

Example: Ready

  - `terminalMode` (string)
    Indicates the operating mode of the terminal.

Valid values are:
| Mode            | Meaning |
|-----------------|---------|
| Standalone      | The terminal operates independently of any POS system.<br><br>The amount is entered directly on the terminal itself (no electronic connection to a cash register/POS software), and it runs the transaction on its own. |
| SemiIntegrated  | The terminal is connected to a POS system, typically through a network or cable.<br><br>The POS sends the transaction amount to the terminal electronically, rather than requiring manual entry. However, the POS never touches card or payment data directly. The terminal handles all sensitive payment processing itself. This architecture is commonly used to reduce PCI compliance scope on the POS side. |

Example: SemiIntegrated

  - `connectionStatus` (string)
    Indicates the line status of the terminal.

Valid values are:

| Status  | Meaning |
|---------|---------|
| Online  | The terminal is currently connected and reachable.<br><br>It has active network or internet connectivity. It is able to process transactions and communicate with the backend in real time. |
| Offline | The terminal is disconnected or unreachable.<br><br>It may be powered off, have lost its network connection, or otherwise be unable to communicate. As a result, it cannot process transactions, or can only do so in a stored or deferred mode depending on the platform. |

Example: Online

  - `serialNumber` (string)
    Filters by the serial number.

This is an exact match search.

Example: SN100001

  - `search` (string)
    Filters using a search string.

This performs a case-insensitive search that matches exactly or partially.
Multiple fields may be included to return precise results.

The field does not have to be specified.
If the results are to be sorted, use the `sortBy` field to specify the sort field.

The search includes the following fields:<br>
serialNumber<br>
terminalModel<br>
terminalManufacturer<br>
terminalId<br>
merchantCompanyName

Example:<br>
PAXA920-84729163 (example serialNumber)<br>
Verifone (example terminalManufacturer)<br>
POS-TERMINAL-12345 (example terminalId)

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `items` (array)

  - `items.terminalId` (string)
    Indicates the identifier of terminal handling the POS transaction.

Example: d0fc1606-47ea-464b-a31a-3971c9822d10
    Example: d0fc1606-47ea-464b-a31a-3971c9822d10

  - `items.merchantId` (string)
    Identifies the merchant identifier.

Example: 5611f824-48ef-4255-978d-91ce13953bbd
    Example: 5611f824-48ef-4255-978d-91ce13953bbd

  - `items.merchantCompanyName` (string)
    Indicates the company name of the merchant associated with the terminal.

Example: Peppared Street Cafe
    Example: Peppared Street Cafe

  - `items.serialNumber` (string)
    Indicates the terminal serial number.

Example: SN0123456789
    Example: SN0123456789

  - `items.terminalManufacturer` (string)
    Indicates the terminal manufacturer.
Valid values are:
| Manufacturer |
|  --- |
| Sunmi |
| Verifone |

Example: Verifone
    Enum: "Sunmi", "Verifone"

  - `items.terminalModel` (string)
    Indicates the model of the terminal.
Valid values are:
| Model |
|  --- |
| SunmiP2 |
| SunmiP2LiteSe |
| VerifoneVictaMobile |
| VerifoneVictaPortable |
| SunmiP3H |

Example: SunmiP2LiteSe
    Enum: "SunmiP2", "SunmiP2LiteSe", "VerifoneVictaMobile", "VerifoneVictaPortable", "SunmiP3H"

  - `items.terminalMode` (string)
    Indicates the operating mode of the terminal.
Valid values are:
| Type | Meaning |
|  --- | --- |
| Standalone | The terminal operates independently of any POS system. The amount is entered directly on the terminal itself (no electronic connection to a cash register/POS software), and it runs the transaction on its own. |
| SemiIntegrated | The terminal is connected to a POS system, typically through a network or cable. The POS sends the transaction amount to the terminal electronically, rather than requiring manual entry. However, the POS never touches card or payment data directly. The terminal handles all sensitive payment processing itself. This architecture is commonly used to reduce PCI compliance scope on the POS side. |

Example: Standalone
    Enum: "Standalone", "SemiIntegrated"

  - `items.terminalStatus` (string)
    Indicates the terminal status to process a new transaction.
Valid values are:
| Status | Meaning |
|  --- | --- |
| Active | The terminal is powered on and available.It is ready to process a new transaction. |
| Busy | The terminal is currently processing a transaction.It is not available to accept another one until that transaction completes. |
| Offline | The terminal is disconnected or unreachable.It cannot process transactions until connectivity is restored. |

Example: Active
    Enum: "Active", "Busy", "Offline"

  - `items.connectionStatus` (string)
    Indicates the line status of the terminal.
Valid values are:
| Status | Meaning |
|  --- | --- |
| Online | The terminal is currently connected and reachable.It has active network or internet connectivity. It is able to process transactions and communicate with the backend in real time. |
| Offline | The terminal is disconnected or unreachable.It may be powered off, have lost its network connection, or otherwise be unable to communicate. As a result, it cannot process transactions, or can only do so in a stored or deferred mode depending on the platform. |

Example: Online
    Enum: "Online", "Offline"

  - `items.lastSeenOn` (string)
    Indicates the timestamp (in an ISO 8601 date-time UTC format) that the terminal was last seen online.

Example: 2026-05-05T13:25:22.344Z
    Example: 2026-05-05T13:25:22.344Z

  - `pageInfo` (object)
    Indicates an object describing the pagination status.
If additional pages to review are needed, repeat the exact same search but include a new pageIndex value.
Typically, this will increment the current `pageIndex` by one.
However, any valid value may be used.
Value restrictions include:
* A value less than zero is not permitted.
* Values equal to or greater than `totalPages` end successfully but will not return any items.

  - `pageInfo.pageIndex` (integer)
    Indicates the page number from the search results.
The pageIndex value is zero-based.
Valid values range from zero to `totalPages` less one.
For example, if `totalPages` = 10, then the valid range is zero to nine.
Example: 0
    Example: 0

  - `pageInfo.pageSize` (integer)
    Indicates the number of items returned per page.

Example: 20
    Example: 20

  - `pageInfo.totalItems` (integer)
    Indicates the total number of items across all pages.

Example: 1012
    Example: 1012

  - `pageInfo.totalPages` (integer)
    Indicates the total number of pages available.

Example: 51
    Example: 51

  - `pageInfo.hasMore` (boolean)
    Indicates additional pages are available after the current one.
If `true`, additional pages are available after the current one.
If `false`, additional pages are not available after the current one.
Example: true
    Example: true

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Unauthorized
    Example: Unauthorized

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Response | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

This is a unique identifier, a trace identifier, Flute attaches to a request/response pair so a single transaction can be traced end-to-end across systems and logs. 

Its intent is to support troubleshooting.
We recommend including this value when contacting support.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
This is a field on Flute's standard error response object, alongside values such as `correlationId`, `errorCode`, or `statusCode`.
It's the identifier of the specific resource the failed request was about.
Error messages may specify "Entity with ID b31fbe9f-eebb-45ce-9cae-92265389f47f does not exist or has been deleted."
When a 404 (or similar entity-specific error, like a conflict) comes back,
check `entityId` to get the exact identifier of the record that couldn't be found or matched.
This is useful for confirming which resource reference was wrong, especially if the request touched multiple identifiers at once.
Example: null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)
    Indicates a short, human-readable summary of the error category.

Example: Resource not found
    Example: Resource not found

  - `cause` (string)
    Indicates the reason the error occurred.

Example: The requested resource does not exist or has been deleted.
    Example: The requested resource does not exist or has been deleted.

  - `resolution` (string)
    Indicates the recommended action for resolving the error.

Example: Verify the resource ID is correct or retrieve a list of available resources.
    Example: Verify the resource ID is correct or retrieve a list of available resources.

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Unauthorized
    Example: Unauthorized

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Response | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

This is a unique identifier, a trace identifier, Flute attaches to a request/response pair so a single transaction can be traced end-to-end across systems and logs. 

Its intent is to support troubleshooting.
We recommend including this value when contacting support.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
This is a field on Flute's standard error response object, alongside values such as `correlationId`, `errorCode`, or `statusCode`.
It's the identifier of the specific resource the failed request was about.
Error messages may specify "Entity with ID b31fbe9f-eebb-45ce-9cae-92265389f47f does not exist or has been deleted."
When a 404 (or similar entity-specific error, like a conflict) comes back,
check `entityId` to get the exact identifier of the record that couldn't be found or matched.
This is useful for confirming which resource reference was wrong, especially if the request touched multiple identifiers at once.
Example: null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)
    Indicates a short, human-readable summary of the error category.

Example: Resource not found
    Example: Resource not found

  - `cause` (string)
    Indicates the reason the error occurred.

Example: The requested resource does not exist or has been deleted.
    Example: The requested resource does not exist or has been deleted.

  - `resolution` (string)
    Indicates the recommended action for resolving the error.

Example: Verify the resource ID is correct or retrieve a list of available resources.
    Example: Verify the resource ID is correct or retrieve a list of available resources.

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 403:

  - `403` (unknown)
    Forbidden

## Response 403 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)

  - `cause` (string)

  - `resolution` (string)

  - `documentationUrl` (string)
    https://developer.flute.com/

  - `errors` (object)

## Response 429:

  - `429` (unknown)
    Too Many Requests

## Response 429 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Unauthorized
    Example: Unauthorized

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Response | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

This is a unique identifier, a trace identifier, Flute attaches to a request/response pair so a single transaction can be traced end-to-end across systems and logs. 

Its intent is to support troubleshooting.
We recommend including this value when contacting support.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
This is a field on Flute's standard error response object, alongside values such as `correlationId`, `errorCode`, or `statusCode`.
It's the identifier of the specific resource the failed request was about.
Error messages may specify "Entity with ID b31fbe9f-eebb-45ce-9cae-92265389f47f does not exist or has been deleted."
When a 404 (or similar entity-specific error, like a conflict) comes back,
check `entityId` to get the exact identifier of the record that couldn't be found or matched.
This is useful for confirming which resource reference was wrong, especially if the request touched multiple identifiers at once.
Example: null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)
    Indicates a short, human-readable summary of the error category.

Example: Resource not found
    Example: Resource not found

  - `cause` (string)
    Indicates the reason the error occurred.

Example: The requested resource does not exist or has been deleted.
    Example: The requested resource does not exist or has been deleted.

  - `resolution` (string)
    Indicates the recommended action for resolving the error.

Example: Verify the resource ID is correct or retrieve a list of available resources.
    Example: Verify the resource ID is correct or retrieve a list of available resources.

  - `documentationUrl` (string)
    https://developer.flute.com/

## Response 500:

  - `500` (unknown)
    Internal Server Error

## Response 500 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Unauthorized
    Example: Unauthorized

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Response | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

This is a unique identifier, a trace identifier, Flute attaches to a request/response pair so a single transaction can be traced end-to-end across systems and logs. 

Its intent is to support troubleshooting.
We recommend including this value when contacting support.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
This is a field on Flute's standard error response object, alongside values such as `correlationId`, `errorCode`, or `statusCode`.
It's the identifier of the specific resource the failed request was about.
Error messages may specify "Entity with ID b31fbe9f-eebb-45ce-9cae-92265389f47f does not exist or has been deleted."
When a 404 (or similar entity-specific error, like a conflict) comes back,
check `entityId` to get the exact identifier of the record that couldn't be found or matched.
This is useful for confirming which resource reference was wrong, especially if the request touched multiple identifiers at once.
Example: null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

  - `title` (string)
    Indicates a short, human-readable summary of the error category.

Example: Resource not found
    Example: Resource not found

  - `cause` (string)
    Indicates the reason the error occurred.

Example: The requested resource does not exist or has been deleted.
    Example: The requested resource does not exist or has been deleted.

  - `resolution` (string)
    Indicates the recommended action for resolving the error.

Example: Verify the resource ID is correct or retrieve a list of available resources.
    Example: Verify the resource ID is correct or retrieve a list of available resources.

  - `documentationUrl` (string)
    https://developer.flute.com/

