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

# Hetzner Cloud

> Connect your own Hetzner project, link existing servers, sell VPS subscriptions and offer customer reboot and browser console access.

Connect your own Hetzner Cloud project to manage server subscriptions in PayRequest. Link servers you already have, or sell VPS products with automatic delivery after confirmed payment. Customers see their server details and the controls you allow in their subscription’s **Server** tab.

## Connect your project

1. Open **Services & integrations → Hetzner Cloud**.
2. In [Hetzner Console](https://console.hetzner.com/projects), choose a separate project for your customer servers.
3. Go to **Security → API Tokens** and create a **Read & Write** token.
4. Paste it into PayRequest and select **Save connection**.

Your token is encrypted and is not displayed again. The connection test reads project information; it does not create a paid test server. A successful read test cannot prove the token has write permission.

## All project servers and private notes

The integration page lists **all servers in the connected project**, including servers you created outside PayRequest. Select **Refresh server list** to update their names, status, IP addresses, type and location.

The **Subscription** column links to the PayRequest subscription when the server was provisioned through this integration or manually linked. Other servers show **Not linked to a PayRequest subscription**. Reading the server list never imports an existing server as a managed service, attaches it to a customer or performs a server action.

Use **Edit notes** to keep private notes of up to 4,000 characters per server. Only your business owner account can access these notes. Refreshing the list preserves them. If a server is no longer found, its row and notes remain available with that status.

## Create a VPS product

Select **Create VPS subscription** to open the full product wizard. Choose:

* Your Hetzner connection, server type and location.
* A compatible system image and an existing project SSH key.
* Your selling price, currency and monthly or annual billing.

PayRequest verifies the selected resources against your project when you save the product and again before creating a server. Capacity can change, so delivery may require review if Hetzner cannot fulfill the selection.

One subscription delivers one VPS. The first payment is immediate; free trials, quantity selection and customer subscription pauses are disabled. Server configuration is preserved when editing a product. Create a new product to sell a different server configuration. Existing services keep their original configuration and billing interval.

The selected SSH key is installed on the new server. Arrange the customer's SSH access yourself. PayRequest does not store private SSH keys or distribute your private key to customers.

## Delivery and customer controls

Delivery starts only after a positive, fully paid order or a paid invoice line belonging to that subscription. The initial order and its invoice cannot deliver two servers or grant two periods. Payment verification and pending bank transfers do not deliver a server.

The customer's subscription has a **Server** tab with IP addresses, configuration, the last synchronized status and the paid-until date. Primary customers and enabled **admin** or **operations** contacts can request start, graceful shutdown and restart during paid access. Billing and viewer contacts cannot operate the server. Each action checks current customer, shop, contact permissions, payment state and server identity.

Actions run asynchronously at Hetzner. Use **Refresh server details** to check the result; the accepted request is not proof of completion. Status and pending actions are also reconciled every five minutes.

## Cancellation, unpaid periods and deletion

> [!WARNING]
>
> Hetzner continues charging while a server exists, even when it is powered off. Cancelling the PayRequest subscription or missing a renewal does not automatically stop or delete the server. It also does not revoke operating-system SSH access. Review the server yourself and agree termination with your customer.

Cancellation preserves customer controls through the remaining paid period. Expired, paused, archived or reversed paid access blocks customer controls. A credit against the latest paid invoice also requires owner review. None of these conditions automatically deletes server data.

Only the business owner can delete a managed server through PayRequest. Deletion requires the exact server name, a reason and confirmation that customer readiness, remaining paid access, backups and exports have been addressed. This permanently destroys the server; it does not cancel the subscription, credit invoices or remove unrelated resources. Additional IPs, volumes or other resources may still incur costs.

## Uncertain delivery or actions

If a response is lost, PayRequest looks for the original server using its unique name and ownership labels. It does not blindly create another server. After at least ten minutes, the owner can use **Verify and retry creation** to check for the original server before permitting another attempt.

Uncertain power actions are blocked from automatic repetition. Check the server in Hetzner Console, then record a **manual review** after ten minutes. This clears the block without repeating the action. A server deleted or removed outside PayRequest is never recreated automatically.

Do not rename managed servers or change their `payrequest.io/` labels: identity mismatches block actions. A replacement token must belong to the same project; resolve uncertain operations before rotating it.

This integration manages Hetzner Cloud VPS servers. Dedicated servers through Robot, automatic resizing, cloud backups, usage-based billing are not supported by this integration.

## Link an existing server to a subscription

Open **Services & integrations → Hetzner Cloud**. Find the existing server and click **Link to subscription**. Search by subscription name or number, select the subscription and confirm. Search by the subscription number shown in your dashboard when several subscriptions have similar names.

The association appears in the server list and the business subscription detail. Each server and subscription can have one association. To change it, unlink the current association first. Private server notes are preserved.

This is an administrative association. It preserves existing billing and server settings and does not enable automatic provisioning, customer server controls or deletion. Reboot and console access are separate options you can enable after linking. Products configured for automatic Hetzner delivery cannot be manually linked.

## Let customers restart an existing server

After linking an existing server, enable **Allow customer reboot** in the server list. This permission applies to the linked subscription's current customer. It is off by default, and unlinking removes the permission.

The customer sees a **Server** tab with server details and a confirmed normal restart action while the subscription is active. Primary customers and admin/operations contacts may restart; billing and viewer contacts cannot. Changing the customer requires enabling access again. This does not grant console, root, shutdown, rebuild or deletion access.

If a restart result is uncertain, check the server in Hetzner Console. PayRequest blocks further restarts until the previous result is confirmed or the business owner explicitly reviews the blocked action after ten minutes. It never repeats a timed-out restart automatically.

## Open a server console

In **Services & integrations → Hetzner Cloud**, enable **Allow console** for the linked server. This is a separate permission from reboot access. It applies to the selected subscription and its current customer. Changing the customer requires enabling access again; unlinking clears the permission. Console access is also available for PayRequest-provisioned servers with valid paid access.

The customer opens the **Server** tab, clicks **Open console**, then **Connect**. Refresh, reboot and console actions are grouped in one responsive toolbar with icons. A full-screen window within the same subscription page provides the VPS screen and keyboard through Hetzner VNC. Closing the modal disconnects the browser console. The customer signs in with their own Linux username and server password; PayRequest does not sign in automatically or reset passwords. The console is available to the primary customer and enabled admin/operations contacts on an active subscription. Billing/viewer contacts cannot connect.

Console connection credentials are issued only after Connect. Hetzner allows one minute to establish the connection; an established connection can last longer. PayRequest keeps these credentials only in browser memory, without analytics, session recording, URL parameters or stored credentials. Click **Disconnect** to close the browser connection. Log out of Linux first: disconnecting VNC does not end the server's login session.

The browser checks access every 15 seconds and closes the console after 30 minutes. Disabling access blocks new credentials immediately. Hetzner's direct WebSocket connection cannot be forcibly revoked by PayRequest after it has been established; client checks are best effort, not provider-side session revocation. Review existing Linux sessions separately when removing access.

### Customer console steps

**1. Open your server**

Sign in to the business’s customer portal, open **My services**, select your subscription and choose **Server**.

**2. Connect**

Select **Open console**, then **Connect** in the full-screen window. Keep the window open while the connection starts. No new browser tab is needed.

**3. Sign in to Linux**

Click inside the server screen to use your keyboard. Enter your own Linux username and server password. An SSH private key does not sign you in through this console. Ask your hosting provider if you do not have console login details.

**4. Finish your session**

Log out of Linux, then select **Disconnect** or **Close console**. Closing the window disconnects the browser but does not log out of Linux for you.

### Troubleshooting

> **The Server tab or console button is missing**
>
> Check that the server is linked to the correct subscription and that **Allow console** is enabled for its current customer. The subscription must be active; automatically delivered servers also require valid paid access. Billing and viewer contacts cannot open the console. Reopen the subscription after your provider changes access.

> **Wait before opening a new console connection**
>
> Wait until the countdown finishes before selecting **Connect** again. PayRequest does not retry automatically. Avoid opening several sessions at once; after an uncertain response, the wait can be longer.

> **The console cannot connect**
>
> Refresh the server details and check that the server is running. Wait and try connecting again. If the issue continues, contact your hosting provider so they can check the server and project in Hetzner Console. A browser console is not an SSH connection and does not reset the server password.

> **The server status has not changed after a restart**
>
> Hetzner processes actions asynchronously. Use **Refresh server details** to check the result. An uncertain action is not automatically repeated; the business owner must review it before another attempt.

## Related guides

* [Services & integrations](/business-settings/app-store)
* [Customer portal](/customer-management/customer-portal)
* [Contact persons and portal access](/customer-management/contact-persons)
* [Subscription self-service](/subscriptions/customer-self-service)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.