Platform
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.
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
{
"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
All problem types are listed on Errors.