diff --git a/app/Console/Commands/OpenApiYaml.php b/app/Console/Commands/OpenApiYaml.php
index 530e0da1b7e0..6a63fb565e6b 100644
--- a/app/Console/Commands/OpenApiYaml.php
+++ b/app/Console/Commands/OpenApiYaml.php
@@ -79,6 +79,7 @@ class OpenApiYaml extends Command
Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components.yaml'));
Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/responses.yaml'));
+ Storage::disk('base')->append('/openapi/api-docs.yaml', file_get_contents($path.'/components/examples.yaml'));
$directory = new DirectoryIterator($path . '/components/responses/');
diff --git a/app/Console/Commands/TranslationsExport.php b/app/Console/Commands/TranslationsExport.php
index 5668f8d6f5f1..13570d3c0e4d 100644
--- a/app/Console/Commands/TranslationsExport.php
+++ b/app/Console/Commands/TranslationsExport.php
@@ -51,6 +51,7 @@ class TranslationsExport extends Command
'fi',
'fr',
'fr_CA',
+ 'fr_CH',
'he',
'hr',
'hu',
diff --git a/app/Filters/TokenFilters.php b/app/Filters/TokenFilters.php
index 2966405a1ee9..2037d768add8 100644
--- a/app/Filters/TokenFilters.php
+++ b/app/Filters/TokenFilters.php
@@ -37,9 +37,9 @@ class TokenFilters extends QueryFilters
}
- public function is_system(bool $value = false): Builder
+ public function is_system(string $value = 'false'): Builder
{
- return $this->builder->where('is_system', $value);
+ return $this->builder->where('is_system', $value == 'false' ? false : true);
}
/**
diff --git a/database/migrations/2023_07_08_000314_add_french_swiss_translations.php b/database/migrations/2023_07_08_000314_add_french_swiss_translations.php
new file mode 100644
index 000000000000..3f3b03e882cb
--- /dev/null
+++ b/database/migrations/2023_07_08_000314_add_french_swiss_translations.php
@@ -0,0 +1,37 @@
+ 40, 'name' => 'French - Swiss', 'locale' => 'fr_CH']);
+ }
+
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+};
diff --git a/database/seeders/LanguageSeeder.php b/database/seeders/LanguageSeeder.php
index 5677b70f10e0..db6520109357 100644
--- a/database/seeders/LanguageSeeder.php
+++ b/database/seeders/LanguageSeeder.php
@@ -64,6 +64,7 @@ class LanguageSeeder extends Seeder
['id' => 37, 'name' => 'Hebrew', 'locale' => 'he'],
['id' => 38, 'name' => 'Khmer', 'locale' => 'km_KH'],
['id' => 39, 'name' => 'Hungarian', 'locale' => 'hu'],
+ ['id' => 40, 'name' => 'French - Swiss', 'locale' => 'fr_CH'],
];
foreach ($languages as $language) {
diff --git a/lang/de/texts.php b/lang/de/texts.php
index 9d082760db43..a1c2ad677771 100644
--- a/lang/de/texts.php
+++ b/lang/de/texts.php
@@ -767,7 +767,7 @@ $LANG = array(
'activity_19' => ':user aktualisierte Angebot :quote',
'activity_20' => ':user mailte Angebot :quote für :client an :contact',
'activity_21' => ':contact schaute Angebot :quote an',
- 'activity_22' => ':user archivierte Angebot :quote',
+ 'activity_22' => ':user archiviertes Angebot :quote',
'activity_23' => ':user löschte Angebot :quote',
'activity_24' => ':user stellte Angebot :quote wieder her',
'activity_25' => ':user stellte Rechnung :invoice wieder her',
@@ -904,7 +904,7 @@ $LANG = array(
'payment_terms_net' => 'Netto',
'vendor' => 'Lieferant',
'edit_vendor' => 'Lieferant Bearbeiten',
- 'archive_vendor' => 'Lieferant Archivieren',
+ 'archive_vendor' => 'Lieferant archivieren',
'delete_vendor' => 'Lieferant Löschen',
'view_vendor' => 'Lieferant Ansehen',
'deleted_expense' => 'Ausgabe erfolgreich gelöscht',
@@ -923,7 +923,7 @@ $LANG = array(
'should_be_invoiced' => 'Sollte in Rechnung gestellt werden',
'view_expense' => 'Ausgabe # :expense ansehen',
'edit_expense' => 'Ausgabe Bearbeiten',
- 'archive_expense' => 'Ausgabe Archivieren',
+ 'archive_expense' => 'Ausgabe archivieren',
'delete_expense' => 'Ausgabe Löschen',
'view_expense_num' => 'Ausgabe # :expense',
'updated_expense' => 'Ausgabe erfolgreich aktualisiert',
@@ -4534,12 +4534,12 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'auto_archive_invoice_cancelled_help' => 'Automatisch Rechnungen archivieren, wenn diese storniert wurden',
'no_invoices_found' => 'Keine Rechnungen gefunden',
'created_record' => 'Eintrag erfolgreich erstellt.',
- 'auto_archive_paid_invoices' => 'Bezahltes Automatisch Archivieren',
+ 'auto_archive_paid_invoices' => 'Bezahltes automatisch archivieren',
'auto_archive_paid_invoices_help' => 'Automatische Archivierung von Rechnungen, wenn diese als bezahlt markiert werden.',
'auto_archive_cancelled_invoices' => 'Auto-Archivierung abgebrochen',
'auto_archive_cancelled_invoices_help' => 'Automatisch Rechnungen archivieren, wenn diese storniert wurden.',
'alternate_pdf_viewer' => 'Alternativer PDF Viewer',
- 'alternate_pdf_viewer_help' => 'Verbessere das Scrolling über die PDF Vorschau [BETA]',
+ 'alternate_pdf_viewer_help' => 'Verbessere das Scrolling über die PDF-Vorschau [BETA]',
'currency_cayman_island_dollar' => 'Cayman Island Dollar',
'download_report_description' => 'Bitte das angehängte Dokument öffnen, um den Report anzusehen.',
'left' => 'Links',
@@ -4604,7 +4604,7 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'yes_its_great' => 'Ja, es ist super!',
'not_so_much' => 'Nein, eher weniger',
'would_you_rate_it' => 'Danke für das Feedback, mächten Sie die App bewerten?',
- 'would_you_tell_us_more' => 'Das tut uns leid, dass zu hören. Was gefällt Ihnen nicht?',
+ 'would_you_tell_us_more' => 'Es tut uns leid, das zu hören. Was gefällt Ihnen nicht?',
'sure_happy_to' => 'Gerne',
'no_not_now' => 'Nein, nicht jetzt.',
'add' => 'Hinzufügen',
@@ -5116,6 +5116,12 @@ https://invoiceninja.github.io/docs/migration/#troubleshooting',
'item_tax_rate2' => 'Item Tax Rate 2',
'item_tax_rate3' => 'Item Tax Rate 3',
'buy_price' => 'Buy Price',
+ 'country_Macedonia' => 'Macedonia',
+ 'admin_initiated_payments' => 'Admin Initiated Payments',
+ 'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
+ 'paid_date' => 'Paid Date',
+ 'downloaded_entities' => 'An email will be sent with the PDFs',
+
);
diff --git a/lang/en/texts.php b/lang/en/texts.php
index d2fd84e8f9bb..69b4e7e79fa1 100644
--- a/lang/en/texts.php
+++ b/lang/en/texts.php
@@ -5119,7 +5119,10 @@ $LANG = array(
'admin_initiated_payments_help' => 'Support entering a payment in the admin portal without an invoice',
'paid_date' => 'Paid Date',
'downloaded_entities' => 'An email will be sent with the PDFs',
-
+ 'lang_French - Swiss' => 'French - Swiss',
+ 'currency_swazi_lilangeni' => 'Swazi Lilangeni',
+ 'income' => 'Income',
+
);
diff --git a/lang/fr_CA/texts.php b/lang/fr_CA/texts.php
index b3b83e49d287..9d812017526c 100644
--- a/lang/fr_CA/texts.php
+++ b/lang/fr_CA/texts.php
@@ -5110,6 +5110,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'admin_initiated_payments' => 'Paiements initiés par l\'administration',
'admin_initiated_payments_help' => 'Permet la saisie d\'un paiement dans le portal d\'administration sans facture',
'paid_date' => 'Date de paiement',
+ 'downloaded_entities' => 'Un courriel sera envoyé avec le ou les PDF',
+
);
diff --git a/lang/fr_CH/texts.php b/lang/fr_CH/texts.php
index 8e2023376875..08cdde2feaff 100644
--- a/lang/fr_CH/texts.php
+++ b/lang/fr_CH/texts.php
@@ -748,7 +748,7 @@ $LANG = array(
'activity_7' => ':contact a visualisé la facture :invoice pour :client',
'activity_8' => ':user a archivé la facture :invoice',
'activity_9' => ':user a supprimé la facture :invoice',
- 'activity_10' => ':user entered payment :payment for :payment_amount on invoice :invoice for :client',
+ 'activity_10' => ':user a saisi le paiement :payment pour :payment_montant sur la facture :invoice pour :client',
'activity_11' => ':user a mis à jour le paiement :payment',
'activity_12' => ':user a archivé le paiement :payment',
'activity_13' => ':user a supprimé le paiement :payment',
@@ -1991,7 +1991,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'current_quarter' => 'Trimestre en cours',
'last_quarter' => 'Dernier trimestre',
'last_year' => 'Dernière année',
- 'all_time' => 'All Time',
+ 'all_time' => 'Tout le temps',
'custom_range' => 'Personnalisé',
'url' => 'URL',
'debug' => 'Débogage',
@@ -2252,7 +2252,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'restore_recurring_expense' => 'Restaurer la dépense récurrente',
'restored_recurring_expense' => 'La dépense récurrente a été restaurée avec succès',
'delete_recurring_expense' => 'Supprimer la dépense récurrente',
- 'deleted_recurring_expense' => 'Successfully deleted recurring expense',
+ 'deleted_recurring_expense' => 'Dépense récurrente supprimée avec succès',
'view_recurring_expense' => 'Visualiser la dépense récurrente',
'taxes_and_fees' => 'Taxes et frais',
'import_failed' => 'L\'importation a échoué',
@@ -2507,8 +2507,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'partial_due_date' => 'Date d\'échéance du paiement partiel',
'task_fields' => 'Champs d\'intervention',
'product_fields_help' => 'Glisser et déposer les champs pour changer l\'ordre',
- 'custom_value1' => 'Custom Value 1',
- 'custom_value2' => 'Custom Value 2',
+ 'custom_value1' => 'Valeur personnalisée 1',
+ 'custom_value2' => 'Valeur personnalisée 2',
'enable_two_factor' => 'Authentification à deux facteurs',
'enable_two_factor_help' => 'Utilisez votre téléphone pour confirmer votre identité lors de la connexion',
'two_factor_setup' => 'Configuration de l\'authentification à deux facteurs',
@@ -3855,7 +3855,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'notification_credit_viewed' => 'Un crédit de :amount a été vu par le client :client.',
'reset_password_text' => 'Saisissez votre adresse courriel pour réinitialiser votre mot de passe.',
'password_reset' => 'Réinitialisation du mot de passe',
- 'account_login_text' => 'Welcome! Glad to see you.',
+ 'account_login_text' => 'Accueillir! Content de te voir.',
'request_cancellation' => 'Annuler la demande',
'delete_payment_method' => 'Supprimer le mode de paiement',
'about_to_delete_payment_method' => 'Le mode de paiement sera supprimé',
@@ -3969,7 +3969,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'add_payment_method_first' => 'ajouter un mode de paiement',
'no_items_selected' => 'Aucun article sélectionné',
'payment_due' => 'Paiement dû',
- 'account_balance' => 'Account Balance',
+ 'account_balance' => 'Solde du compte',
'thanks' => 'Merci',
'minimum_required_payment' => 'Le paiement minimum requis est :amount',
'under_payments_disabled' => 'La société ne tolère pas le sous-paiement.',
@@ -3994,7 +3994,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'notification_invoice_reminder1_sent_subject' => 'Le rappel 1 pour la facture :invoice a été envoyé à :client',
'notification_invoice_reminder2_sent_subject' => 'Le rappel 2 pour la facture :invoice a été envoyé à :client',
'notification_invoice_reminder3_sent_subject' => 'Le rappel 3 pour la facture :invoice a été envoyé à :client',
- 'notification_invoice_custom_sent_subject' => 'Custom reminder for Invoice :invoice was sent to :client',
+ 'notification_invoice_custom_sent_subject' => 'Un rappel personnalisé pour la facture :invoice a été envoyé à :client',
'notification_invoice_reminder_endless_sent_subject' => 'Un rappel perpétuel pour la facture :invoice a été envoyé à :client',
'assigned_user' => 'Utilisateur affecté',
'setup_steps_notice' => 'Pour accéder à la prochaine étape, vous devez tester chaque section.',
@@ -4372,7 +4372,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'imported_customers' => 'Successfully started importing customers',
'login_success' => 'Successful Login',
'login_failure' => 'Failed Login',
- 'exported_data' => 'Once the file is ready you\'ll receive an email with a download link',
+ 'exported_data' => 'Une fois le fichier prêt, vous recevrez un e-mail avec un lien de téléchargement',
'include_deleted_clients' => 'Include Deleted Clients',
'include_deleted_clients_help' => 'Load records belonging to deleted clients',
'step_1_sign_in' => 'Step 1: Sign In',
@@ -4461,7 +4461,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'activity_123' => ':user deleted recurring expense :recurring_expense',
'activity_124' => ':user restored recurring expense :recurring_expense',
'fpx' => "FPX",
- 'to_view_entity_set_password' => 'To view the :entity you need to set a password.',
+ 'to_view_entity_set_password' => 'Pour afficher le :entity, vous devez définir un mot de passe.',
'unsubscribe' => 'Unsubscribe',
'unsubscribed' => 'Unsubscribed',
'unsubscribed_text' => 'You have been removed from notifications for this document',
@@ -4559,7 +4559,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'purchase_order_number' => 'Numéro de bon de commande',
'purchase_order_number_short' => 'Bon de commande #',
'inventory_notification_subject' => 'Inventory threshold notification for product: :product',
- 'inventory_notification_body' => 'Threshold of :amount has been reached for product: :product',
+ 'inventory_notification_body' => 'Le seuil de :amount a été atteint pour le produit : :product',
'activity_130' => ':user a créé le bon de commande :purchase_order',
'activity_131' => ':user a mis à jour le bon de commande :purchase_order',
'activity_132' => ':user a archivé le bon de commande :purchase_order',
@@ -4591,7 +4591,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'vendor_document_upload' => 'Vendor Document Upload',
'vendor_document_upload_help' => 'Enable vendors to upload documents',
'are_you_enjoying_the_app' => 'Are you enjoying the app?',
- 'yes_its_great' => 'Yes, it\'s great!',
+ 'yes_its_great' => 'Oui c'est super!',
'not_so_much' => 'Not so much',
'would_you_rate_it' => 'Great to hear! Would you like to rate it?',
'would_you_tell_us_more' => 'Sorry to hear it! Would you like to tell us more?',
@@ -4900,7 +4900,7 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'all_clients' => 'All Clients',
'show_aging_table' => 'Show Aging Table',
'show_payments_table' => 'Afficher le tableau de paiement',
- 'only_clients_with_invoices' => 'Only Clients with Invoices',
+ 'only_clients_with_invoices' => 'Seuls les clients avec factures',
'email_statement' => 'Email Statement',
'once' => 'Once',
'schedules' => 'Schedules',
@@ -4962,9 +4962,9 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'white_label_body' => 'Thank you for purchasing a white label license.
Your license key is:
:license_key',
'payment_type_Klarna' => 'Klarna',
'payment_type_Interac E Transfer' => 'Interac E Transfer',
- 'xinvoice_payable' => 'Payable within :payeddue days net until :paydate',
- 'xinvoice_no_buyers_reference' => "No buyer's reference given",
- 'xinvoice_online_payment' => 'The invoice needs to be paid online via the provided link',
+ 'xinvoice_payable' => 'Payable sous :payeddue jours net jusqu'à :paydate',
+ 'xinvoice_no_buyers_reference' => "Aucune référence d'acheteur donnée",
+ 'xinvoice_online_payment' => 'La facture doit être payée en ligne via le lien fourni',
'pre_payment' => 'Prépaiement',
'number_of_payments' => 'Nombre de paiements',
'number_of_payments_helper' => 'Le nombre de fois que ce paiement sera exécuté',
@@ -5013,99 +5013,105 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
'quote_product_columns' => 'Quote Product Columns',
'vendors' => 'Vendors',
'product_sales' => 'Product Sales',
- 'user_sales_report_header' => 'User sales report for client/s :client from :start_date to :end_date',
- 'client_balance_report' => 'Customer balance report',
- 'client_sales_report' => 'Customer sales report',
- 'user_sales_report' => 'User sales report',
- 'aged_receivable_detailed_report' => 'Aged Receivable Detailed Report',
- 'aged_receivable_summary_report' => 'Aged Receivable Summary Report',
- 'taxable_amount' => 'Taxable Amount',
- 'tax_summary' => 'Tax Summary',
- 'oauth_mail' => 'OAuth / Mail',
- 'preferences' => 'Preferences',
- 'analytics' => 'Analytics',
- 'reduced_rate' => 'Reduced Rate',
- 'tax_all' => 'Tax All',
- 'tax_selected' => 'Tax Selected',
+ 'user_sales_report_header' => 'Rapport sur les ventes des utilisateurs pour le ou les clients :client de :start_date à :end_date',
+ 'client_balance_report' => 'Rapport sur le solde du client',
+ 'client_sales_report' => 'Rapport de ventes client',
+ 'user_sales_report' => 'Rapport de ventes utilisateur',
+ 'aged_receivable_detailed_report' => 'Rapport détaillé sur les créances chronologiques',
+ 'aged_receivable_summary_report' => 'Rapport récapitulatif des créances chronologiques',
+ 'taxable_amount' => 'Montant imposable',
+ 'tax_summary' => 'Récapitulatif fiscal',
+ 'oauth_mail' => 'OAuth / Courrier',
+ 'preferences' => 'Préférences',
+ 'analytics' => 'Analytique',
+ 'reduced_rate' => 'Tarif réduit',
+ 'tax_all' => 'Taxe Tout',
+ 'tax_selected' => 'Taxe sélectionnée',
'version' => 'version',
- 'seller_subregion' => 'Seller Subregion',
- 'calculate_taxes' => 'Calculate Taxes',
- 'calculate_taxes_help' => 'Automatically calculate taxes when saving invoices',
- 'link_expenses' => 'Link Expenses',
- 'converted_client_balance' => 'Converted Client Balance',
- 'converted_payment_balance' => 'Converted Payment Balance',
- 'total_hours' => 'Total Hours',
- 'date_picker_hint' => 'Use +days to set the date in the future',
- 'app_help_link' => 'More information ',
- 'here' => 'here',
- 'industry_Restaurant & Catering' => 'Restaurant & Catering',
- 'show_credits_table' => 'Show Credits Table',
- 'manual_payment' => 'Payment Manual',
- 'tax_summary_report' => 'Tax Summary Report',
- 'tax_category' => 'Tax Category',
- 'physical_goods' => 'Physical Goods',
- 'digital_products' => 'Digital Products',
- 'services' => 'Services',
- 'shipping' => 'Shipping',
- 'tax_exempt' => 'Tax Exempt',
- 'late_fee_added_locked_invoice' => 'Late fee for invoice :invoice added on :date',
+ 'seller_subregion' => 'Sous-région du vendeur',
+ 'calculate_taxes' => 'Calculer les taxes',
+ 'calculate_taxes_help' => 'Calculer automatiquement les taxes lors de l'enregistrement des factures',
+ 'link_expenses' => 'Dépenses de lien',
+ 'converted_client_balance' => 'Solde client converti',
+ 'converted_payment_balance' => 'Solde de paiement converti',
+ 'total_hours' => 'Heures totales',
+ 'date_picker_hint' => 'Utilisez + jours pour définir la date dans le futur',
+ 'app_help_link' => 'Plus d'information',
+ 'here' => 'ici',
+ 'industry_Restaurant & Catering' => 'Restauration & Traiteur',
+ 'show_credits_table' => 'Afficher le tableau des crédits',
+ 'manual_payment' => 'Manuel de paiement',
+ 'tax_summary_report' => 'Rapport récapitulatif des taxes',
+ 'tax_category' => 'Catégorie de taxe',
+ 'physical_goods' => 'Biens physiques',
+ 'digital_products' => 'Produits numériques',
+ 'services' => 'Prestations de service',
+ 'shipping' => 'Expédition',
+ 'tax_exempt' => 'Exonéré d'impôt',
+ 'late_fee_added_locked_invoice' => 'Frais de retard pour facture :invoice ajouté sur :date',
'lang_Khmer' => 'Khmer',
- 'routing_id' => 'Routing ID',
- 'enable_e_invoice' => 'Enable E-Invoice',
- 'e_invoice_type' => 'E-Invoice Type',
- 'reduced_tax' => 'Reduced Tax',
- 'override_tax' => 'Override Tax',
- 'zero_rated' => 'Zero Rated',
- 'reverse_tax' => 'Reverse Tax',
- 'updated_tax_category' => 'Successfully updated the tax category',
- 'updated_tax_categories' => 'Successfully updated the tax categories',
- 'set_tax_category' => 'Set Tax Category',
- 'payment_manual' => 'Payment Manual',
- 'expense_payment_type' => 'Expense Payment Type',
- 'payment_type_Cash App' => 'Cash App',
- 'rename' => 'Rename',
- 'renamed_document' => 'Successfully renamed document',
- 'e_invoice' => 'E-Invoice',
- 'light_dark_mode' => 'Light/Dark Mode',
- 'activities' => 'Activities',
- 'recent_transactions' => "Here are your company's most recent transactions:",
+ 'routing_id' => 'ID de routage',
+ 'enable_e_invoice' => 'Activer la facture électronique',
+ 'e_invoice_type' => 'Type de facture électronique',
+ 'reduced_tax' => 'Taxe réduite',
+ 'override_tax' => 'Remplacer la taxe',
+ 'zero_rated' => 'Évalué zéro',
+ 'reverse_tax' => 'Taxe inversée',
+ 'updated_tax_category' => 'Mise à jour réussie de la catégorie de taxe',
+ 'updated_tax_categories' => 'Mise à jour réussie des catégories de taxes',
+ 'set_tax_category' => 'Définir la catégorie de taxe',
+ 'payment_manual' => 'Manuel de paiement',
+ 'expense_payment_type' => 'Type de paiement des dépenses',
+ 'payment_type_Cash App' => 'Application de trésorerie',
+ 'rename' => 'Renommer',
+ 'renamed_document' => 'Document renommé avec succès',
+ 'e_invoice' => 'Facture électronique',
+ 'light_dark_mode' => 'Mode clair/foncé',
+ 'activities' => 'Activités',
+ 'recent_transactions' => "Voici les transactions les plus récentes de votre entreprise :",
'country_Palestine' => "Palestine",
- 'country_Taiwan' => 'Taiwan',
- 'duties' => 'Duties',
- 'order_number' => 'Order Number',
- 'order_id' => 'Order',
- 'total_invoices_outstanding' => 'Total Invoices Outstanding',
- 'recent_activity' => 'Recent Activity',
- 'enable_auto_bill' => 'Enable auto billing',
- 'email_count_invoices' => 'Email :count invoices',
- 'invoice_task_item_description' => 'Invoice Task Item Description',
- 'invoice_task_item_description_help' => 'Add the item description to the invoice line items',
- 'next_send_time' => 'Next Send Time',
- 'uploaded_certificate' => 'Successfully uploaded certificate',
- 'certificate_set' => 'Certificate set',
- 'certificate_not_set' => 'Certificate not set',
- 'passphrase_set' => 'Passphrase set',
- 'passphrase_not_set' => 'Passphrase not set',
- 'upload_certificate' => 'Upload Certificate',
- 'certificate_passphrase' => 'Certificate Passphrase',
- 'valid_vat_number' => 'Valid VAT Number',
- 'react_notification_link' => 'React Notification Links',
- 'react_notification_link_help' => 'Admin emails will contain links to the react application',
- 'show_task_billable' => 'Show Task Billable',
- 'credit_item' => 'Credit Item',
- 'drop_file_here' => 'Drop file here',
- 'files' => 'Files',
- 'camera' => 'Camera',
- 'gallery' => 'Gallery',
- 'project_location' => 'Project Location',
- 'add_gateway_help_message' => 'Add a payment gateway (ie. Stripe, WePay or PayPal) to accept online payments',
- 'lang_Hungarian' => 'Hungarian',
- 'use_mobile_to_manage_plan' => 'Use your phone subscription settings to manage your plan',
- 'item_tax3' => 'Item Tax3',
- 'item_tax_rate1' => 'Item Tax Rate 1',
- 'item_tax_rate2' => 'Item Tax Rate 2',
- 'item_tax_rate3' => 'Item Tax Rate 3',
- 'buy_price' => 'Buy Price',
+ 'country_Taiwan' => 'Taïwan',
+ 'duties' => 'Devoirs',
+ 'order_number' => 'Numéro de commande',
+ 'order_id' => 'Commande',
+ 'total_invoices_outstanding' => 'Total des factures impayées',
+ 'recent_activity' => 'Activité récente',
+ 'enable_auto_bill' => 'Activer la facturation automatique',
+ 'email_count_invoices' => 'E-mail :count factures',
+ 'invoice_task_item_description' => 'Description de l'élément de tâche de la facture',
+ 'invoice_task_item_description_help' => 'Ajouter la description de l'article aux éléments de ligne de la facture',
+ 'next_send_time' => 'Prochaine heure d'envoi',
+ 'uploaded_certificate' => 'Certificat téléchargé avec succès',
+ 'certificate_set' => 'Ensemble de certificats',
+ 'certificate_not_set' => 'Certificat non défini',
+ 'passphrase_set' => 'Jeu de mots de passe',
+ 'passphrase_not_set' => 'Mot de passe non défini',
+ 'upload_certificate' => 'Télécharger le certificat',
+ 'certificate_passphrase' => 'Phrase de passe du certificat',
+ 'valid_vat_number' => 'Numéro de TVA valide',
+ 'react_notification_link' => 'Liens de notification de réaction',
+ 'react_notification_link_help' => 'Les e-mails d'administration contiendront des liens vers l'application de réaction',
+ 'show_task_billable' => 'Afficher la tâche facturable',
+ 'credit_item' => 'Article de crédit',
+ 'drop_file_here' => 'Déposez le fichier ici',
+ 'files' => 'Des dossiers',
+ 'camera' => 'Caméra',
+ 'gallery' => 'Galerie',
+ 'project_location' => 'Emplacement du projet',
+ 'add_gateway_help_message' => 'Ajoutez une passerelle de paiement (c.-à-d. Stripe, WePay ou PayPal) pour accepter les paiements en ligne',
+ 'lang_Hungarian' => 'hongrois',
+ 'use_mobile_to_manage_plan' => 'Utilisez les paramètres de votre abonnement téléphonique pour gérer votre forfait',
+ 'item_tax3' => 'Taxe sur les articles3',
+ 'item_tax_rate1' => 'Taux de taxe sur l'article 1',
+ 'item_tax_rate2' => 'Taux de taxe sur l'article 2',
+ 'item_tax_rate3' => 'Taux de taxe sur l'article 3',
+ 'buy_price' => 'Prix d'achat',
+ 'country_Macedonia' => 'Macédoine',
+ 'admin_initiated_payments' => 'Paiements initiés par l'administrateur',
+ 'admin_initiated_payments_help' => 'Prise en charge de la saisie d'un paiement dans le portail d'administration sans facture',
+ 'paid_date' => 'La date de paiement',
+ 'downloaded_entities' => 'Un email sera envoyé avec les PDF',
+
);
diff --git a/openapi/api-docs.yaml b/openapi/api-docs.yaml
index 0d6a4d73c022..8b97f0483d21 100644
--- a/openapi/api-docs.yaml
+++ b/openapi/api-docs.yaml
@@ -39,7 +39,7 @@ paths:
- $ref: "#/components/parameters/page_meta"
responses:
200:
- description: "Returns the client object"
+ description: "Returns the list of activities"
headers:
X-MINIMUM-CLIENT-VERSION:
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
@@ -49,8 +49,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Client"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Activity'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -266,8 +274,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/BankIntegration"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/BankIntegration'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -670,8 +686,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/BankTransaction"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/BankTransaction'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1015,8 +1039,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/BankTransactionRule"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/BankTransactionRule'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1347,8 +1379,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/ClientGatewayToken"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/ClientGatewayToken'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1604,8 +1644,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Company"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Company'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1947,8 +1995,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/CompanyGateway"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CompanyGateway'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2254,8 +2310,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/CompanyLedger"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CompanyLedger'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2358,8 +2422,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Design"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Design'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2666,8 +2738,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Document"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2751,8 +2831,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/ExpenseCategory"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/ExpenseCategory'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -3047,8 +3135,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Expense"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Expense'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -3415,8 +3511,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/GroupSetting"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/GroupSetting'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -3899,8 +4003,8 @@ paths:
post:
tags:
- logout
- summary: "Gets a list of logout"
- description: "Lists all logout"
+ summary: "Logs the user out of their current session"
+ description: "Logs the user out of their current session"
operationId: getLogout
parameters:
- $ref: "#/components/parameters/X-API-TOKEN"
@@ -4086,8 +4190,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/PaymentTerm"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/PaymentTerm'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -4520,8 +4632,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/RecurringExpense"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/RecurringExpense'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -4862,8 +4982,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/RecurringQuote"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/RecurringQuote'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -5758,8 +5886,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Subscription"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Subscription'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6099,8 +6235,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/SystemLog"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/SystemLog'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6404,8 +6548,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/TaskStatus"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskStatus'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6709,8 +6861,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/TaxRate"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaxRate'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -7018,8 +7178,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/CompanyToken"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CompanyToken'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -7318,8 +7486,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/User"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/User'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -7766,8 +7942,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Webhook"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Webhook'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -8098,8 +8282,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Product"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Product'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: '#/components/responses/401'
403:
@@ -8503,8 +8695,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Task"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Task'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -8914,8 +9114,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Project"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Project'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -9387,8 +9595,20 @@ paths:
$ref: '#/components/headers/X-RateLimit-Limit'
content:
application/json:
- schema:
- $ref: '#/components/schemas/Client'
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Client'
+ example:
+ $ref: '#/components/examples/Client'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
+ example:
+ $ref: '#/components/examples/Meta'
401:
$ref: '#/components/responses/401'
403:
@@ -9936,8 +10156,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Credit"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Credit'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -10395,8 +10623,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Payment"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Payment'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -10964,8 +11200,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Invoice"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Invoice'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -11593,8 +11837,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/RecurringInvoice"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/RecurringInvoice'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -12140,8 +12392,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Quote"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Quote'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -12612,8 +12872,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Credit"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/PurchaseOrder'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -12649,7 +12917,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -12695,7 +12963,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -12740,7 +13008,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -12825,7 +13093,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Invoice"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -12863,7 +13131,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -12950,7 +13218,7 @@ paths:
example: clone_to_quote
responses:
200:
- description: "Returns the invoice object"
+ description: "Returns the purchase order object"
headers:
X-MINIMUM-CLIENT-VERSION:
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
@@ -12961,7 +13229,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Invoice"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -13006,7 +13274,7 @@ paths:
content:
application/json:
schema:
- $ref: "#/components/schemas/Vendor"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -13084,8 +13352,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Vendor"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Vendor'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -13459,6 +13735,78 @@ components:
in: header
name: X-API-TOKEN
responses:
+ examples:
+ Client:
+ - id: Opnel5aKBz
+ user_id: Ua6Rw4pVbS
+ assigned_user_id: Ua6Rw4pVbS
+ company_id: Co7Vn3yLmW
+ name: "Jim's Housekeeping"
+ website: https://www.jims-housekeeping.com
+ private_notes: Client prefers email communication over phone calls
+ client_hash: asdfkjhk342hjhbfdvmnfb1
+ industry_id: 5
+ size_id: 2
+ address1: 123 Main St
+ address2: Apt 4B
+ city: Beverly Hills
+ state: California
+ postal_code: 90210
+ phone: 555-3434-3434
+ country_id: 1
+ custom_value1: Email
+ custom_value2: John Doe
+ custom_value3: Yes
+ custom_value4: $50,000
+ vat_number: VAT123456
+ id_number: ID123456
+ number: CL-0001
+ shipping_address1: 5 Wallaby Way
+ shipping_address2: Suite 5
+ shipping_city: Perth
+ shipping_state: Western Australia
+ shipping_postal_code: 6110
+ shipping_country_id: 4
+ is_deleted: false
+ balance: 500.00
+ paid_to_date: 2000.00
+ credit_balance: 100.00
+ last_login: 1628686031
+ created_at: 1617629031
+ updated_at: 1628445631
+ group_settings_id: Opnel5aKBz
+ routing_id: Opnel5aKBz3489-dfkiu-2239-sdsd
+ is_tax_exempt: false
+ has_valid_vat_number: false
+ payment_balance: 100
+ contacts:
+ - id: Opnel5aKBz
+ first_name: John
+ last_name: Doe
+ email: jim@gmail.com
+ phone: 555-3434-3434
+ send_invoice: true
+ custom_value1: Email
+ custom_value2: John Doe
+ custom_value3: Yes
+ custom_value4: $50,000
+ is_primary: true
+ created_at: 1617629031
+ updated_at: 1628445631
+ deleted_at: 1628445631
+ Meta:
+ value:
+ pagination:
+ total: 1
+ count: 1
+ per_page: 20
+ current_page: 1
+ total_pages: 1
+ links:
+ - first: https://invoicing.co/api/v1/invoices?page=1
+ - last: https://invoicing.co/api/v1/invoices?page=1
+ - prev: null
+ - next: null
429:
description: 'Rate Limit Exceeded'
content:
@@ -16613,6 +16961,42 @@ components:
type: integer
example: '1'
type: object
+ Meta:
+ properties:
+ pagination:
+ $ref: '#/components/schemas/Pagination'
+ Pagination:
+ type: object
+ properties:
+ total:
+ type: integer
+ description: 'The total number of items'
+ example: 1
+ readOnly: true
+ count:
+ type: integer
+ description: 'The number of items per page'
+ example: 1
+ readOnly: true
+ per_page:
+ type: integer
+ description: 'The number of items per page'
+ example: 1
+ readOnly: true
+ current_page:
+ type: integer
+ description: 'The current page number'
+ example: 1
+ readOnly: true
+ total_pages:
+ type: integer
+ description: 'The total number of pages'
+ example: 1
+ readOnly: true
+ links:
+ type: array
+ description: 'The pagination links'
+ readOnly: true
FeesAndLimits:
properties:
@@ -18597,8 +18981,6 @@ components:
type: string
format: date
example: '1994-07-30'
- settings:
- $ref: '#/components/schemas/CompanySettings'
last_viewed:
description: Timestamp
type: number
diff --git a/openapi/components/examples.yaml b/openapi/components/examples.yaml
new file mode 100644
index 000000000000..626e4767c105
--- /dev/null
+++ b/openapi/components/examples.yaml
@@ -0,0 +1,72 @@
+ examples:
+ Client:
+ - id: Opnel5aKBz
+ user_id: Ua6Rw4pVbS
+ assigned_user_id: Ua6Rw4pVbS
+ company_id: Co7Vn3yLmW
+ name: "Jim's Housekeeping"
+ website: https://www.jims-housekeeping.com
+ private_notes: Client prefers email communication over phone calls
+ client_hash: asdfkjhk342hjhbfdvmnfb1
+ industry_id: 5
+ size_id: 2
+ address1: 123 Main St
+ address2: Apt 4B
+ city: Beverly Hills
+ state: California
+ postal_code: 90210
+ phone: 555-3434-3434
+ country_id: 1
+ custom_value1: Email
+ custom_value2: John Doe
+ custom_value3: Yes
+ custom_value4: $50,000
+ vat_number: VAT123456
+ id_number: ID123456
+ number: CL-0001
+ shipping_address1: 5 Wallaby Way
+ shipping_address2: Suite 5
+ shipping_city: Perth
+ shipping_state: Western Australia
+ shipping_postal_code: 6110
+ shipping_country_id: 4
+ is_deleted: false
+ balance: 500.00
+ paid_to_date: 2000.00
+ credit_balance: 100.00
+ last_login: 1628686031
+ created_at: 1617629031
+ updated_at: 1628445631
+ group_settings_id: Opnel5aKBz
+ routing_id: Opnel5aKBz3489-dfkiu-2239-sdsd
+ is_tax_exempt: false
+ has_valid_vat_number: false
+ payment_balance: 100
+ contacts:
+ - id: Opnel5aKBz
+ first_name: John
+ last_name: Doe
+ email: jim@gmail.com
+ phone: 555-3434-3434
+ send_invoice: true
+ custom_value1: Email
+ custom_value2: John Doe
+ custom_value3: Yes
+ custom_value4: $50,000
+ is_primary: true
+ created_at: 1617629031
+ updated_at: 1628445631
+ deleted_at: 1628445631
+ Meta:
+ value:
+ pagination:
+ total: 1
+ count: 1
+ per_page: 20
+ current_page: 1
+ total_pages: 1
+ links:
+ - first: https://invoicing.co/api/v1/invoices?page=1
+ - last: https://invoicing.co/api/v1/invoices?page=1
+ - prev: null
+ - next: null
\ No newline at end of file
diff --git a/openapi/components/schemas/invoice.yaml b/openapi/components/schemas/invoice.yaml
index cbb60434cfc5..8a237d4bd31c 100644
--- a/openapi/components/schemas/invoice.yaml
+++ b/openapi/components/schemas/invoice.yaml
@@ -168,8 +168,6 @@
type: string
format: date
example: '1994-07-30'
- settings:
- $ref: '#/components/schemas/CompanySettings'
last_viewed:
description: Timestamp
type: number
diff --git a/openapi/components/schemas/meta.yaml b/openapi/components/schemas/meta.yaml
new file mode 100644
index 000000000000..39d6abb99114
--- /dev/null
+++ b/openapi/components/schemas/meta.yaml
@@ -0,0 +1,36 @@
+ Meta:
+ properties:
+ pagination:
+ $ref: '#/components/schemas/Pagination'
+ Pagination:
+ type: object
+ properties:
+ total:
+ type: integer
+ description: 'The total number of items'
+ example: 1
+ readOnly: true
+ count:
+ type: integer
+ description: 'The number of items per page'
+ example: 1
+ readOnly: true
+ per_page:
+ type: integer
+ description: 'The number of items per page'
+ example: 1
+ readOnly: true
+ current_page:
+ type: integer
+ description: 'The current page number'
+ example: 1
+ readOnly: true
+ total_pages:
+ type: integer
+ description: 'The total number of pages'
+ example: 1
+ readOnly: true
+ links:
+ type: array
+ description: 'The pagination links'
+ readOnly: true
\ No newline at end of file
diff --git a/openapi/paths.yaml b/openapi/paths.yaml
index f33e29e006a1..2e3e7fec4c8a 100644
--- a/openapi/paths.yaml
+++ b/openapi/paths.yaml
@@ -15,7 +15,7 @@ paths:
- $ref: "#/components/parameters/page_meta"
responses:
200:
- description: "Returns the client object"
+ description: "Returns the list of activities"
headers:
X-MINIMUM-CLIENT-VERSION:
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
@@ -25,8 +25,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Client"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Activity'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -242,8 +250,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/BankIntegration"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/BankIntegration'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -646,8 +662,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/BankTransaction"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/BankTransaction'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -991,8 +1015,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/BankTransactionRule"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/BankTransactionRule'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1323,8 +1355,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/ClientGatewayToken"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/ClientGatewayToken'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1580,8 +1620,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Company"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Company'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -1923,8 +1971,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/CompanyGateway"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CompanyGateway'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2230,8 +2286,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/CompanyLedger"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CompanyLedger'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2334,8 +2398,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Design"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Design'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2642,8 +2714,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Document"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -2727,8 +2807,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/ExpenseCategory"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/ExpenseCategory'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -3023,8 +3111,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Expense"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Expense'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -3391,8 +3487,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/GroupSetting"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/GroupSetting'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -3875,8 +3979,8 @@ paths:
post:
tags:
- logout
- summary: "Gets a list of logout"
- description: "Lists all logout"
+ summary: "Logs the user out of their current session"
+ description: "Logs the user out of their current session"
operationId: getLogout
parameters:
- $ref: "#/components/parameters/X-API-TOKEN"
@@ -4062,8 +4166,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/PaymentTerm"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/PaymentTerm'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -4496,8 +4608,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/RecurringExpense"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/RecurringExpense'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -4838,8 +4958,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/RecurringQuote"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/RecurringQuote'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -5734,8 +5862,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Subscription"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Subscription'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6075,8 +6211,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/SystemLog"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/SystemLog'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6380,8 +6524,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/TaskStatus"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskStatus'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6685,8 +6837,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/TaxRate"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaxRate'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -6994,8 +7154,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/CompanyToken"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CompanyToken'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -7294,8 +7462,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/User"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/User'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -7742,8 +7918,16 @@ paths:
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Webhook"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Webhook'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/clients.yaml b/openapi/paths/clients.yaml
index 7194f8981bc5..90b9afd093aa 100644
--- a/openapi/paths/clients.yaml
+++ b/openapi/paths/clients.yaml
@@ -117,8 +117,20 @@
$ref: '#/components/headers/X-RateLimit-Limit'
content:
application/json:
- schema:
- $ref: '#/components/schemas/Client'
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Client'
+ example:
+ $ref: '#/components/examples/Client'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
+ example:
+ $ref: '#/components/examples/Meta'
401:
$ref: '#/components/responses/401'
403:
diff --git a/openapi/paths/credits.yaml b/openapi/paths/credits.yaml
index 1317a8e24e95..d98dea8555fa 100644
--- a/openapi/paths/credits.yaml
+++ b/openapi/paths/credits.yaml
@@ -21,8 +21,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Credit"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Credit'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/invoices.yaml b/openapi/paths/invoices.yaml
index 13e473c47fda..ed25012fecda 100644
--- a/openapi/paths/invoices.yaml
+++ b/openapi/paths/invoices.yaml
@@ -106,8 +106,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Invoice"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Invoice'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/payments.yaml b/openapi/paths/payments.yaml
index 1d299f8713d9..cb4a4bf87ab7 100644
--- a/openapi/paths/payments.yaml
+++ b/openapi/paths/payments.yaml
@@ -57,8 +57,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Payment"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Payment'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/products.yaml b/openapi/paths/products.yaml
index c107ee6cf44a..dfcc3ad6db63 100644
--- a/openapi/paths/products.yaml
+++ b/openapi/paths/products.yaml
@@ -52,8 +52,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Product"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Product'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: '#/components/responses/401'
403:
diff --git a/openapi/paths/projects.yaml b/openapi/paths/projects.yaml
index c66fa13087c3..104e66c088ce 100644
--- a/openapi/paths/projects.yaml
+++ b/openapi/paths/projects.yaml
@@ -22,8 +22,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Project"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Project'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/purchase_orders.yaml b/openapi/paths/purchase_orders.yaml
index fcf63f0f8639..dcdd3173c7c7 100644
--- a/openapi/paths/purchase_orders.yaml
+++ b/openapi/paths/purchase_orders.yaml
@@ -21,8 +21,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Credit"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/PurchaseOrder'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
@@ -58,7 +66,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -104,7 +112,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -149,7 +157,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -234,7 +242,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Invoice"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -272,7 +280,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Credit"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -359,7 +367,7 @@
example: clone_to_quote
responses:
200:
- description: "Returns the invoice object"
+ description: "Returns the purchase order object"
headers:
X-MINIMUM-CLIENT-VERSION:
$ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION"
@@ -370,7 +378,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Invoice"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
@@ -415,7 +423,7 @@
content:
application/json:
schema:
- $ref: "#/components/schemas/Vendor"
+ $ref: "#/components/schemas/PurchaseOrder"
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/quotes.yaml b/openapi/paths/quotes.yaml
index 0ef3adb53d4a..dfabf6442dfe 100644
--- a/openapi/paths/quotes.yaml
+++ b/openapi/paths/quotes.yaml
@@ -70,8 +70,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Quote"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Quote'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/recurring_invoices.yaml b/openapi/paths/recurring_invoices.yaml
index 1ffb5616a101..47560656b0ac 100644
--- a/openapi/paths/recurring_invoices.yaml
+++ b/openapi/paths/recurring_invoices.yaml
@@ -60,8 +60,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/RecurringInvoice"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/RecurringInvoice'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/tasks.yaml b/openapi/paths/tasks.yaml
index 26e36d87051c..b392d84f9eb0 100644
--- a/openapi/paths/tasks.yaml
+++ b/openapi/paths/tasks.yaml
@@ -22,8 +22,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Task"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Task'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403:
diff --git a/openapi/paths/vendors.yaml b/openapi/paths/vendors.yaml
index 3a97f0bfdcc5..267221cf5200 100644
--- a/openapi/paths/vendors.yaml
+++ b/openapi/paths/vendors.yaml
@@ -22,8 +22,16 @@
$ref: "#/components/headers/X-RateLimit-Limit"
content:
application/json:
- schema:
- $ref: "#/components/schemas/Vendor"
+ schema:
+ type: object
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Vendor'
+ meta:
+ type: object
+ $ref: '#/components/schemas/Meta'
401:
$ref: "#/components/responses/401"
403: