AI credits
Shop wallet reserve/capture. Exhaustion is 402.
AI calls debit the shop wallet. Staff do not paste their own provider keys.
Flow
- reserve — credits are held before the job starts
- The job produces a draft (SEO, content, category, channel attributes)
- capture — captured on success; released on failure/cancel
- Staff apply the draft; nothing is written automatically
Quota
Plan quotas are listed on /pricing. When the wallet is empty the API returns AI_CREDITS_EXHAUSTED (HTTP 402), not a generic CONFLICT.
Amounts are stored as decimal strings.