# Close your account

> Close your Coritan account once every service has ended and every invoice is paid, and learn what closing it does.

Source: https://www.coritan.com/docs/account/close-account/

In the dashboard:

- /dashboard/settings/profile: https://www.coritan.com/dashboard/settings/profile

When you no longer need Coritan, close your account on the **Profile** tab of **Settings**. You can close it once nothing on it is still running or unpaid, and no refund request is still open. A closed account cannot sign in.

## Before you begin

- Sign in to the [dashboard](https://www.coritan.com/dashboard) with your own account, and have your password to hand. A [team member](/docs/account/team-members/) cannot close an account they work in.
- [Cancel every service](/docs/billing/cancel-a-service/) and wait for it to end. A service you cancelled at the end of its term still counts until that date.
- [Pay every unpaid or overdue invoice](/docs/billing/invoices/#pay-an-invoice).
- Settle every open [refund request](/docs/billing/refund-requests/). [Withdraw](/docs/billing/refund-requests/#withdraw-a-request) one that is `Waiting for review`, or wait for our decision on it. One that is `Being refunded` cannot be withdrawn, so wait for the refund to finish.
- Remove anything else that is still live on the account, such as DNS zones, registered domains, proxy routes or [organizations](/docs/organizations/) you own. The dialog lists anything left.
- If your balance is below zero, [add credit](/docs/billing/add-credit/) to bring it back to zero.

> [!WARNING]
> Closing does not pay out the credit on your account. It also switches off your API keys, and they stay off even if Coritan reopens the account later.

## Close the account

1. In the sidebar, select **Settings**. The **Profile** tab opens.
2. Under **Danger zone**, select **Close account…**. The **Close your account** dialog checks the account first.
3. If the dialog shows **Your account cannot close yet**, finish what it lists, then select **Check again**. It lists:
   - services to cancel, each with the date it ends or its status
   - invoices to pay, each with the amount still due
   - refund requests waiting for a decision, each with its invoice and its status, `Waiting for review` or `Being refunded`
   - anything else still live, under **Also to remove**, with how many there are
   - a balance below zero, under **Balance to settle**

   Each service, invoice and refund request links to the page where you deal with it. A refund request opens the **Refunds** tab of **Billing**.
4. Enter **Your password**.
5. If you like, tell us **Why are you closing it?**. Only Coritan staff read the answer.
6. Type your sign-in email address to confirm.
7. Select **Close account**.

## Result

A message confirms `Account closed.`, and this browser signs out and opens the Coritan home page. Closing the account also:

- signs out every other browser and script, as [Sign out and end sessions](/docs/account/sessions/) describes
- switches off every API key
- withdraws a [sign-in email change](/docs/account/change-email/) that is waiting for its link
- stops your [team members](/docs/account/team-members/) from working in the account

We email you to confirm that the account is closed. If you change your mind, [contact support](/docs/support/): Coritan staff can reopen a closed account.

## Troubleshooting

`Incorrect password`
: **Your password** is wrong. If you have forgotten it, [reset it](/docs/account/password/#reset-a-forgotten-password).

`Too many wrong passwords. Wait a few minutes and try again.`
: The password was wrong 10 times in 15 minutes. Wait a few minutes, then try again.

**Close account** is greyed out
: Enter your password, and type your sign-in email address as the dialog shows it.

A service I cancelled is still listed
: A service cancelled at the end of its term runs until the date the dialog shows. Wait until then, or [cancel it at once](/docs/billing/cancel-a-service/).

A refund request is listed
: Staff have not finished with it. On the **Refunds** tab of **Billing**, withdraw a request that is `Waiting for review`, or wait for our decision. A request that is `Being refunded` finishes on its own. Then select **Check again**.

`Account is suspended or closed` when you sign in
: The account is closed. To use it again, [contact support](/docs/support/).

`Email already registered` when you sign up again
: The closed account keeps its email address. [Contact support](/docs/support/) to reopen it, or sign up with another address.

## Related

- [Cancel a service](/docs/billing/cancel-a-service/)
- [Pay an invoice](/docs/billing/invoices/)
- [Manage API keys](/docs/account/api-keys/)

## With the API

Only the owner closes an account. A request that names another account in the `X-Coritan-Account` header answers `403` with `"code": "act_for_refused"` and `Only an account's owner can close it. Switch back to your own account to close it.`

### Check whether the account can close

[`GET /auth/me/close`](/docs/api/reference/client/account-settings/#op-get-api-v1-auth-me-close) says whether the account can close now, and what to do first if not:

```bash
curl https://api.coritan.com/api/v1/auth/me/close \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

```json
{
  "closable": false,
  "services": [
    {
      "id": 311,
      "name": "CX2",
      "hostname": "survival-smp",
      "status": "pending_termination",
      "ends_at": "2026-10-25T00:00:00"
    }
  ],
  "invoices": [
    {
      "id": 5011,
      "invoice_number": "INV-20260925-48213",
      "status": "unpaid",
      "amount_due": "12.99",
      "currency": "USD",
      "due_date": "2026-09-28T00:00:00"
    }
  ],
  "refund_requests": [
    {
      "id": 142,
      "invoice_id": 4870,
      "invoice_number": "INV-20260912-30877",
      "amount": "9.99",
      "currency": "USD",
      "reason": "The server never started after I ordered it.",
      "status": "pending",
      "status_label": "Waiting for review",
      "admin_notes": null,
      "method": null,
      "method_label": null,
      "created_at": "2026-09-24T10:14:03",
      "decided_at": null,
      "can_withdraw": true
    }
  ],
  "blockers": [
    {"kind": "dns_zones", "label": "DNS zones", "count": 2}
  ],
  "credit_balance": "4.50",
  "currency": "USD",
  "message": "Before you can close your account, cancel this service and wait for it to end: CX2 (survival-smp); pay invoice INV-20260925-48213; withdraw your refund request for invoice INV-20260912-30877, or wait for our decision on it; remove 2 DNS zones."
}
```

`closable`
: `true` when nothing stops the account from closing.

`services`
: The services that have not ended, at most 50. `ends_at` is the date a service cancelled at the end of its term ends, and `null` for the others.

`invoices`
: The unpaid and overdue invoices, at most 50, with the `amount_due` still to pay.

`refund_requests`
: The refund requests still open, oldest first and at most 50, in the shape [`GET /billing/refund-requests`](/docs/billing/refund-requests/#list-your-refund-requests) lists them. A `pending` request has `can_withdraw` set to `true`: withdraw it, or wait for our decision. A `processing` request is being refunded, and `message` then asks you to `wait for the refund of invoice INV-20260912-30877 to finish`.

`blockers`
: Anything else still live: what it is (`kind`, and `label` to show), and how many there are (`count`).

`credit_balance` and `currency`
: Your balance, in US dollars. A balance below zero stops the account from closing.

`message`
: What to do first, in one sentence. It is there only when `closable` is `false`.

### Close with your password

Send your password, and a reason if you like, to [`POST /auth/me/close`](/docs/api/reference/client/account-settings/#op-post-api-v1-auth-me-close):

```bash
curl -X POST https://api.coritan.com/api/v1/auth/me/close \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"password": "your password", "reason": "Moving the project elsewhere"}'
```

It answers `{"closed": true, "sessions_revoked": 2, "api_keys_revoked": 1}`: how many sessions it signed out and how many keys it switched off. From then on, every token for the account answers `403` with `Account is suspended or closed`. `reason` is optional, up to 500 characters, and only Coritan staff read it.

| Status | Answer | Why |
| --- | --- | --- |
| `403` | `Incorrect password` | The password is wrong. |
| `409` | `"code": "close_refused"` | Something still stops the account from closing. The answer holds `message` and the same lists as `GET /auth/me/close`. |
| `429` | `"error": "rate_limited"` | 10 wrong passwords in 15 minutes. `retry_after_seconds` and the `Retry-After` header say how long to wait. |

## API

- `GET /api/v1/auth/me/close`: Whether the account can close now, and what to do first if not (https://www.coritan.com/docs/api/reference/client/account-settings/#op-get-api-v1-auth-me-close)
- `POST /api/v1/auth/me/close`: Close the account (https://www.coritan.com/docs/api/reference/client/account-settings/#op-post-api-v1-auth-me-close)
