description:'Backend API cho FinWise - Sổ tay Chi tiêu & Báo cáo Tài chính (Zalo Mini App). API cung cấp xác thực, quản lý người dùng, ví, danh mục, giao dịch, ngân sách và mục tiêu tiết kiệm.',
description:'Backend API cho FinWise - Sổ tay Chi tiêu & Báo cáo Tài chính (Zalo Mini App). API cung cấp xác thực, quản lý người dùng, ví, danh mục, giao dịch, ngân sách, mục tiêu tiết kiệm và Trợ lý Tài chính AI.',
AIRateLimit:{description:'Đã vượt giới hạn yêu cầu AI theo người dùng',content:{'application/json':{schema:{$ref:'#/components/schemas/ErrorResponse'}}}},
AIInvalidResponse:{description:'Phản hồi AI không vượt qua kiểm tra cấu trúc',content:{'application/json':{schema:{$ref:'#/components/schemas/ErrorResponse'}}}},
AIUnavailable:{description:'AI chưa được cấu hình hoặc tạm thời không khả dụng',content:{'application/json':{schema:{$ref:'#/components/schemas/ErrorResponse'}}}},
description:'Chooses only from active system categories and categories owned by the authenticated user. The suggestion does not create or update a transaction.',
description:'Accepts one JPEG, PNG, WebP, or PDF in the receipt field. The file is processed in memory, sent to the configured AI provider, and is not persisted by this endpoint.',
summary:'Ask a natural-language question about personal finances',
description:'Stateless Q&A over owned financial data. Defaults to the latest 90 days. Personal profile fields, receipt URLs, and locations are excluded from AI context.',
security:[{BearerAuth:[]}],
requestBody:{
required:true,
content:{
'application/json':{
schema:{$ref:'#/components/schemas/AIChatBody'},
},
},
},
responses:{
200:{
description:'Financial answer and supporting highlights',