> For the complete documentation index, see [llms.txt](https://developers.bead.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.bead.xyz/entity-management/terminal-management/update-terminal.md).

# Update Terminal

Updates an existing terminal configuration.

#### Endpoint

`PUT https://api.test.devs.beadpay.io/Terminals/{id}`

#### Authentication

Use your **admin API key** in the request header for terminal management operations.

#### Request headers

| Header         | Value              |
| -------------- | ------------------ |
| `X-Api-Key`    | `{adminApiKey}`    |
| `Content-Type` | `application/json` |
| `Accept`       | `application/json` |

#### Path parameter

| Name | Type   | Description                                                                       |
| ---- | ------ | --------------------------------------------------------------------------------- |
| `id` | string | Terminal identifier returned by Create Terminal, List Terminals, or Get Terminal. |

#### Request body

| Field                  | Type    | Required | Description                                                    |
| ---------------------- | ------- | -------- | -------------------------------------------------------------- |
| `name`                 | string  | Yes      | Friendly name for the terminal.                                |
| `description`          | string  | Yes      | Terminal description.                                          |
| `displayLogo`          | boolean | Yes      | Controls whether the logo is displayed where supported.        |
| `isEnabled`            | boolean | Yes      | Controls whether the terminal can create new payments.         |
| `tenderTypes`          | array   | No       | Tender types enabled for this terminal.                        |
| `extendRedirectUrl`    | boolean | No       | Adds `paymentPageId` as a query parameter to the redirect URL. |
| `maxTransactionAmount` | number  | No       | Optional maximum transaction amount for this terminal.         |

> **`useSandboxSharedWallet` cannot be set or changed via this endpoint.** This Sandbox-only setting is applied at terminal creation time only. If a terminal is missing `useSandboxSharedWallet: true` and USDC payments are failing as a result, the terminal must be recreated with the flag included. See [Create Terminal](/entity-management/terminal-management/create-terminal.md).

#### Example request

```bash
curl --request PUT "https://api.test.devs.beadpay.io/Terminals/67f10123456789abcdef0456" \
  --header "X-Api-Key: {adminApiKey}" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json" \
  --data '{
    "name": "Front Counter 1",
    "description": "Primary checkout terminal - updated",
    "displayLogo": true,
    "isEnabled": true,
    "tenderTypes": ["ethereum", "usdcBase"],
    "extendRedirectUrl": false,
    "maxTransactionAmount": 7500
  }'
```

#### Example response

```json
{
  "id": "67f10123456789abcdef0456",
  "name": "Front Counter 1",
  "description": "Primary checkout terminal - updated",
  "merchantId": "67e90123456789abcdef0001",
  "merchantStatus": "active",
  "type": "virtual",
  "merchantLocationId": "67f00123456789abcdef0123",
  "merchantLocation": {
    "id": "67f00123456789abcdef0123",
    "name": "Main Store",
    "address": {
      "address1": "123 Main St",
      "city": "Boston",
      "region": "MA",
      "country": "US",
      "postalCode": "02110"
    },
    "isEnabled": true
  },
  "displayLogo": true,
  "webhookUrl": "https://example.com/webhooks/terminal/67f10123456789abcdef0456",
  "isEnabled": true,
  "extendRedirectUrl": false,
  "tenderTypes": ["ethereum", "usdcBase"],
  "created": "2026-04-02T15:00:00Z",
  "updated": "2026-04-03T10:15:00Z",
  "maxTransactionAmount": 7500,
  "apiKey": {
    "secret": "pk_test_terminal_secret_value",
    "maskedSecret": "pk_****_value"
  },
  "useSandboxSharedWallet": true
}
```

#### Notes

* Use this endpoint to update terminal settings such as name, description, enabled status, tender types, branding, and transaction limits.
* `useSandboxSharedWallet` is not editable via this endpoint. It is a creation-time setting. If it is missing from an existing terminal, recreate the terminal with `"useSandboxSharedWallet": true` using `POST /Terminals`. Terminals created automatically from a boarding approval have this set correctly by default.
* Use your **admin API key** for terminal management operations.
* Use the terminal payments API key for payment activity performed by that terminal.
* Treat `apiKey.secret` as sensitive and do not expose it in logs or client-side code.
* Updating a terminal does not replace the terminal payments API key. If you need to rotate the terminal key, use the terminal API key reset operation.

#### Response codes

| Code  | Meaning                                                                         |
| ----- | ------------------------------------------------------------------------------- |
| `200` | Terminal updated successfully.                                                  |
| `202` | Update accepted for processing.                                                 |
| `204` | Update completed with no response body.                                         |
| `400` | The request body is invalid or missing required fields.                         |
| `401` | The admin API key is missing or invalid.                                        |
| `403` | The caller is authenticated but not permitted to update the specified terminal. |
| `404` | No terminal was found for the supplied `id`.                                    |
| `409` | A conflicting terminal state prevented the update.                              |

#### Related operations

* [Create Terminal](/entity-management/terminal-management/create-terminal.md)
* [List Terminals](/entity-management/terminal-management/list-terminals.md)
* [Get Terminal](/entity-management/terminal-management/get-terminal.md)
* [Delete Terminal](/entity-management/terminal-management/delete-terminal.md)
* [Webhook Management](/entity-management/terminal-management/webhook-management.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.bead.xyz/entity-management/terminal-management/update-terminal.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
