# Get all EFT systems

`GET /api/financial/eft-systems`

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

HTML version: [Get all EFT systems](https://support.gladstonesoftware.cloud/reference/payments/get-all-eft-systems)

## Overview

Lists the Electronic Funds Transfer (EFT) systems available to the operator. An EFT system is a
bank collection scheme — BACS direct debit and its equivalents in other territories, or a
third-party collection bureau — and it is what a direct debit payment method actually collects
money through.

You need this list when creating a payment method whose collection interface is `9` (EFT): the
`id` you take from here is the `eftSystemId` you send to
[Create a new payment method](create-a-new-payment-method.md).

**Two things to know before you rely on that.** First, appearing in this list does *not* mean the
scheme is usable: the endpoint returns every EFT system the operator has, and creating an EFT
payment method additionally requires that at least one site bank account already references the
scheme, otherwise you get `A bank account must be configured for this type of Electronic Funds
Transfer.` The `404` message on this endpoint mentions site bank accounts, but the list is
not filtered on them — do not read the presence of a scheme here as confirmation that a bank
account exists. Second, an operator with no EFT systems at all returns `404` rather than an empty
array.

## Endpoint

`GET {base_url}/api/financial/eft-systems`

`{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/eft-systems' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | integer (int32) | The EFT scheme identifier, and the value you send as `eftSystemId` when creating or updating an EFT payment method. The platform reserves a fixed set of ids for known schemes — for example `1` BACS direct debit, `13` BACS credit, `21` Smart Debit and `22` third-party collections — but which of them an operator actually has is configuration, so read the ids from this response rather than hard-coding them. |
| `[].description` | string | The scheme name as configured for the operator. This is the value echoed back as `eftSystem.description` on a payment method. Use it for display and match on `id` in code. |
| `[].isBicMandatory` | boolean | Whether a site bank account on this scheme must carry a BIC (SWIFT code) — generally the case for schemes that settle internationally. When `true`, creating or updating a site bank account without `bic` is rejected. May be `null`, meaning the scheme has no setting recorded either way. |
| `[].showBicIbanForSite` | boolean | Whether the BIC and IBAN fields apply to site bank accounts on this scheme, and so whether a configuration UI should offer them. Distinct from `isBicMandatory`: this says the fields are relevant, that one says a BIC is compulsory. |

## Sample response

```json title="200 OK"
[
  {
    "id": 12345,
    "description": "string",
    "isBicMandatory": true,
    "showBicIbanForSite": true
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `404` | Not found | `No EFT systems found with a configured site bank account.` — returned whenever the operator has no EFT systems at all. Despite the wording, this endpoint does not check site bank accounts, so the presence or absence of a bank account does not affect whether you see this. |
| `500` | Internal server error | |
