# List all collection interfaces

`GET /api/financial/collection-interfaces`

- **Success:** `200 OK`
- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [List all collection interfaces](https://support.gladstonesoftware.cloud/reference/payments/list-all-collection-interfaces)

## Overview

Lists the collection interfaces — the fixed set of underlying tender mechanisms a payment method
can be built on. Cash handled manually, a Chip and PIN terminal, a cashless purse, loyalty
points, invoicing and direct debit are each a separate collection interface.

**Call this before creating or updating a payment method.** The `canModify…` flags on each entry
are not advisory: they are enforced. Setting a flag on
[Create a new payment method](create-a-new-payment-method.md) or
[Update a payment method](update-a-payment-method.md) that the chosen collection
interface does not permit is rejected with `400` and a message naming the field. This list is the
only way to discover which combinations are legal — there is no per-payment-method schema that
tells you.

The ids are a closed set defined by the platform: `0` Manual, `3` External, `5` Cashless, `6`
Loyalty, `7` Chip and PIN, `8` Invoicing, `9` Electronic Funds Transfer (EFT). An operator with
no collection interfaces returns `404`, not an empty array.

## Endpoint

`GET {base_url}/api/financial/collection-interfaces`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Sample request

```bash title="cURL"
curl -X GET '{base_url}/api/financial/collection-interfaces' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | integer (int32) | The collection interface, and the value you send as `collectionInterfaceId` when creating or updating a payment method. The recognised values are `0` Manual, `3` External, `5` Cashless, `6` Loyalty, `7` Chip and PIN, `8` Invoicing and `9` Electronic Funds Transfer (EFT). Two ids carry extra behaviour: `9` is the only one that accepts an `eftSystemId`, and `0` and `7` are the only ones for which the platform sets `openCashDrawer`. |
| `[].description` | string | The name of the collection interface as configured for the operator. Use it for display; match on `id` in code, since the description is editable configuration and the ids are not. |
| `[].isActive` | boolean | Whether the collection interface may be used. While this is `false` you cannot create a payment method against it, and — the part that catches people out — you cannot update an existing payment method that already uses it either: the update is rejected with `Collection interface {description} is not active.` |
| `[].multiplePaymentMethodsAllowed` | boolean | Whether the operator may have more than one payment method on this interface. When `false`, creating a second one fails with `A payment method of this collection interface type already exists.` An update is exempt for the payment method already occupying the slot, so re-saving it is always safe; moving a different payment method onto an occupied interface is not. |
| `[].canModifyUseAtPos` | boolean | Whether `useAtPOS` may be set to `true` on a payment method using this interface. When `false`, sending `true` fails with `UseAtPOS is not allowed for this collection interface type.` |
| `[].canModifyGiveChange` | boolean | Whether `giveChange` may be set to `true`. When `false`, sending `true` fails with `GiveChange is not allowed for this collection interface type.` and the value stays `false`. |
| `[].canModifyNonBankedIncome` | boolean | Whether `nonBankedIncome` may be chosen. This one works in reverse to the others: when `false` the platform sets the value to `true`, and it is a `false` in the request that is rejected, with `NonBankedIncome cannot be changed from the default for this collection interface type.` Because an omitted boolean is read as `false`, requests against such an interface must send `nonBankedIncome: true` explicitly. |
| `[].canModifyDuplicateReceipt` | boolean | Whether `produceDuplicateReceipt` may be set to `true`. When `false`, sending `true` fails with `ProduceDuplicateReceipt is not allowed for this collection interface type.` and the value stays `false`. |
| `[].canModifySignatureOnReceipt` | boolean | Whether `printSignatureOnReceipt` may be set to `true`. When `false`, sending `true` fails with `PrintSignatureOnReceipt is not allowed for this collection interface type.` and the value stays `false`. |
| `[].canModifyAVSCVSSettings` | boolean | A single gate over all four card verification flags — `avsWhenCustomerPresent`, `avsWhenCustomerNotPresent`, `cvsWhenCustomerPresent` and `cvsWhenCustomerNotPresent`. When `false`, setting any one of them to `true` rejects the whole request with `Address or Card Number verification cannot be true for this collection interface type.`, and all four are saved as `false`. |

## Sample response

```json title="200 OK"
[
  {
    "id": 12345,
    "description": "string",
    "isActive": true,
    "multiplePaymentMethodsAllowed": true,
    "canModifyUseAtPos": true,
    "canModifyGiveChange": true,
    "canModifyNonBankedIncome": true,
    "canModifyDuplicateReceipt": true,
    "canModifySignatureOnReceipt": true,
    "canModifyAVSCVSSettings": true
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `404` | Not found | No collection interfaces found. |
| `500` | Internal server error | |
