@nightsquawktech/invoiceninja-mcp-server 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMMERCIAL.md +35 -0
- package/LICENSE +661 -0
- package/README.md +128 -0
- package/dist/catalog/endpoint-spec.js +36 -0
- package/dist/catalog/endpoints/action_invoice.json +41 -0
- package/dist/catalog/endpoints/action_payment.json +41 -0
- package/dist/catalog/endpoints/action_purchase_order.json +41 -0
- package/dist/catalog/endpoints/action_quote.json +41 -0
- package/dist/catalog/endpoints/action_recurring_invoice.json +41 -0
- package/dist/catalog/endpoints/action_recurring_quote.json +41 -0
- package/dist/catalog/endpoints/bulk_bank_integrations.json +26 -0
- package/dist/catalog/endpoints/bulk_bank_transaction_rules.json +26 -0
- package/dist/catalog/endpoints/bulk_bank_transactions.json +26 -0
- package/dist/catalog/endpoints/bulk_clients.json +46 -0
- package/dist/catalog/endpoints/bulk_company_gateways.json +27 -0
- package/dist/catalog/endpoints/bulk_credits.json +26 -0
- package/dist/catalog/endpoints/bulk_designs.json +27 -0
- package/dist/catalog/endpoints/bulk_expense_categorys.json +27 -0
- package/dist/catalog/endpoints/bulk_expenses.json +27 -0
- package/dist/catalog/endpoints/bulk_group_settings.json +26 -0
- package/dist/catalog/endpoints/bulk_invoices.json +44 -0
- package/dist/catalog/endpoints/bulk_locations.json +40 -0
- package/dist/catalog/endpoints/bulk_payment_terms.json +27 -0
- package/dist/catalog/endpoints/bulk_payments.json +27 -0
- package/dist/catalog/endpoints/bulk_products.json +46 -0
- package/dist/catalog/endpoints/bulk_projects.json +27 -0
- package/dist/catalog/endpoints/bulk_purchase_orderss.json +26 -0
- package/dist/catalog/endpoints/bulk_quotes.json +39 -0
- package/dist/catalog/endpoints/bulk_recurring_expenses.json +27 -0
- package/dist/catalog/endpoints/bulk_recurring_invoices.json +39 -0
- package/dist/catalog/endpoints/bulk_recurring_quotes.json +27 -0
- package/dist/catalog/endpoints/bulk_subscriptions.json +27 -0
- package/dist/catalog/endpoints/bulk_tags.json +51 -0
- package/dist/catalog/endpoints/bulk_task_scheduler_actions.json +27 -0
- package/dist/catalog/endpoints/bulk_task_statuss.json +27 -0
- package/dist/catalog/endpoints/bulk_tasks.json +27 -0
- package/dist/catalog/endpoints/bulk_tax_rates.json +27 -0
- package/dist/catalog/endpoints/bulk_tokens.json +27 -0
- package/dist/catalog/endpoints/bulk_users.json +27 -0
- package/dist/catalog/endpoints/bulk_vendors.json +27 -0
- package/dist/catalog/endpoints/bulk_webhooks.json +27 -0
- package/dist/catalog/endpoints/client_statement.json +77 -0
- package/dist/catalog/endpoints/confirm_apple_purchase.json +23 -0
- package/dist/catalog/endpoints/create_task_scheduler.json +81 -0
- package/dist/catalog/endpoints/delete_bank_integration.json +32 -0
- package/dist/catalog/endpoints/delete_bank_transaction.json +32 -0
- package/dist/catalog/endpoints/delete_bank_transaction_rule.json +32 -0
- package/dist/catalog/endpoints/delete_client.json +38 -0
- package/dist/catalog/endpoints/delete_client_gateway_token.json +32 -0
- package/dist/catalog/endpoints/delete_company.json +32 -0
- package/dist/catalog/endpoints/delete_company_gateway.json +32 -0
- package/dist/catalog/endpoints/delete_credit.json +32 -0
- package/dist/catalog/endpoints/delete_design.json +32 -0
- package/dist/catalog/endpoints/delete_expense.json +32 -0
- package/dist/catalog/endpoints/delete_expense_category.json +24 -0
- package/dist/catalog/endpoints/delete_group_setting.json +32 -0
- package/dist/catalog/endpoints/delete_invoice.json +32 -0
- package/dist/catalog/endpoints/delete_location.json +24 -0
- package/dist/catalog/endpoints/delete_payment.json +32 -0
- package/dist/catalog/endpoints/delete_payment_term.json +32 -0
- package/dist/catalog/endpoints/delete_product.json +32 -0
- package/dist/catalog/endpoints/delete_project.json +32 -0
- package/dist/catalog/endpoints/delete_purchase_order.json +32 -0
- package/dist/catalog/endpoints/delete_quote.json +32 -0
- package/dist/catalog/endpoints/delete_recurring_expense.json +32 -0
- package/dist/catalog/endpoints/delete_recurring_invoice.json +32 -0
- package/dist/catalog/endpoints/delete_recurring_quote.json +32 -0
- package/dist/catalog/endpoints/delete_settings_passkey.json +22 -0
- package/dist/catalog/endpoints/delete_subscription.json +32 -0
- package/dist/catalog/endpoints/delete_tag.json +24 -0
- package/dist/catalog/endpoints/delete_task.json +32 -0
- package/dist/catalog/endpoints/delete_task_status.json +32 -0
- package/dist/catalog/endpoints/delete_tax_rate.json +24 -0
- package/dist/catalog/endpoints/delete_token.json +32 -0
- package/dist/catalog/endpoints/delete_user.json +40 -0
- package/dist/catalog/endpoints/delete_vendor.json +32 -0
- package/dist/catalog/endpoints/delete_webhook.json +32 -0
- package/dist/catalog/endpoints/destroy_task_scheduler.json +24 -0
- package/dist/catalog/endpoints/detach_user.json +32 -0
- package/dist/catalog/endpoints/download_credit.json +32 -0
- package/dist/catalog/endpoints/download_invoice_by_invitation.json +32 -0
- package/dist/catalog/endpoints/download_purchase_order.json +32 -0
- package/dist/catalog/endpoints/download_quote.json +32 -0
- package/dist/catalog/endpoints/download_recurring_invoice.json +32 -0
- package/dist/catalog/endpoints/edit_bank_integration.json +33 -0
- package/dist/catalog/endpoints/edit_bank_transaction.json +33 -0
- package/dist/catalog/endpoints/edit_bank_transaction_rule.json +33 -0
- package/dist/catalog/endpoints/edit_client.json +39 -0
- package/dist/catalog/endpoints/edit_client_gateway_token.json +33 -0
- package/dist/catalog/endpoints/edit_company.json +33 -0
- package/dist/catalog/endpoints/edit_company_gateway.json +33 -0
- package/dist/catalog/endpoints/edit_credit.json +33 -0
- package/dist/catalog/endpoints/edit_design.json +33 -0
- package/dist/catalog/endpoints/edit_expense.json +33 -0
- package/dist/catalog/endpoints/edit_expense_category.json +25 -0
- package/dist/catalog/endpoints/edit_group_setting.json +33 -0
- package/dist/catalog/endpoints/edit_invoice.json +33 -0
- package/dist/catalog/endpoints/edit_payment.json +33 -0
- package/dist/catalog/endpoints/edit_payment_terms.json +33 -0
- package/dist/catalog/endpoints/edit_product.json +33 -0
- package/dist/catalog/endpoints/edit_project.json +33 -0
- package/dist/catalog/endpoints/edit_purchase_order.json +33 -0
- package/dist/catalog/endpoints/edit_quote.json +33 -0
- package/dist/catalog/endpoints/edit_recurring_expense.json +33 -0
- package/dist/catalog/endpoints/edit_recurring_invoice.json +33 -0
- package/dist/catalog/endpoints/edit_recurring_quote.json +33 -0
- package/dist/catalog/endpoints/edit_subscription.json +33 -0
- package/dist/catalog/endpoints/edit_tag.json +24 -0
- package/dist/catalog/endpoints/edit_task.json +33 -0
- package/dist/catalog/endpoints/edit_task_statuss.json +33 -0
- package/dist/catalog/endpoints/edit_tax_rate.json +25 -0
- package/dist/catalog/endpoints/edit_token.json +33 -0
- package/dist/catalog/endpoints/edit_user.json +33 -0
- package/dist/catalog/endpoints/edit_vendor.json +33 -0
- package/dist/catalog/endpoints/edit_webhook.json +33 -0
- package/dist/catalog/endpoints/get_account_transactions.json +24 -0
- package/dist/catalog/endpoints/get_activities.json +44 -0
- package/dist/catalog/endpoints/get_activity_historical_entity_pdf.json +31 -0
- package/dist/catalog/endpoints/get_activity_report.json +49 -0
- package/dist/catalog/endpoints/get_ardetail_report.json +49 -0
- package/dist/catalog/endpoints/get_arsummary_report.json +49 -0
- package/dist/catalog/endpoints/get_bank_integrations.json +61 -0
- package/dist/catalog/endpoints/get_bank_integrations_create.json +24 -0
- package/dist/catalog/endpoints/get_bank_transaction_rules.json +62 -0
- package/dist/catalog/endpoints/get_bank_transaction_rules_create.json +24 -0
- package/dist/catalog/endpoints/get_bank_transactions.json +63 -0
- package/dist/catalog/endpoints/get_bank_transactions_create.json +24 -0
- package/dist/catalog/endpoints/get_chart_calculated_fields.json +18 -0
- package/dist/catalog/endpoints/get_chart_summary_v2.json +18 -0
- package/dist/catalog/endpoints/get_chart_totals.json +38 -0
- package/dist/catalog/endpoints/get_chart_totals_v2.json +18 -0
- package/dist/catalog/endpoints/get_claim_license.json +32 -0
- package/dist/catalog/endpoints/get_client_balance_report.json +49 -0
- package/dist/catalog/endpoints/get_client_contact_report.json +49 -0
- package/dist/catalog/endpoints/get_client_gateway_tokens.json +45 -0
- package/dist/catalog/endpoints/get_client_gateway_tokens_create.json +24 -0
- package/dist/catalog/endpoints/get_client_report.json +64 -0
- package/dist/catalog/endpoints/get_client_sales_report.json +49 -0
- package/dist/catalog/endpoints/get_clients.json +152 -0
- package/dist/catalog/endpoints/get_clients_create.json +30 -0
- package/dist/catalog/endpoints/get_companies.json +38 -0
- package/dist/catalog/endpoints/get_companies_create.json +24 -0
- package/dist/catalog/endpoints/get_company_gateways.json +47 -0
- package/dist/catalog/endpoints/get_company_gateways_create.json +24 -0
- package/dist/catalog/endpoints/get_company_ledger.json +24 -0
- package/dist/catalog/endpoints/get_contact_report.json +64 -0
- package/dist/catalog/endpoints/get_credit_report.json +49 -0
- package/dist/catalog/endpoints/get_credits.json +55 -0
- package/dist/catalog/endpoints/get_credits_create.json +24 -0
- package/dist/catalog/endpoints/get_designs.json +54 -0
- package/dist/catalog/endpoints/get_designs_create.json +24 -0
- package/dist/catalog/endpoints/get_document_report.json +64 -0
- package/dist/catalog/endpoints/get_documents.json +54 -0
- package/dist/catalog/endpoints/get_expense_category_create.json +16 -0
- package/dist/catalog/endpoints/get_expense_categorys.json +47 -0
- package/dist/catalog/endpoints/get_expense_report.json +49 -0
- package/dist/catalog/endpoints/get_expenses.json +55 -0
- package/dist/catalog/endpoints/get_expenses_create.json +24 -0
- package/dist/catalog/endpoints/get_export.json +15 -0
- package/dist/catalog/endpoints/get_export_preview.json +25 -0
- package/dist/catalog/endpoints/get_group_settings.json +47 -0
- package/dist/catalog/endpoints/get_group_settings_create.json +24 -0
- package/dist/catalog/endpoints/get_health_check.json +15 -0
- package/dist/catalog/endpoints/get_import_json.json +15 -0
- package/dist/catalog/endpoints/get_invoice_create.json +16 -0
- package/dist/catalog/endpoints/get_invoice_delivery_note.json +32 -0
- package/dist/catalog/endpoints/get_invoice_item_report.json +64 -0
- package/dist/catalog/endpoints/get_invoice_report.json +64 -0
- package/dist/catalog/endpoints/get_invoices.json +174 -0
- package/dist/catalog/endpoints/get_last_error.json +15 -0
- package/dist/catalog/endpoints/get_locations.json +54 -0
- package/dist/catalog/endpoints/get_locations_create.json +24 -0
- package/dist/catalog/endpoints/get_logout.json +30 -0
- package/dist/catalog/endpoints/get_payment_report.json +64 -0
- package/dist/catalog/endpoints/get_payment_terms.json +54 -0
- package/dist/catalog/endpoints/get_payment_terms_create.json +24 -0
- package/dist/catalog/endpoints/get_payments.json +118 -0
- package/dist/catalog/endpoints/get_payments_create.json +24 -0
- package/dist/catalog/endpoints/get_ping.json +15 -0
- package/dist/catalog/endpoints/get_preview.json +15 -0
- package/dist/catalog/endpoints/get_preview_purchase_order.json +15 -0
- package/dist/catalog/endpoints/get_product_report.json +64 -0
- package/dist/catalog/endpoints/get_product_sales_report.json +64 -0
- package/dist/catalog/endpoints/get_products.json +118 -0
- package/dist/catalog/endpoints/get_products_create.json +24 -0
- package/dist/catalog/endpoints/get_profit_loss_report.json +64 -0
- package/dist/catalog/endpoints/get_project_report.json +49 -0
- package/dist/catalog/endpoints/get_projects.json +55 -0
- package/dist/catalog/endpoints/get_projects_create.json +24 -0
- package/dist/catalog/endpoints/get_purchase_order_create.json +24 -0
- package/dist/catalog/endpoints/get_purchase_orders.json +55 -0
- package/dist/catalog/endpoints/get_quote_item_report.json +64 -0
- package/dist/catalog/endpoints/get_quote_report.json +64 -0
- package/dist/catalog/endpoints/get_quotes.json +125 -0
- package/dist/catalog/endpoints/get_quotes_create.json +24 -0
- package/dist/catalog/endpoints/get_recurring_expenses.json +54 -0
- package/dist/catalog/endpoints/get_recurring_expenses_create.json +24 -0
- package/dist/catalog/endpoints/get_recurring_invoice_report.json +64 -0
- package/dist/catalog/endpoints/get_recurring_invoices.json +139 -0
- package/dist/catalog/endpoints/get_recurring_invoices_create.json +24 -0
- package/dist/catalog/endpoints/get_recurring_quotes.json +47 -0
- package/dist/catalog/endpoints/get_recurring_quotes_create.json +24 -0
- package/dist/catalog/endpoints/get_refresh_accounts.json +24 -0
- package/dist/catalog/endpoints/get_remove_account.json +24 -0
- package/dist/catalog/endpoints/get_report_preview.json +25 -0
- package/dist/catalog/endpoints/get_scheduler.json +15 -0
- package/dist/catalog/endpoints/get_settings_passkeys.json +15 -0
- package/dist/catalog/endpoints/get_show_template.json +47 -0
- package/dist/catalog/endpoints/get_statics.json +23 -0
- package/dist/catalog/endpoints/get_subscriptions.json +47 -0
- package/dist/catalog/endpoints/get_subscriptions_create.json +24 -0
- package/dist/catalog/endpoints/get_system_logs.json +47 -0
- package/dist/catalog/endpoints/get_tags.json +63 -0
- package/dist/catalog/endpoints/get_tags_create.json +16 -0
- package/dist/catalog/endpoints/get_task_report.json +64 -0
- package/dist/catalog/endpoints/get_task_scheduler.json +38 -0
- package/dist/catalog/endpoints/get_task_schedulers.json +15 -0
- package/dist/catalog/endpoints/get_task_statuses.json +54 -0
- package/dist/catalog/endpoints/get_task_statuss_create.json +24 -0
- package/dist/catalog/endpoints/get_tasks.json +55 -0
- package/dist/catalog/endpoints/get_tasks_create.json +24 -0
- package/dist/catalog/endpoints/get_tax_period_report.json +49 -0
- package/dist/catalog/endpoints/get_tax_rate_create.json +16 -0
- package/dist/catalog/endpoints/get_tax_rates.json +47 -0
- package/dist/catalog/endpoints/get_tax_summary_report.json +49 -0
- package/dist/catalog/endpoints/get_template_preview.json +25 -0
- package/dist/catalog/endpoints/get_tokens.json +54 -0
- package/dist/catalog/endpoints/get_tokens_create.json +24 -0
- package/dist/catalog/endpoints/get_user_sales_report.json +49 -0
- package/dist/catalog/endpoints/get_users.json +48 -0
- package/dist/catalog/endpoints/get_users_create.json +24 -0
- package/dist/catalog/endpoints/get_vendors.json +55 -0
- package/dist/catalog/endpoints/get_vendors_create.json +24 -0
- package/dist/catalog/endpoints/get_webcron.json +15 -0
- package/dist/catalog/endpoints/get_webhooks.json +54 -0
- package/dist/catalog/endpoints/get_webhooks_create.json +24 -0
- package/dist/catalog/endpoints/invite_user.json +32 -0
- package/dist/catalog/endpoints/invite_user_reconfirm.json +32 -0
- package/dist/catalog/endpoints/match_bank_transactions.json +26 -0
- package/dist/catalog/endpoints/merge_client.json +54 -0
- package/dist/catalog/endpoints/post_activities_entity.json +18 -0
- package/dist/catalog/endpoints/post_activities_notes.json +18 -0
- package/dist/catalog/endpoints/post_connected_account.json +38 -0
- package/dist/catalog/endpoints/post_import.json +51 -0
- package/dist/catalog/endpoints/post_login.json +79 -0
- package/dist/catalog/endpoints/post_one_time_token.json +15 -0
- package/dist/catalog/endpoints/post_passkey_login_options.json +24 -0
- package/dist/catalog/endpoints/post_purge_company.json +24 -0
- package/dist/catalog/endpoints/post_purge_company_save_settings.json +24 -0
- package/dist/catalog/endpoints/post_refresh.json +46 -0
- package/dist/catalog/endpoints/post_search.json +18 -0
- package/dist/catalog/endpoints/post_settings_passkeys.json +34 -0
- package/dist/catalog/endpoints/post_settings_passkeys_options.json +15 -0
- package/dist/catalog/endpoints/post_start_migration.json +31 -0
- package/dist/catalog/endpoints/postmark_webhook.json +24 -0
- package/dist/catalog/endpoints/preimport.json +69 -0
- package/dist/catalog/endpoints/process_apple_webhook.json +23 -0
- package/dist/catalog/endpoints/purge_client.json +32 -0
- package/dist/catalog/endpoints/reactivate_email.json +38 -0
- package/dist/catalog/endpoints/self_update.json +31 -0
- package/dist/catalog/endpoints/self_update_check_version.json +15 -0
- package/dist/catalog/endpoints/send_email_template.json +73 -0
- package/dist/catalog/endpoints/set_default_company.json +33 -0
- package/dist/catalog/endpoints/show_bank_integration.json +33 -0
- package/dist/catalog/endpoints/show_bank_transaction.json +33 -0
- package/dist/catalog/endpoints/show_bank_transaction_rule.json +33 -0
- package/dist/catalog/endpoints/show_client.json +39 -0
- package/dist/catalog/endpoints/show_client_gateway_token.json +33 -0
- package/dist/catalog/endpoints/show_company.json +33 -0
- package/dist/catalog/endpoints/show_company_gateway.json +33 -0
- package/dist/catalog/endpoints/show_credit.json +33 -0
- package/dist/catalog/endpoints/show_current_company.json +24 -0
- package/dist/catalog/endpoints/show_design.json +33 -0
- package/dist/catalog/endpoints/show_expense.json +33 -0
- package/dist/catalog/endpoints/show_expense_category.json +25 -0
- package/dist/catalog/endpoints/show_group_setting.json +33 -0
- package/dist/catalog/endpoints/show_invoice.json +33 -0
- package/dist/catalog/endpoints/show_location.json +33 -0
- package/dist/catalog/endpoints/show_payment.json +33 -0
- package/dist/catalog/endpoints/show_payment_term.json +33 -0
- package/dist/catalog/endpoints/show_product.json +33 -0
- package/dist/catalog/endpoints/show_project.json +33 -0
- package/dist/catalog/endpoints/show_purchase_order.json +33 -0
- package/dist/catalog/endpoints/show_quote.json +33 -0
- package/dist/catalog/endpoints/show_recurring_expense.json +33 -0
- package/dist/catalog/endpoints/show_recurring_invoice.json +33 -0
- package/dist/catalog/endpoints/show_recurring_quote.json +33 -0
- package/dist/catalog/endpoints/show_subscription.json +33 -0
- package/dist/catalog/endpoints/show_system_logs.json +33 -0
- package/dist/catalog/endpoints/show_tag.json +24 -0
- package/dist/catalog/endpoints/show_task.json +33 -0
- package/dist/catalog/endpoints/show_task_scheduler.json +24 -0
- package/dist/catalog/endpoints/show_task_status.json +33 -0
- package/dist/catalog/endpoints/show_tax_rate.json +25 -0
- package/dist/catalog/endpoints/show_token.json +33 -0
- package/dist/catalog/endpoints/show_user.json +33 -0
- package/dist/catalog/endpoints/show_vendor.json +33 -0
- package/dist/catalog/endpoints/show_webhook.json +33 -0
- package/dist/catalog/endpoints/sort_tasks.json +46 -0
- package/dist/catalog/endpoints/store_bank_integration.json +24 -0
- package/dist/catalog/endpoints/store_bank_transaction.json +24 -0
- package/dist/catalog/endpoints/store_bank_transaction_rule.json +24 -0
- package/dist/catalog/endpoints/store_client.json +237 -0
- package/dist/catalog/endpoints/store_client_gateway_token.json +24 -0
- package/dist/catalog/endpoints/store_company.json +24 -0
- package/dist/catalog/endpoints/store_company_gateway.json +24 -0
- package/dist/catalog/endpoints/store_credit.json +251 -0
- package/dist/catalog/endpoints/store_design.json +24 -0
- package/dist/catalog/endpoints/store_expense.json +24 -0
- package/dist/catalog/endpoints/store_expense_category.json +24 -0
- package/dist/catalog/endpoints/store_group_setting.json +24 -0
- package/dist/catalog/endpoints/store_invoice.json +257 -0
- package/dist/catalog/endpoints/store_location.json +119 -0
- package/dist/catalog/endpoints/store_payment.json +140 -0
- package/dist/catalog/endpoints/store_payment_term.json +59 -0
- package/dist/catalog/endpoints/store_product.json +179 -0
- package/dist/catalog/endpoints/store_project.json +113 -0
- package/dist/catalog/endpoints/store_purchase_order.json +89 -0
- package/dist/catalog/endpoints/store_quote.json +89 -0
- package/dist/catalog/endpoints/store_recurring_expense.json +24 -0
- package/dist/catalog/endpoints/store_recurring_invoice.json +101 -0
- package/dist/catalog/endpoints/store_recurring_quote.json +24 -0
- package/dist/catalog/endpoints/store_refund.json +235 -0
- package/dist/catalog/endpoints/store_subscription.json +24 -0
- package/dist/catalog/endpoints/store_tag.json +43 -0
- package/dist/catalog/endpoints/store_task.json +113 -0
- package/dist/catalog/endpoints/store_task_status.json +77 -0
- package/dist/catalog/endpoints/store_token.json +24 -0
- package/dist/catalog/endpoints/store_user.json +24 -0
- package/dist/catalog/endpoints/store_vendor.json +131 -0
- package/dist/catalog/endpoints/store_webhook.json +24 -0
- package/dist/catalog/endpoints/support_message.json +25 -0
- package/dist/catalog/endpoints/update_bank_integration.json +33 -0
- package/dist/catalog/endpoints/update_bank_transaction.json +33 -0
- package/dist/catalog/endpoints/update_bank_transaction_rule.json +33 -0
- package/dist/catalog/endpoints/update_client.json +246 -0
- package/dist/catalog/endpoints/update_client_gateway_token.json +33 -0
- package/dist/catalog/endpoints/update_client_tax_data.json +38 -0
- package/dist/catalog/endpoints/update_company.json +33 -0
- package/dist/catalog/endpoints/update_company_gateway.json +33 -0
- package/dist/catalog/endpoints/update_company_user.json +16 -0
- package/dist/catalog/endpoints/update_credit.json +33 -0
- package/dist/catalog/endpoints/update_design.json +33 -0
- package/dist/catalog/endpoints/update_expense.json +33 -0
- package/dist/catalog/endpoints/update_expense_category.json +25 -0
- package/dist/catalog/endpoints/update_group_setting.json +33 -0
- package/dist/catalog/endpoints/update_invoice.json +33 -0
- package/dist/catalog/endpoints/update_location.json +128 -0
- package/dist/catalog/endpoints/update_payment.json +33 -0
- package/dist/catalog/endpoints/update_payment_term.json +33 -0
- package/dist/catalog/endpoints/update_product.json +188 -0
- package/dist/catalog/endpoints/update_project.json +122 -0
- package/dist/catalog/endpoints/update_purchase_order.json +98 -0
- package/dist/catalog/endpoints/update_quote.json +98 -0
- package/dist/catalog/endpoints/update_recurring_expense.json +33 -0
- package/dist/catalog/endpoints/update_recurring_invoice.json +33 -0
- package/dist/catalog/endpoints/update_recurring_quote.json +33 -0
- package/dist/catalog/endpoints/update_subscription.json +33 -0
- package/dist/catalog/endpoints/update_tag.json +38 -0
- package/dist/catalog/endpoints/update_task.json +122 -0
- package/dist/catalog/endpoints/update_task_scheduler.json +90 -0
- package/dist/catalog/endpoints/update_task_status.json +33 -0
- package/dist/catalog/endpoints/update_tax_rate.json +25 -0
- package/dist/catalog/endpoints/update_token.json +33 -0
- package/dist/catalog/endpoints/update_user.json +33 -0
- package/dist/catalog/endpoints/update_vendor.json +140 -0
- package/dist/catalog/endpoints/update_webhook.json +33 -0
- package/dist/catalog/endpoints/upload_client.json +54 -0
- package/dist/catalog/endpoints/upload_companies.json +47 -0
- package/dist/catalog/endpoints/upload_credits.json +47 -0
- package/dist/catalog/endpoints/upload_expense.json +47 -0
- package/dist/catalog/endpoints/upload_group_setting.json +47 -0
- package/dist/catalog/endpoints/upload_invoice_document.json +47 -0
- package/dist/catalog/endpoints/upload_payment.json +47 -0
- package/dist/catalog/endpoints/upload_product.json +46 -0
- package/dist/catalog/endpoints/upload_project.json +47 -0
- package/dist/catalog/endpoints/upload_purchase_order.json +47 -0
- package/dist/catalog/endpoints/upload_quote.json +47 -0
- package/dist/catalog/endpoints/upload_recurring_expense.json +47 -0
- package/dist/catalog/endpoints/upload_recurring_invoice.json +47 -0
- package/dist/catalog/endpoints/upload_task.json +47 -0
- package/dist/catalog/endpoints/upload_vendor.json +47 -0
- package/dist/catalog/endpoints/yodlee_refresh_webhook.json +16 -0
- package/dist/catalog/index.json +4428 -0
- package/dist/clients/invoiceninja-client.js +205 -0
- package/dist/helpers/register-endpoint-tools.js +27 -0
- package/dist/index.js +8 -0
- package/dist/server/invoiceninja-mcp-server.js +18 -0
- package/dist/tools/call-endpoint.js +153 -0
- package/dist/tools/describe-endpoint.js +60 -0
- package/dist/tools/list-endpoints.js +77 -0
- package/dist/types/tool-response.js +1 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# @nightsquawktech/invoiceninja-mcp-server
|
|
2
|
+
|
|
3
|
+
[](https://scorecard.dev/viewer/?uri=github.com/NightSquawk/invoiceninja-mcp-server)
|
|
4
|
+
|
|
5
|
+
MCP server for **Invoice Ninja v5** (self-hosted). Exposes **all 379 API endpoints**
|
|
6
|
+
through **3 consolidated tools** backed by a generated endpoint catalog, rather than
|
|
7
|
+
one tool per endpoint.
|
|
8
|
+
|
|
9
|
+
## Why a catalog, not 379 tools
|
|
10
|
+
|
|
11
|
+
Invoice Ninja's REST API has ~379 operations across ~31 resources (full CRUD + bulk +
|
|
12
|
+
actions + 27 reports). One MCP tool per endpoint would be unusable: huge context cost
|
|
13
|
+
and poor tool selection. Instead, every endpoint is described by a JSON spec file under
|
|
14
|
+
`src/catalog/endpoints/`, and three generic tools read that catalog:
|
|
15
|
+
|
|
16
|
+
| Tool | Purpose |
|
|
17
|
+
|------|---------|
|
|
18
|
+
| `list_endpoints(category?, mutating?, search?)` | Discover endpoints (slug, method, path, category, mutating flag, one-line summary). |
|
|
19
|
+
| `describe_endpoint(endpoint_name)` | Full spec for one endpoint: method, path, path/query params, request-body fields (types, required, enums, descriptions), and `whenToUse`. |
|
|
20
|
+
| `call_endpoint(endpoint_name, path_params?, query?, body?, ...)` | Validate against the catalog, then execute. **Mutating** endpoints (POST/PUT/DELETE) require `authorization_confirmed: true` + `authorization_note` and are backed up to a temp file before the call. |
|
|
21
|
+
|
|
22
|
+
Expected flow: **discover → describe → call**.
|
|
23
|
+
|
|
24
|
+
## The endpoint catalog
|
|
25
|
+
|
|
26
|
+
- `src/catalog/endpoints/<slug>.json`: one spec per endpoint, generated from the OpenAPI
|
|
27
|
+
spec (`openapi/api-docs.yaml` @ invoiceninja v5-stable). Carries method, path, name,
|
|
28
|
+
category, `mutating`, description, `whenToUse`, path/query/header parameters, and
|
|
29
|
+
request-body fields.
|
|
30
|
+
- `src/catalog/index.json`: aggregate discovery index (slug, method, path, category,
|
|
31
|
+
mutating, summary) plus counts.
|
|
32
|
+
|
|
33
|
+
Regenerate after a spec bump:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
curl -sL https://raw.githubusercontent.com/invoiceninja/invoiceninja/v5-stable/openapi/api-docs.yaml -o spec/api-docs.yaml
|
|
37
|
+
npm run generate # parse spec -> src/catalog/endpoints/*.json
|
|
38
|
+
npm run catalog # rebuild src/catalog/index.json
|
|
39
|
+
npm run build
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The `whenToUse` field (when-to-reach-for-this guidance) is filled by an enrichment pass
|
|
43
|
+
(`scripts/apply-enrichment.mjs`) and surfaced by `describe_endpoint` / `list_endpoints`.
|
|
44
|
+
|
|
45
|
+
## Setup
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install
|
|
49
|
+
npm run build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Environment (self-hosted)
|
|
53
|
+
|
|
54
|
+
| Variable | Required | Description |
|
|
55
|
+
|----------|----------|-------------|
|
|
56
|
+
| `INVOICENINJA_BASE_URL` | Yes | Instance URL, no trailing slash, no `/api/v1` (e.g. `https://your-instance.example.com`) |
|
|
57
|
+
| `INVOICENINJA_API_TOKEN` | Yes | API token (Settings → Account Management → Integrations → API Tokens). Sent as `X-Api-Token`. |
|
|
58
|
+
| `INVOICENINJA_TIMEOUT_MS` | No | Request timeout, default 30000 |
|
|
59
|
+
|
|
60
|
+
## MCP client configuration
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"mcpServers": {
|
|
65
|
+
"invoiceninja": {
|
|
66
|
+
"command": "npx",
|
|
67
|
+
"args": ["-y", "@nightsquawktech/invoiceninja-mcp-server"],
|
|
68
|
+
"env": {
|
|
69
|
+
"INVOICENINJA_BASE_URL": "https://your-instance.example.com",
|
|
70
|
+
"INVOICENINJA_API_TOKEN": "<token>"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Write safety
|
|
78
|
+
|
|
79
|
+
`call_endpoint` runs read-only GET endpoints freely. Any mutating endpoint requires
|
|
80
|
+
`authorization_confirmed: true` and a non-empty `authorization_note`; without both,
|
|
81
|
+
the call is refused before any HTTP request is made. Before a mutating call executes,
|
|
82
|
+
the client writes a JSON backup (request payload, authorization note, and best-effort
|
|
83
|
+
prior record for PUT/DELETE by id) under the system temp dir. The catalog flags every
|
|
84
|
+
endpoint's `mutating` status, and as defense-in-depth any `{action}` route (email,
|
|
85
|
+
mark_paid, archive, delete, clone, and similar) is treated as mutating even though
|
|
86
|
+
some are GETs, so state-changing action endpoints can never run unguarded.
|
|
87
|
+
|
|
88
|
+
## Smoke test (read-only)
|
|
89
|
+
|
|
90
|
+
`scripts/smoke-test.mjs` sweeps every **non-mutating** endpoint against a live instance:
|
|
91
|
+
186 of 379, including the 36 POST-but-read-only reports/charts/preview/templates/search
|
|
92
|
+
(sent with an empty body so no side effect fires). It calls collection/report endpoints
|
|
93
|
+
first, harvests sample ids, then exercises by-id endpoints, reporting PASS/FAIL/SKIP each.
|
|
94
|
+
The 193 mutating endpoints (incl. the 6 state-changing `action_*` GETs) are excluded and
|
|
95
|
+
the header says so, so a green run is never mistaken for full-API coverage.
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
INVOICENINJA_BASE_URL=... INVOICENINJA_API_TOKEN=... npm run build && npm run smoke
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Layout
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
src/
|
|
105
|
+
index.ts stdio MCP entry point
|
|
106
|
+
server/invoiceninja-mcp-server.ts singleton McpServer
|
|
107
|
+
catalog/
|
|
108
|
+
endpoint-spec.ts catalog types + loader (traversal-guarded)
|
|
109
|
+
index.json generated discovery index
|
|
110
|
+
endpoints/<slug>.json 379 generated endpoint specs
|
|
111
|
+
clients/invoiceninja-client.ts generic HTTP caller (X-Api-Token, backups)
|
|
112
|
+
tools/
|
|
113
|
+
list-endpoints.ts describe-endpoint.ts call-endpoint.ts
|
|
114
|
+
helpers/ types/
|
|
115
|
+
scripts/
|
|
116
|
+
generate-catalog.mjs parse OpenAPI spec -> endpoint files
|
|
117
|
+
assemble-catalog.mjs endpoint files -> index.json
|
|
118
|
+
apply-enrichment.mjs write whenToUse from the enrichment pass
|
|
119
|
+
smoke-test.mjs read-only live sweep
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
See **[SCOPING.md](./SCOPING.md)** for the API inventory and design rationale.
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
Licensed under the [GNU AGPL v3.0](./LICENSE). Free for personal and open-source use.
|
|
127
|
+
|
|
128
|
+
Organizations that cannot comply with the AGPL can purchase a commercial license. See [COMMERCIAL.md](./COMMERCIAL.md) or contact hello@nightsquawk.tech.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { fileURLToPath } from "node:url";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { createCatalogStore } from "@nightsquawktech/mcp-core/catalog";
|
|
4
|
+
// Path resolution stays HERE, in the server, so it points at this server's
|
|
5
|
+
// bundled catalog (dist/catalog) and not at the mcp-core package. The core
|
|
6
|
+
// loader receives the resolved directory and never derives it from its own
|
|
7
|
+
// module location.
|
|
8
|
+
const catalogDir = dirname(fileURLToPath(import.meta.url)); // dist/catalog
|
|
9
|
+
const store = createCatalogStore(catalogDir);
|
|
10
|
+
/** The aggregate catalog index (slug, name, method, path, category per endpoint). */
|
|
11
|
+
export function loadIndex() {
|
|
12
|
+
return store.index();
|
|
13
|
+
}
|
|
14
|
+
/** Full spec for a single endpoint, or null if the slug is unknown. */
|
|
15
|
+
export function loadEndpointSpec(slug) {
|
|
16
|
+
// Entries live under endpoints/; the core store guards against path traversal.
|
|
17
|
+
return store.entry(slug);
|
|
18
|
+
}
|
|
19
|
+
/** True if the slug names a real endpoint. */
|
|
20
|
+
export function isKnownEndpoint(slug) {
|
|
21
|
+
return loadIndex().endpoints.some((e) => e.slug === slug);
|
|
22
|
+
}
|
|
23
|
+
/** Distinct category names present in the catalog. */
|
|
24
|
+
export function listCategories() {
|
|
25
|
+
return loadIndex().categories.map((c) => c.name);
|
|
26
|
+
}
|
|
27
|
+
/** Fuzzy slug suggestions for an unknown name. */
|
|
28
|
+
export function suggestSlugs(query, limit = 6) {
|
|
29
|
+
if (!query)
|
|
30
|
+
return [];
|
|
31
|
+
const q = query.toLowerCase();
|
|
32
|
+
return loadIndex()
|
|
33
|
+
.endpoints.map((e) => e.slug)
|
|
34
|
+
.filter((s) => s.includes(q) || q.includes(s))
|
|
35
|
+
.slice(0, limit);
|
|
36
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "action_invoice",
|
|
3
|
+
"operationId": "actionInvoice",
|
|
4
|
+
"method": "GET",
|
|
5
|
+
"path": "/api/v1/invoices/{id}/{action}",
|
|
6
|
+
"name": "Custom invoice action",
|
|
7
|
+
"category": "invoices",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs a custom action on an invoice.\nThe current range of actions are as follows\n- clone_to_invoice\n- clone_to_quote\n- history\n- delivery_note\n- mark_paid\n- download\n- archive\n- delete\n- email",
|
|
10
|
+
"whenToUse": "Perform a named action on one invoice by id (clone_to_quote, mark_paid, email, archive, history); use for these verbs, not update_invoice (mutating).",
|
|
11
|
+
"pathParameters": [
|
|
12
|
+
{
|
|
13
|
+
"name": "id",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"description": "The Invoice Hashed ID",
|
|
17
|
+
"format": "string",
|
|
18
|
+
"example": "D2J234DFA"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "action",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true,
|
|
24
|
+
"description": "The action string to be performed",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"example": "clone_to_quote"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"queryParameters": [
|
|
30
|
+
{
|
|
31
|
+
"name": "include",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"description": "Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes",
|
|
35
|
+
"example": "first_load"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"headerParameters": [],
|
|
39
|
+
"requestBody": null,
|
|
40
|
+
"responseSchema": "Invoice"
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "action_payment",
|
|
3
|
+
"operationId": "actionPayment",
|
|
4
|
+
"method": "GET",
|
|
5
|
+
"path": "/api/v1/payments/{id}/{action}",
|
|
6
|
+
"name": "Custom payment actions",
|
|
7
|
+
"category": "payments",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs a custom action on an Payment.\n\n The current range of actions are as follows\n - clone_to_Payment\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - email",
|
|
10
|
+
"whenToUse": "Run a named action (mark_paid, email, download, clone, archive) on one payment by id and action string (mutating).",
|
|
11
|
+
"pathParameters": [
|
|
12
|
+
{
|
|
13
|
+
"name": "id",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"description": "The Payment Hashed ID",
|
|
17
|
+
"format": "string",
|
|
18
|
+
"example": "D2J234DFA"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "action",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true,
|
|
24
|
+
"description": "The action string to be performed",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"example": "clone_to_quote"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"queryParameters": [
|
|
30
|
+
{
|
|
31
|
+
"name": "include",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"description": "Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes",
|
|
35
|
+
"example": "first_load"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"headerParameters": [],
|
|
39
|
+
"requestBody": null,
|
|
40
|
+
"responseSchema": "Payment"
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "action_purchase_order",
|
|
3
|
+
"operationId": "actionPurchaseOrder",
|
|
4
|
+
"method": "GET",
|
|
5
|
+
"path": "/api/v1/purchase_orders/{id}/{action}",
|
|
6
|
+
"name": "Custom purchase order actions",
|
|
7
|
+
"category": "purchase_orders",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs a custom action on an purchase order.\n\n The current range of actions are as follows\n - mark_paid\n - download\n - archive\n - delete\n - email",
|
|
10
|
+
"whenToUse": "Run a named action (mark_paid, email, download, archive, delete) on one purchase order by id and action string (mutating).",
|
|
11
|
+
"pathParameters": [
|
|
12
|
+
{
|
|
13
|
+
"name": "id",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"description": "The Purchase Order Hashed ID",
|
|
17
|
+
"format": "string",
|
|
18
|
+
"example": "D2J234DFA"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "action",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true,
|
|
24
|
+
"description": "The action string to be performed",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"example": "clone_to_quote"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"queryParameters": [
|
|
30
|
+
{
|
|
31
|
+
"name": "include",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"description": "Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes",
|
|
35
|
+
"example": "first_load"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"headerParameters": [],
|
|
39
|
+
"requestBody": null,
|
|
40
|
+
"responseSchema": "PurchaseOrder"
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "action_quote",
|
|
3
|
+
"operationId": "actionQuote",
|
|
4
|
+
"method": "GET",
|
|
5
|
+
"path": "/api/v1/quotes/{id}/{action}",
|
|
6
|
+
"name": "Performs a custom action on an Quote",
|
|
7
|
+
"category": "quotes",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs a custom action on an Quote.\n\n The current range of actions are as follows\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - convert\n - convert_to_invoice\n - email",
|
|
10
|
+
"whenToUse": "Run a named action (clone, convert, mark_paid, email, archive) on one quote by id; use for quote workflow operations (mutating).",
|
|
11
|
+
"pathParameters": [
|
|
12
|
+
{
|
|
13
|
+
"name": "id",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"description": "The Quote Hashed ID",
|
|
17
|
+
"format": "string",
|
|
18
|
+
"example": "D2J234DFA"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "action",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true,
|
|
24
|
+
"description": "The action string to be performed",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"example": "clone_to_quote"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"queryParameters": [
|
|
30
|
+
{
|
|
31
|
+
"name": "include",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"description": "Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes",
|
|
35
|
+
"example": "first_load"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"headerParameters": [],
|
|
39
|
+
"requestBody": null,
|
|
40
|
+
"responseSchema": "Quote"
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "action_recurring_invoice",
|
|
3
|
+
"operationId": "actionRecurringInvoice",
|
|
4
|
+
"method": "GET",
|
|
5
|
+
"path": "/api/v1/recurring_invoices/{id}/{action}",
|
|
6
|
+
"name": "Custom recurring invoice action",
|
|
7
|
+
"category": "recurring_invoices",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs a custom action on an RecurringInvoice.\n\n The current range of actions are as follows\n - clone_to_RecurringInvoice\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - email",
|
|
10
|
+
"whenToUse": "Run a named action (start, mark_paid, email, clone, download) on one recurring invoice by id; use for single-record operations (mutating).",
|
|
11
|
+
"pathParameters": [
|
|
12
|
+
{
|
|
13
|
+
"name": "id",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"description": "The RecurringInvoice Hashed ID",
|
|
17
|
+
"format": "string",
|
|
18
|
+
"example": "D2J234DFA"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "action",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true,
|
|
24
|
+
"description": "The action string to be performed",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"example": "clone_to_quote"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"queryParameters": [
|
|
30
|
+
{
|
|
31
|
+
"name": "include",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"description": "Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes",
|
|
35
|
+
"example": "first_load"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"headerParameters": [],
|
|
39
|
+
"requestBody": null,
|
|
40
|
+
"responseSchema": "RecurringInvoice"
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "action_recurring_quote",
|
|
3
|
+
"operationId": "actionRecurringQuote",
|
|
4
|
+
"method": "GET",
|
|
5
|
+
"path": "/api/v1/recurring_quotes/{id}/{action}",
|
|
6
|
+
"name": "Performs a custom action on an RecurringQuote",
|
|
7
|
+
"category": "recurring_quotes",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs a custom action on an RecurringQuote.\n\n The current range of actions are as follows\n - clone_to_RecurringQuote\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - email",
|
|
10
|
+
"whenToUse": "Run a named action (email, mark_paid, clone, download, history) on one recurring quote by id; use for operations beyond plain CRUD (mutating).",
|
|
11
|
+
"pathParameters": [
|
|
12
|
+
{
|
|
13
|
+
"name": "id",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"required": true,
|
|
16
|
+
"description": "The RecurringQuote Hashed ID",
|
|
17
|
+
"format": "string",
|
|
18
|
+
"example": "D2J234DFA"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "action",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": true,
|
|
24
|
+
"description": "The action string to be performed",
|
|
25
|
+
"format": "string",
|
|
26
|
+
"example": "clone_to_quote"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"queryParameters": [
|
|
30
|
+
{
|
|
31
|
+
"name": "include",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"required": false,
|
|
34
|
+
"description": "Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes",
|
|
35
|
+
"example": "first_load"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"headerParameters": [],
|
|
39
|
+
"requestBody": null,
|
|
40
|
+
"responseSchema": "RecurringQuote"
|
|
41
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_bank_integrations",
|
|
3
|
+
"operationId": "bulkBankIntegrations",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/bank_integrations/bulk",
|
|
6
|
+
"name": "Performs bulk actions on an array of bank_integrations",
|
|
7
|
+
"category": "bank_integrations",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs bulk actions on an array of bank_integrations",
|
|
10
|
+
"whenToUse": "Run a batch action over an array of bank integration ids; use for multi-record bank integration operations (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_bank_transaction_rules",
|
|
3
|
+
"operationId": "bulkBankTransactionRules",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/bank_transaction_rules/bulk",
|
|
6
|
+
"name": "Performs bulk actions on an array of bank_transaction rules",
|
|
7
|
+
"category": "bank_transaction_rules",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs bulk actions on an array of bank_transaction rules",
|
|
10
|
+
"whenToUse": "Apply one action across many bank transaction rule ids at once; reach for it for batch archive/restore operations (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_bank_transactions",
|
|
3
|
+
"operationId": "bulkBankTransactions",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/bank_transactions/bulk",
|
|
6
|
+
"name": "Bulk actions",
|
|
7
|
+
"category": "bank_transactions",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Bulk actions",
|
|
10
|
+
"whenToUse": "Run a batch action over an array of bank transaction ids; use for actions across many transactions at once (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_clients",
|
|
3
|
+
"operationId": "bulkClients",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/clients/bulk",
|
|
6
|
+
"name": "Bulk client actions",
|
|
7
|
+
"category": "clients",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "## POST /api/v1/clients/bulk\n\nBulk actions allow to make changes to multiple clients in a single request the following actions are supported\n\n- archive\n- restore\n- delete\n- template _requires template,template_id properties also_\n- assign_group _requires group_settings_id also_\n- bulk_update _requires column,new_value also_\n\nAll of these actions require an array of client ids to perform the requested action on ie.\n\n\"ids\":['id1','id2']\n\nactions such as template, assign_group and bulk_update also require additional properties to be passed in the request\n\n- template\n\nThe template bulk action allows the creation of a custom template using the provided template_id to be run against the array of clients provided.\n\n- assign_group\n\nAllows setting multiple clients to a single group\n\n- bulk_update\n\nAllows updating certain columns on the client model in bulk. the current list of supported columns that can be updated archived_at:\n\n- public_notes\n- industry_id\n- size_id\n- country_id\n- custom_value1\n- custom_value2\n- custom_value3\n- custom_value4",
|
|
10
|
+
"whenToUse": "Run a batch action (archive, restore, delete, assign_group, bulk_update, template) over an array of client ids in one request (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "include",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"required": false,
|
|
24
|
+
"description": "Include child relationships of the Client Object. ie ?include=documents,system_logs\n\n```html\nAvailable includes:\n\ncontacts [All contacts related to the client]\ndocuments [All documents related to the client]\ngateway_tokens [All payment tokens related to the client]\nactivities [All activities related to the client]\nledger [The client ledger]\nsystem_logs [System logs related to the client]\ngroup_settings [The group settings object the client is assigned to]\n\n```\n\nUsage:\n\n```html\n/api/v1/clients?include=contacts,documents,activities\n```"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"headerParameters": [],
|
|
28
|
+
"requestBody": {
|
|
29
|
+
"contentType": "application/json",
|
|
30
|
+
"fields": [
|
|
31
|
+
{
|
|
32
|
+
"name": "action",
|
|
33
|
+
"type": "string",
|
|
34
|
+
"required": false,
|
|
35
|
+
"description": "The action to perform ie. archive / restore / delete"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "ids",
|
|
39
|
+
"type": "array",
|
|
40
|
+
"required": false
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"schemaRef": "GenericBulkAction"
|
|
44
|
+
},
|
|
45
|
+
"responseSchema": "Client"
|
|
46
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_company_gateways",
|
|
3
|
+
"operationId": "bulkCompanyGateways",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/company_gateways/bulk",
|
|
6
|
+
"name": "Performs bulk actions on an array of company_gateways",
|
|
7
|
+
"category": "company_gateways",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs bulk actions on an array of company_gateways",
|
|
10
|
+
"whenToUse": "Apply one action across many company gateway ids at once; reach for it for batch archive/restore operations (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
},
|
|
26
|
+
"responseSchema": "CompanyGateway"
|
|
27
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_credits",
|
|
3
|
+
"operationId": "bulkCredits",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/credits/bulk",
|
|
6
|
+
"name": "Bulk credit actions",
|
|
7
|
+
"category": "credits",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Bulk credit actions",
|
|
10
|
+
"whenToUse": "Apply one action like email or mark_sent across many credit ids at once; reach for it for batch credit operations (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_designs",
|
|
3
|
+
"operationId": "bulkDesigns",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/designs/bulk",
|
|
6
|
+
"name": "Performs bulk actions on an array of designs",
|
|
7
|
+
"category": "designs",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs bulk actions on an array of designs",
|
|
10
|
+
"whenToUse": "Apply one action across an array of design ids in a single batch instead of per-record calls (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
},
|
|
26
|
+
"responseSchema": "Design"
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "bulk_expense_categorys",
|
|
3
|
+
"operationId": "bulkExpenseCategorys",
|
|
4
|
+
"method": "POST",
|
|
5
|
+
"path": "/api/v1/expense_categories/bulk",
|
|
6
|
+
"name": "Performs bulk actions on an array of ExpenseCategorys",
|
|
7
|
+
"category": "expense_categories",
|
|
8
|
+
"mutating": true,
|
|
9
|
+
"description": "Performs bulk actions on an array of ExpenseCategorys",
|
|
10
|
+
"whenToUse": "Apply one action across an array of expense category ids in a single batch instead of per-record calls (mutating).",
|
|
11
|
+
"pathParameters": [],
|
|
12
|
+
"queryParameters": [
|
|
13
|
+
{
|
|
14
|
+
"name": "index",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"required": false,
|
|
17
|
+
"description": "Replaces the default response index from data to a user specific string\n\nie.\n\n```html\n ?index=new_index\n```\n\nresponse is wrapped\n\n```json\n {\n 'new_index' : [\n .....\n ]\n }\n```",
|
|
18
|
+
"example": "user"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"headerParameters": [],
|
|
22
|
+
"requestBody": {
|
|
23
|
+
"contentType": "application/json",
|
|
24
|
+
"fields": []
|
|
25
|
+
},
|
|
26
|
+
"responseSchema": "Webhook"
|
|
27
|
+
}
|