{"name":"ContaFino API","message":"Elegant Finances, Effortless Control","version":"2.0.0","status":"running","health":"/api/health","environment":"development","endpoints":{"health":"GET /api/health - API and database status","metrics":"GET /api/metrics - Application metrics","auth":{"register":"POST /api/auth/register - Register user with organization","login":"POST /api/auth/login - Login user","refresh":"POST /api/auth/refresh - Refresh authentication token","profile":"GET /api/auth/profile - User profile with organizations","verify":"GET /api/auth/verify - Verify token validity","logout":"POST /api/auth/logout - Logout user"},"invitations":{"list":"GET /api/invitations - List invitations with filters","get":"GET /api/invitations/:id - Get invitation details","create":"POST /api/invitations - Create invitation (Admin)","resend":"POST /api/invitations/:id/resend - Resend invitation (Admin)","cancel":"DELETE /api/invitations/:id - Cancel invitation (Admin)","accept":"POST /api/invitations/accept - Accept invitation (public)","pending":"GET /api/invitations/pending - List pending invitations"},"currencies":{"list":"GET /api/currencies - List all active currencies","get":"GET /api/currencies/:id - Get currency by ID","getByCode":"GET /api/currencies/code/:code - Get by ISO 4217 code"},"countries":{"list":"GET /api/countries - List all active countries","listWithCurrency":"GET /api/countries?with_currency=true - With currency info","get":"GET /api/countries/:id - Get country by ID","getWithCurrency":"GET /api/countries/:id/with-currency - With currency","getByCode":"GET /api/countries/code/:code - Get by ISO 3166-1 code","getByCodeWithCurrency":"GET /api/countries/code/:code/with-currency"},"dashboard":{"get":"GET /api/dashboard/:organizationId - Dashboard data"},"organizations":{"list":"GET /api/organizations - List user organizations","get":"GET /api/organizations/:id - Get organization details","create":"POST /api/organizations - Create new organization","update":"PATCH /api/organizations/:id - Update organization","delete":"DELETE /api/organizations/:id - Delete organization"},"commercialEntities":{"list":"GET /api/commercial-entities - List commercial entities","get":"GET /api/commercial-entities/:id - Get commercial entity","create":"POST /api/commercial-entities - Create commercial entity","update":"PATCH /api/commercial-entities/:id - Update commercial entity","delete":"DELETE /api/commercial-entities/:id - Delete commercial entity","suppliers":"GET /api/commercial-entities/organization/:orgId/suppliers","customers":"GET /api/commercial-entities/organization/:orgId/customers","byTaxId":"GET /api/commercial-entities/organization/:orgId/tax-id/:taxId"},"segments":{"list":"GET /api/segments - List segments","get":"GET /api/segments/:id - Get segment details","create":"POST /api/segments - Create segment","update":"PATCH /api/segments/:id - Update segment","delete":"DELETE /api/segments/:id - Delete segment"},"chartsOfAccounts":{"list":"GET /api/charts-of-accounts - List charts of accounts","get":"GET /api/charts-of-accounts/:id - Get chart of accounts","create":"POST /api/charts-of-accounts - Create chart of accounts","update":"PATCH /api/charts-of-accounts/:id - Update chart of accounts","delete":"DELETE /api/charts-of-accounts/:id - Delete chart of accounts","getDefault":"GET /api/charts-of-accounts/organization/:orgId/default","setDefault":"PUT /api/charts-of-accounts/set-default","changeStatus":"PATCH /api/charts-of-accounts/:id/status","withAccounts":"GET /api/charts-of-accounts/:id/with-accounts","summary":"GET /api/charts-of-accounts/:id/summary","byStatus":"GET /api/charts-of-accounts/organization/:orgId/by-status/:status"},"chartAccounts":{"list":"GET /api/chart-accounts - List chart accounts","get":"GET /api/chart-accounts/:id - Get chart account","create":"POST /api/chart-accounts - Create chart account","update":"PATCH /api/chart-accounts/:id - Update chart account","delete":"DELETE /api/chart-accounts/:id - Delete chart account","byChart":"GET /api/chart-accounts/chart/:chartId","transactionAccounts":"GET /api/chart-accounts/organization-transactions"},"chartTemplates":{"list":"GET /api/chart-templates - List available templates","preview":"GET /api/chart-templates/:code/preview","apply":"POST /api/chart-templates/:code/apply","validate":"GET /api/chart-templates/:code/validate-target","availableCharts":"GET /api/chart-templates/:code/organization/:orgId/charts","recommendations":"GET /api/chart-templates/organization/:orgId/recommendations","stats":"GET /api/chart-templates/stats"},"accountingPeriods":{"list":"GET /api/accounting-periods - List accounting periods","get":"GET /api/accounting-periods/:id - Get accounting period","create":"POST /api/accounting-periods - Create accounting period","update":"PATCH /api/accounting-periods/:id - Update accounting period","delete":"DELETE /api/accounting-periods/:id - Delete accounting period","close":"POST /api/accounting-periods/:id/close - Close period (Admin)","getOpen":"GET /api/accounting-periods/organization/:orgId/open"},"accountMappings":{"list":"GET /api/account-mappings - List account mappings","get":"GET /api/account-mappings/:id - Get account mapping","create":"POST /api/account-mappings - Create account mapping","update":"PATCH /api/account-mappings/:id - Update account mapping","delete":"DELETE /api/account-mappings/:id - Delete account mapping","getActive":"GET /api/account-mappings/organization/:orgId/active","validate":"GET /api/account-mappings/organization/:orgId/validate"},"transactions":{"list":"GET /api/transactions - List transactions","get":"GET /api/transactions/:id - Get transaction (header only)","create":"POST /api/transactions - Create transaction","update":"PATCH /api/transactions/:id - Update transaction","delete":"DELETE /api/transactions/:id - Soft delete","createWithDetails":"POST /api/transactions/with-details - Atomic create","getWithDetails":"GET /api/transactions/:id/with-details","updateWithDetails":"PATCH /api/transactions/:id/with-details","searchByOrganization":"GET /api/transactions/organization/:orgId/search"},"openingBalances":{"create":"POST /api/opening-balances - Create opening balance","get":"GET /api/opening-balances/:id - Get opening balance","getByPeriod":"GET /api/opening-balances/period/:periodId","update":"PATCH /api/opening-balances/:id - Update (draft only)","delete":"DELETE /api/opening-balances/:id - Delete (draft only)","post":"POST /api/opening-balances/:id/post - Post opening balance"},"purchases":{"list":"GET /api/purchases - List purchases","get":"GET /api/purchases/:id - Get purchase details","create":"POST /api/purchases - Create purchase","update":"PATCH /api/purchases/:id - Update purchase","delete":"DELETE /api/purchases/:id - Delete purchase","createWithItems":"POST /api/purchases/with-items - Transactional create","getWithItems":"GET /api/purchases/:id/with-items","changeStatus":"PATCH /api/purchases/:id/status","post":"POST /api/purchases/:id/post - Generate journal entry","byOrganization":"GET /api/purchases/organization/:orgId/all"},"accountsPayable":{"list":"GET /api/accounts-payable - List accounts payable","get":"GET /api/accounts-payable/:id - Get details","update":"PATCH /api/accounts-payable/:id - Update (Editor+)","delete":"DELETE /api/accounts-payable/:id - Delete (Editor+)","byPurchase":"GET /api/accounts-payable/purchase/:purchaseId","byOrganization":"GET /api/accounts-payable/organization/:orgId/all","overdue":"GET /api/accounts-payable/organization/:orgId/overdue","byProvider":"GET /api/accounts-payable/organization/:orgId/provider/:providerId","stats":"GET /api/accounts-payable/organization/:orgId/stats"},"payments":{"list":"GET /api/payments - List payments","get":"GET /api/payments/:id - Get payment details","create":"POST /api/payments - Create payment (Editor+)","update":"PATCH /api/payments/:id - Update (unposted only)","delete":"DELETE /api/payments/:id - Delete (unposted only)","byAccountsPayable":"GET /api/payments/accounts-payable/:accountsPayableId","byOrganization":"GET /api/payments/organization/:orgId/all","byDateRange":"GET /api/payments/organization/:orgId/by-date-range","byMethod":"GET /api/payments/organization/:orgId/by-method/:paymentMethod"},"sales":{"list":"GET /api/sales - List sales","get":"GET /api/sales/:id - Get sale details","create":"POST /api/sales - Create sale","update":"PATCH /api/sales/:id - Update sale","delete":"DELETE /api/sales/:id - Delete sale","createWithItems":"POST /api/sales/with-items - Transactional create","getWithItems":"GET /api/sales/:id/with-items","updateWithItems":"PATCH /api/sales/:id/with-items","changeStatus":"PATCH /api/sales/:id/status","post":"POST /api/sales/:id/post - Generate journal entry","byOrganization":"GET /api/sales/organization/:orgId/all","byStatus":"GET /api/sales/organization/:orgId/by-status/:status","pending":"GET /api/sales/organization/:orgId/pending","posted":"GET /api/sales/organization/:orgId/posted","search":"GET /api/sales/organization/:orgId/search"},"accountsReceivable":{"list":"GET /api/accounts-receivable - List accounts receivable","get":"GET /api/accounts-receivable/:id - Get details","update":"PATCH /api/accounts-receivable/:id - Update (Editor+)","delete":"DELETE /api/accounts-receivable/:id - Delete (Editor+)","receivable":"GET /api/accounts-receivable/receivable - Open/partial/overdue","bySale":"GET /api/accounts-receivable/sale/:saleId","byOrganization":"GET /api/accounts-receivable/organization/:orgId/all","overdue":"GET /api/accounts-receivable/organization/:orgId/overdue","pending":"GET /api/accounts-receivable/organization/:orgId/pending","byClient":"GET /api/accounts-receivable/organization/:orgId/client/:clientId","stats":"GET /api/accounts-receivable/organization/:orgId/stats"},"receipts":{"list":"GET /api/receipts - List receipts","get":"GET /api/receipts/:id - Get receipt details","create":"POST /api/receipts - Create receipt (Editor+)","update":"PATCH /api/receipts/:id - Update (unposted only)","delete":"DELETE /api/receipts/:id - Delete (unposted only)","byAccountsReceivable":"GET /api/receipts/accounts-receivable/:accountsReceivableId","byOrganization":"GET /api/receipts/organization/:orgId/all","byDateRange":"GET /api/receipts/organization/:orgId/by-date-range","byMethod":"GET /api/receipts/organization/:orgId/by-method/:paymentMethod"},"bankAccounts":{"list":"GET /api/bank-accounts - List bank accounts","get":"GET /api/bank-accounts/:id - Get bank account details","create":"POST /api/bank-accounts - Create bank account (Editor+)","update":"PATCH /api/bank-accounts/:id - Update bank account (Editor+)","delete":"DELETE /api/bank-accounts/:id - Delete bank account (Editor+)","byOrganization":"GET /api/bank-accounts/organization/:orgId/all","byType":"GET /api/bank-accounts/organization/:orgId/by-type/:accountType"},"reports":{"trialBalance":"GET /api/reports/trial-balance/:organizationId?startDate&endDate"},"auditLogs":{"list":"GET /api/audit-logs - List audit logs with filters and pagination","search":"GET /api/audit-logs/search - Search by metadata","entityHistory":"GET /api/audit-logs/entity/:entityType/:entityId - Entity history","userActivity":"GET /api/audit-logs/user/:userId - User activity"}},"features":{"multitenancy":"Organization-based data isolation with security","rbac":"Role-based access control (admin/editor/viewer)","softDelete":"Soft delete with active/inactive states","pagination":"Standardized pagination with metadata","search":"Full-text search across relevant fields","sorting":"Flexible sorting with field validation","filtering":"Advanced filtering by organization and criteria","authentication":"JWT with refresh tokens and organization membership","validation":"Joi schema validation with Spanish error messages","errorHandling":"Unified error responses with CrudError system","architecture":"BaseCrudModel for consistent CRUD operations","typeScript":"Strict TypeScript without any types","dryPrinciple":"Code reusability with zero duplication","elegantDesign":"Italian-inspired elegant UX patterns","currencySupport":"Multi-currency with ISO 4217 codes","countryConfig":"Country configuration with ISO 3166-1 codes","functionalCurrency":"Organization-level functional currency","chartTemplates":"System-wide chart of accounts templates","treasuryManagement":"Complete accounts payable and payment tracking","bankAccountManagement":"Multi-account bank management with balance tracking","overdueTracking":"Automatic overdue account detection and reporting"}}