# A person must confirm this spend

> confirmation-required: HTTP 403. Nothing was charged. Keep the machine quote_id and give the user the approval_url; retry with the confirmation_token it returns, or use an agent key whose limits cover the spend.

Source: https://emailmovers.com/mydatahub/docs/errors/confirmation-required

`confirmation-required` is returned with HTTP status 403. Its type URI is `https://emailmovers.com/mydatahub/docs/errors/confirmation-required`.

## What it means

No person confirmed this spend and no agent key covers it. A flag set by a model is never consent. Nothing was charged and no order was created.

Keep the machine quote_id. A person approves it at approval_url, or an agent key whose limits cover the spend places the order.

## What to do

Nothing was charged. Keep the machine quote_id and give the user the approval_url; retry with the confirmation_token it returns, or use an agent key whose limits cover the spend.

## Members it adds

Beyond `type`, `title`, `status`, `detail`, `code` and `next_step`, this problem carries `action`, `quote_id`, `approval_url` and `expires_at`. They are published in the `ConfirmationRequiredProblem` schema of the OpenAPI document.

## Example

```json
{
  "type": "https://emailmovers.com/mydatahub/docs/errors/confirmation-required",
  "title": "A person must confirm this spend",
  "status": 403,
  "code": "confirmation-required",
  "detail": "A person must approve this order.",
  "next_step": "Nothing was charged. Keep the machine quote_id and give the user the approval_url; retry with the confirmation_token it returns, or use an agent key whose limits cover the spend.",
  "action": "order",
  "quote_id": "qte_01JB4M2R6T1Y5W8ZAK8Q2V7XN3",
  "approval_url": "https://mydatahub.emailmovers.com/quotes/qte_01JB4M2R6T1Y5W8ZAK8Q2V7XN3/approve",
  "expires_at": "2026-09-27T10:14:00Z"
}
```

## See also

- [Spending safely](https://emailmovers.com/mydatahub/docs/spending-safely.md)

All problem types are listed on [Errors](https://emailmovers.com/mydatahub/docs/errors.md).
