# Place the order from a cart

`POST /v1/carts/@uuid/confirm` · scope `orders:write`

With enough money (balance, or a bank transfer carrying `pay_code`) and complete details, creates the order and a paid invoice. Calling it again never creates a second order. Requires both `orders:write` and `billing:write`: missing either returns 403 `insufficient_scope`.

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/v1/carts/@uuid/confirm` |
| Method | `POST` |
| Scope | `orders:write` |
| Header | `Authorization: Bearer <token>` |
| Content-Type | — (no body) |
| Tokens that can call it | app tokens (`tinoat_`), personal API tokens (`tinopat_`) |

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `uuid` | path | string | yes | Cart code (`uuid` returned by POST /carts) |

## Example request

```bash
curl -X POST "https://api.tino.vn/v1/carts/c0ffee00-1234-4abc-8def-0123456789ab/confirm" \
  -H "Authorization: Bearer $TINO_TOKEN"
```

`$TINO_TOKEN` is a token with the scope `orders:write`. Path parameters in the example are sample values.

SDK ([SDK & examples](/en/docs/sdk)): no dedicated function yet, use `client.request("POST", "/carts/@uuid/confirm")`.

## Example response

No live sample: the route changes real data or the test account has no data for it. The answer is a JSON object; errors follow the common shape in [Calling the Tino API](/en/docs/api#errors).
