> ## Documentation Index
> Fetch the complete documentation index at: https://devzone.nayax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Restart a Machine

export const EndpointCard = ({method = "API", title, children, href, arrow = true}) => {
  const METHOD_STYLES = {
    GET: {
      bg: "mint-bg-green-400/20 dark:mint-bg-green-400/20",
      text: "mint-text-green-700 dark:mint-text-green-400",
      border: "mint-border-green-300 dark:mint-border-green-700"
    },
    POST: {
      bg: "mint-bg-blue-400/20 dark:mint-bg-blue-400/20",
      text: "mint-text-blue-700 dark:mint-text-blue-400"
    },
    PUT: {
      bg: "mint-bg-yellow-400/20 dark:mint-bg-yellow-400/20",
      text: "mint-text-yellow-700 dark:mint-text-yellow-400"
    },
    PATCH: {
      bg: "mint-bg-orange-400/20 dark:mint-bg-orange-400/20",
      text: "mint-text-orange-700 dark:mint-text-orange-400"
    },
    DELETE: {
      bg: "mint-bg-red-400/20 dark:mint-bg-red-400/20",
      text: "mint-text-red-700 dark:mint-text-red-400"
    },
    API: {
      bg: "mint-bg-black",
      text: "mint-text-white"
    }
  };
  const MethodBadge = ({method}) => {
    const style = METHOD_STYLES[method?.toUpperCase()] ?? METHOD_STYLES.GET;
    return <span className={`
          method-pill rounded-lg font-bold px-1.5 py-0.5 text-xs leading-5 ${style.bg} ${style.text}`}>
        {method?.toUpperCase()}
      </span>;
  };
  const content = <div className="group flex items-center gap-4 border border-gray-200 dark:border-gray-700 rounded-xl p-5 bg-white dark:bg-[#1e1e1e] hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md transition-all cursor-pointer">
      {}
      <div className="flex-1 min-w-0">
        <p className="font-semibold text-gray-900 dark:text-white text-sm leading-snug">{title}</p>
        {children && <p className="mt-1 text-sm text-gray-500 dark:text-gray-400 line-clamp-2">{children}</p>}
      </div>

      {}
      <div className="shrink-0">
        <MethodBadge method={method} />
      </div>
    </div>;
  if (!href) return content;
  return <a href={href} className="block no-underline border-b-0 mb-2">
      {content}
    </a>;
};

Restart a Nayax device remotely by updating a device attribute on the machine. The device picks up the change on its next poll and restarts, then reconnects to the server on its own.

<EndpointCard title="Update Specific Machine Attribute" href="/reference/lynx/machine-attribute/update-specific-machine-attribute" method="put" />

<Warning>
  **Authentication**

  Refer to the [Security & Token](/docs/manage-data-operations/lynx-api/security) page of this documentation to learn how to access your tokens, and how to properly use them to authenticate your API requests.
</Warning>

## Restart a machine

Use the [Update Specific Machine Attribute](/reference/lynx/machine-attribute/update-specific-machine-attribute) endpoint to set device attribute `144` on the machine. Provide the `MachineID` and the attribute's `DeviceAttributeID` as path parameters, and the attribute value as a body parameter:

```bash Request theme={null}
curl -X PUT "https://qa-lynx.nayax.com/operational/v1/machines/<MACHINE_ID>/attributes/144" \
  -H "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "DeviceAttributeID": 144,
    "MachineID": <MACHINE_ID>,
    "DeviceAttributeValue": "1"
  }'
```

<Note>
  Replace `<MACHINE_ID>` with your machine's unique identifier, and `<YOUR_ACCESS_TOKEN>` with your Lynx API token.
</Note>

This table outlines the body parameters:

| **Name**               | **Type** | **Description**                                                         |
| :--------------------- | :------- | :---------------------------------------------------------------------- |
| `DeviceAttributeID`    | `int`    | The device attribute to update. Use `144` to restart the device.        |
| `MachineID`            | `int`    | The unique identifier of the machine, matching the path parameter.      |
| `DeviceAttributeValue` | `string` | The value to assign to the attribute. Use `"1"` to trigger the restart. |

The endpoint returns the updated attribute on success:

```json Response theme={null}
{
  "DeviceAttributeID": 144,
  "MachineID": <MACHINE_ID>,
  "DeviceAttributeValue": "1",
  "DeviceAttributeCodeID": null,
  "DeviceAttributeName": "Restart device",
  "DeviceAttributeGroup": "Communication",
  "DeviceAttributeReadOnlyBit": false,
  "MachineAttributeRef": "/v1/machines/<MACHINE_ID>/attributes/144",
  "MachineRef": "/v1/machines/<MACHINE_ID>"
}
```

The device restarts within a few minutes once it polls the queue. Restarting also applies any other configuration changes waiting in the queue.

<Note>
  If attribute `144` has never been set on the machine, a `GET` request for it returns `204 No Content` instead of an error, and the attribute is omitted from the machine's full attribute list until you set it.
</Note>

## Restart versus reboot

A restart is the lighter of the two power operations. It powers the device off and on and applies any other pending configuration. A reboot is heavier: it activates the bootloader. Use a restart unless you specifically need the bootloader.

<Warning>
  Do not trigger a restart during an active transaction. Wait until the device is idle so you do not interrupt a payment in progress.
</Warning>

## Confirm the restart

After the device restarts, it sends a `PowerUp` event back to the server confirming it is online again. Use this event to verify the restart completed.

## Next steps

<CardGroup cols={2}>
  <Card title="Machine attributes" icon="sliders" href="/docs/manage-data-operations/lynx-api/machines/updating-a-machines-attribute">
    Update other machine attributes through the Lynx API.
  </Card>

  <Card title="Retrieve machine information" icon="magnifying-glass" href="/docs/manage-data-operations/lynx-api/machines/retrieve-machine-information">
    Look up a machine's details and current status.
  </Card>
</CardGroup>
