---
title: "Ask for a box by invoice, the manual path"
method: POST
path: "/api/managed/purchase"
tags: ["nodes"]
---

# Ask for a box by invoice, the manual path

`POST /api/managed/purchase`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/managed/purchase`
- Auth: none declared

Record the request; the owner then invoices by hand.

Idempotent on the account: a repeat answers ``200`` with the current
state and writes nothing. Refused ``409`` once every launch place is
taken (seats held plus open invoices).

## Response `200`

The account already asked

- ManagedPurchaseView: Where the account's hosted-machine purchase stands (PR 9). Never the invoice reference or the cohort seat: both are operator data.
  - `state` 'none' | 'asked' | 'invoiced' | 'paid' | 'lapsed' | 'full', required
  - `requested_at` string, date-time, nullable, required
  - `paid_until` string, date-time, nullable, required
  - `trials_left` integer, required
  - `trial_available` boolean, required

## Other responses

- `201`: Successful Response
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
