# Retrieve a payment method

`GET /api/financial/payment-methods/{id}`

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

HTML version: [Retrieve a payment method](https://support.gladstonesoftware.cloud/reference/payments/retrieve-a-payment-method)

## Overview

Retrieves one payment method by its id. A payment method is a tender type an operator accepts
— cash, a card scheme, a direct debit arrangement, loyalty points — and it is what a sale is
recorded against.

The response is the same object the list call returns for each entry, so if you already hold the
output of [List all payment methods](list-all-payment-methods.md) there is
nothing extra here. When a payment method is created, updated or deleted through this API, both calls reflect the
change on the next read.

Almost every boolean below is decided by the payment method's **collection interface** — the
underlying tender mechanism — rather than being freely chosen. Fetch
[List all collection interfaces](list-all-collection-interfaces.md) alongside
this response: its `canModify…` flags tell you which of these values could have been set at all,
and which were forced by the platform.

## Endpoint

`GET {base_url}/api/financial/payment-methods/{id}`

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

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the payment method to retrieve. |

## Sample request

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

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | The code the payment method is known by, chosen by whoever created it rather than generated by the platform. Maximum 15 characters. This is the value you pass in the path to [Update](update-a-payment-method.md) and [Delete](delete-a-payment-method.md), and it is what the platform checks for uniqueness (case-insensitively) when a new payment method is created. |
| `description` | string | The display name shown to staff against this tender type, for example on the point-of-sale tender list. Maximum 255 characters. Free text — it carries no behaviour. |
| `collectionInterface` | object | The tender mechanism this payment method is built on. It is the single most important field on the object: it determines which of the flags below the platform will let you set, whether an `eftSystem` is required, and whether more than one payment method of this kind may exist. |
| `collectionInterface.id` | integer (int32) | The collection interface type. The recognised values are `0` Manual, `3` External, `5` Cashless, `6` Loyalty, `7` Chip and PIN, `8` Invoicing and `9` Electronic Funds Transfer (EFT). Only `9` carries an `eftSystem`. |
| `collectionInterface.description` | string | The name of the collection interface, taken from the collection interface itself rather than set on the payment method. |
| `collectionInterface.isActive` | boolean | Whether the underlying collection interface is still available. Existing payment methods keep working, but while this is `false` you cannot create a payment method against this interface, and any update to this payment method is rejected with `400` and `Collection interface {description} is not active.` |
| `giveChange` | boolean | Whether change is given from this tender — meaningful for cash-like methods. The platform sets `false` whenever the collection interface's `canModifyGiveChange` is `false`, so a `false` here does not always mean somebody chose it. |
| `useAtPOS` | boolean | Whether the payment method is offered as a tender option at the point of sale. It can only be `true` where the collection interface's `canModifyUseAtPos` is `true`. |
| `openCashDrawer` | boolean | Whether taking this payment pops the till drawer. Derived by the platform from `collectionInterface.id`, not from anything a caller sent: it is `true` for Manual (`0`) and Chip and PIN (`7`) and `false` for every other type. |
| `nonBankedIncome` | boolean | Whether takings on this method are treated as non-banked income — money that never reaches a bank account, such as loyalty points redeemed against a sale — and so are excluded from banking figures. Where the collection interface's `canModifyNonBankedIncome` is `false` the platform forces this to `true`. |
| `allowCountedTotal` | boolean | Whether takings on this method count towards the counted daily totals at till reconciliation. Saved exactly as supplied; the collection interface places no restriction on it. |
| `avsWhenCustomerPresent` | boolean | Whether Address Verification is required when the cardholder is at the till. This and the three flags below are only ever `true` where the collection interface's `canModifyAVSCVSSettings` is `true`; otherwise the platform sets `false`. |
| `avsWhenCustomerNotPresent` | boolean | Whether Address Verification is required for a cardholder-not-present sale, such as a telephone or online payment. Gated by `canModifyAVSCVSSettings` in the same way as `avsWhenCustomerPresent`. |
| `cvsWhenCustomerPresent` | boolean | Whether card number verification is required when the cardholder is at the till. Gated by `canModifyAVSCVSSettings`. |
| `cvsWhenCustomerNotPresent` | boolean | Whether card number verification is required for a cardholder-not-present sale. Gated by `canModifyAVSCVSSettings`. |
| `eftSystem` | object | The direct-debit or bank-collection scheme the money is collected through. Always present in the response, but only populated when `collectionInterface.id` is `9` (EFT); for every other collection interface no EFT system is attached and you get `id: 0` with a null `description`. |
| `eftSystem.id` | integer (int32) | The EFT scheme, matching an `id` from [Get all EFT systems](get-all-eft-systems.md). `0` means no EFT system is attached, which is the normal state for every non-EFT collection interface. |
| `eftSystem.description` | string | The scheme name, taken from the EFT system. `null` when no EFT system is attached. |
| `produceDuplicateReceipt` | boolean | Whether a second copy of the receipt is printed for this tender. Only ever `true` where the collection interface's `canModifyDuplicateReceipt` is `true`. |
| `printSignatureOnReceipt` | boolean | Whether a signature line is printed on the receipt. Only ever `true` where the collection interface's `canModifySignatureOnReceipt` is `true`. |
| `isActive` | boolean | Whether the payment method may still be used. `false` means retired rather than deleted: history against it survives. Deactivating is the intended way to withdraw a payment method that has been used, because [Delete a payment method](delete-a-payment-method.md) returns `409` once sales exist against it. |

## Sample response

```json title="200 OK"
{
  "id": "string",
  "description": "string",
  "collectionInterface": {
    "id": 12345,
    "description": "string",
    "isActive": true
  },
  "giveChange": true,
  "useAtPOS": true,
  "openCashDrawer": true,
  "nonBankedIncome": true,
  "allowCountedTotal": true,
  "avsWhenCustomerPresent": true,
  "avsWhenCustomerNotPresent": true,
  "cvsWhenCustomerPresent": true,
  "cvsWhenCustomerNotPresent": true,
  "eftSystem": {
    "id": 12345,
    "description": "string"
  },
  "produceDuplicateReceipt": true,
  "printSignatureOnReceipt": true,
  "isActive": true
}
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | ID must be specified. |
| `404` | Not found | No payment method {id} found. |
| `500` | Internal server error | |
