{"files":{"SKILL.md":"---\nname: sinao-api\ndescription: \"Sinao API skill. Use when working with Sinao for login, sendpassword, changepassword. Covers 383 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Sinao API\nAPI version: 1.1.0\n\n## Auth\nBearer bearer | Bearer basic | Bearer basic | Bearer basic\n\n## Base URL\nhttps://api.sinao.app/v1\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /refresh -- refresh a token\n3. POST /login -- create first login\n\n## Endpoints\n383 endpoints across 12 groups. See references/api-spec.lap for full details.\n\n### Login\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /login | Login |\n| POST | /login/send/2fa | Send 2FA code |\n\n### Sendpassword\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /sendpassword | Password recover by email |\n\n### Changepassword\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /changepassword | Change password |\n\n### Logout\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /logout | Logout |\n\n### Refresh\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /refresh | Refresh a token |\n\n### Me\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /me | Get current user |\n| POST | /me | Update current user |\n\n### Register\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /register | Create an User |\n\n### Apps\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /apps | Create an app |\n| GET | /apps | List apps |\n| GET | /apps/{appId} | Get an app |\n| GET | /apps/{appId}/ping | Ping app web hostname |\n| POST | /apps/{appId}/reset | Reset all data |\n| GET | /apps/{appId}/apikeys | Get all api keys |\n| POST | /apps/{appId}/apikeys | Create new API key |\n| DELETE | /apps/{appId}/apikeys/{id} | Remove an api key |\n| GET | /apps/{appId}/apipartners | Get all api partners |\n| GET | /apps/{appId}/settings | Get app config |\n| POST | /apps/{appId}/settings | Update app config |\n| GET | /apps/{appId}/jobs/{job} | Get app job |\n| GET | /apps/{appId}/templates | Get templates |\n| POST | /apps/{appId}/templates | Create a template |\n| GET | /apps/{appId}/document-langs | Get document (invoice or quote) available printable langs |\n| POST | /apps/{appId}/templates/batch | Create multiple templates |\n| GET | /apps/{appId}/templates/default | Get default template |\n| GET | /apps/{appId}/templates/{id} | Get a template |\n| POST | /apps/{appId}/templates/{id} | Update a template |\n| GET | /apps/{appId}/subscription/plan/extra | Get current plan |\n| GET | /apps/{appId}/subscription/customer | Stripe Customer object |\n| POST | /apps/{appId}/subscription/customer | Stripe Customer object |\n| GET | /apps/{appId}/subscription/plan | Get current plan |\n| DELETE | /apps/{appId}/subscription/plan | End current plan |\n| GET | /apps/{appId}/subscription/plans | Get plans |\n| GET | /apps/{appId}/subscription/invoices | See all invoices |\n| GET | /apps/{appId}/subscription/payment_methods | See all payment methods |\n| GET | /apps/{appId}/subscription/extra/count | Count extra usage |\n| POST | /apps/{appId}/subscription/extra/{stripe_plan} | Enable plan |\n| GET | /apps/{appId}/subscription/plans/{stripe_plan} | Simulate a plan |\n| POST | /apps/{appId}/subscription/plans/{stripe_plan} | Change plan |\n| GET | /apps/{appId}/subscription/plans/{stripe_plan}/checkout | Get payment link to Stripe Checkout |\n| GET | /apps/{appId}/subscription/checkout_session | Get Stripe Checkout Session id |\n| GET | /apps/{appId}/subscription/checkout_add_source | Get payment link to Stripe Checkout |\n| POST | /apps/{appId}/subscription/source | Add creditcard or sepadebit |\n| DELETE | /apps/{appId}/subscription/source | Remove creditcard or sepadebit |\n| POST | /apps/{appId}/subscription/source/default | Change default source |\n| POST | /apps/{appId}/subscription/pay_all | Pay all due invoices |\n| POST | /apps/{appId}/subscription/cancel | Cancel the subscription now |\n| POST | /apps/{appId}/subscription/extend_trial | Extend trial period |\n| POST | /apps/{appId}/subscription/coupon | Add coupon |\n| GET | /apps/{appId}/subscription/coupon | See coupon |\n| POST | /apps/{appId}/subscription/anchordate | Update anchor date |\n| GET | /apps/{appId}/access/profiles | Get profiles |\n| POST | /apps/{appId}/access/invite | Invite an user |\n| GET | /apps/{appId}/access/invite | List invitations |\n| DELETE | /apps/{appId}/access/invite/{id} | Delete an invitation |\n| GET | /apps/{appId}/pennylane/refresh-token | endpoint for Pennylane fesh bearer token |\n| POST | /apps/access/invite/{accessToken}/register | Create an User by invitation |\n| GET | /apps/access/invite/{accessToken} | Get invitation informations |\n| DELETE | /apps/access/invite/{accessToken} | Delete an invitation from token |\n| POST | /apps/access/accounting/policies/accounting/batch | Create/update policies for a user |\n| GET | /apps/{appId}/access | Get policies for an app |\n| GET | /apps/{appId}/access/{userId} | Get police for an user |\n| POST | /apps/{appId}/access/{userId} | Update police for an user |\n| DELETE | /apps/{appId}/access/{userId} | Delete police for an user |\n| GET | /apps/{appId}/organization | Get organization profile for current app |\n| POST | /apps/{appId}/organization | Update organization profile for current app |\n| GET | /apps/{appId}/organizations | List organizations |\n| POST | /apps/{appId}/organizations | Create an organization |\n| POST | /apps/{appId}/organizations/batch | Create multiple organizations |\n| DELETE | /apps/{appId}/organizations/batch | Remove multiple organizations |\n| POST | /apps/{appId}/organizations/chorus-search | Search organizations in Chorus Pro |\n| GET | /apps/{appId}/organizations/{id} | Get an organization |\n| POST | /apps/{appId}/organizations/{id} | Update an organization |\n| DELETE | /apps/{appId}/organizations/{id} | Remove an organization |\n| GET | /apps/{appId}/organizations/{id}/restore | Restore an organization |\n| GET | /apps/{appId}/organizations/{id}/sepa/mandate | Get sepa_mandate of a organizations |\n| DELETE | /apps/{appId}/organizations/delete/all | Remove all organizations |\n| GET | /apps/{appId}/persons | List persons |\n| POST | /apps/{appId}/persons | Create a person |\n| POST | /apps/{appId}/persons/batch | Create multiple persons |\n| DELETE | /apps/{appId}/persons/batch | Delete many persons |\n| GET | /apps/{appId}/persons/{id} | Get a person |\n| POST | /apps/{appId}/persons/{id} | Update a person |\n| DELETE | /apps/{appId}/persons/{id} | Remove a person |\n| GET | /apps/{appId}/persons/{id}/restore | Restore a person |\n| GET | /apps/{appId}/persons/{id}/sepa/mandate | Get sepa_mandate of a person |\n| DELETE | /apps/{appId}/persons/delete/all | Remove all persons |\n| GET | /apps/{appId}/establishments/{id} | Get an establishment |\n| POST | /apps/{appId}/establishments/{id} | Update an establishment |\n| DELETE | /apps/{appId}/establishments/{id} | Remove an establishment |\n| POST | /apps/{appId}/establishments/{establishment_id}/contact/{contact_id} | Update an establishment contact |\n| DELETE | /apps/{appId}/establishments/{establishment_id}/contact/{contact_id} | Remove an establishment contact |\n| GET | /apps/{appId}/relationships | List relationships |\n| POST | /apps/{appId}/relationships/{id}/attach | Attach a file |\n| DELETE | /apps/{appId}/relationships/{id}/attach | Detach a file |\n| GET | /apps/{appId}/relationships/{id} | Get a relationship |\n| POST | /apps/{appId}/relationships/{id} | Update a relationship |\n| POST | /apps/{appId}/relationships/{id}/tag | Add a tag on a relationship |\n| DELETE | /apps/{appId}/relationships/{id}/tag | Delete a tag on a relationship |\n| POST | /apps/{appId}/contacts/merge | Merge many contacts |\n| GET | /apps/{appId}/invoices | List invoices |\n| POST | /apps/{appId}/invoices | Create an invoice |\n| POST | /apps/{appId}/invoices/batch | Create or update many invoices |\n| DELETE | /apps/{appId}/invoices/batch | Delete many invoices |\n| GET | /apps/{appId}/invoices/nextnumber | Get the next invoice number for preview |\n| GET | /apps/{appId}/invoices/download | Download a list of invoices in pdf into a .zip file |\n| GET | /apps/{appId}/invoices/statistics | Obtain statistics about invoices |\n| POST | /apps/{appId}/invoices/fresh | Regenerate pdf and recalcul amounts of invoice |\n| POST | /apps/{appId}/invoices/chorus-pro | Send selected invoices to Chorus-Pro |\n| GET | /apps/{appId}/invoices/{id} | Get an invoice |\n| POST | /apps/{appId}/invoices/{id} | Update an invoice |\n| DELETE | /apps/{appId}/invoices/{id} | Remove an invoice |\n| POST | /apps/{appId}/invoices/{id}/duplicate | Duplicate an invoice |\n| POST | /apps/{appId}/invoices/{id}/avoid | Create a creditnote on an invoice |\n| POST | /apps/{appId}/invoices/{id}/finalize | Finalize an invoice |\n| POST | /apps/{appId}/invoices/{id}/updatestatus | Update the status of an invoice |\n| POST | /apps/{appId}/invoices/{id}/attach | Attach a file at an invoice |\n| DELETE | /apps/{appId}/invoices/{id}/attach | Detach a file at an invoice |\n| POST | /apps/{appId}/invoices/{id}/tag | Add a tag on an invoice |\n| DELETE | /apps/{appId}/invoices/{id}/tag | Delete a tag on an invoice |\n| GET | /apps/{appId}/invoices/{id}/pdf | Download the invoice as pdf |\n| GET | /apps/{appId}/invoices/{id}/preview.jpg | Download invoice as jpeg |\n| GET | /apps/{appId}/invoice/{id}/link | Generate an invoice link |\n| POST | /apps/{appId}/invoices/batch/breakdown | Update the breakdown of an invoice |\n| DELETE | /apps/{appId}/invoices/delete/all | Remove all purchases |\n| GET | /apps/{appId}/quotes | List quotes |\n| POST | /apps/{appId}/quotes | Create a quote |\n| POST | /apps/{appId}/quotes/batch | Create or update many quotes |\n| DELETE | /apps/{appId}/quotes/batch | Delete many quotes |\n| POST | /apps/{appId}/quotes/invoice | Create or update many quotes |\n| GET | /apps/{appId}/quotes/nextnumber | Get the next quote number for preview |\n| GET | /apps/{appId}/quotes/download | Download a list of quotes in pdf into a .zip file |\n| GET | /apps/{appId}/quotes/statistics | Obtain statistics about quotes |\n| POST | /apps/{appId}/quotes/fresh | Regenerate pdf and recalcul amounts of quote |\n| GET | /apps/{appId}/quotes/{id} | Get a quote |\n| POST | /apps/{appId}/quotes/{id} | Update a quote |\n| DELETE | /apps/{appId}/quotes/{id} | Remove a quote |\n| POST | /apps/{appId}/quotes/{id}/finalize | Finalize a quote |\n| POST | /apps/{appId}/quotes/{id}/duplicate | Duplicate a quote |\n| POST | /apps/{appId}/quotes/{id}/invoice | Transform the quote in invoice |\n| POST | /apps/{appId}/quotes/{id}/situation_invoice | Transform the quote into a situation invoice |\n| POST | /apps/{appId}/quotes/{id}/downpayment | Transform the quote in a downpayment invoice |\n| POST | /apps/{appId}/quotes/{id}/updatestatus | Update the status of a quote |\n| POST | /apps/{appId}/quotes/{id}/attach | Attach a file at a quote |\n| DELETE | /apps/{appId}/quotes/{id}/attach | Detach a file at a quote |\n| POST | /apps/{appId}/quotes/{id}/tag | Add a tag on an quote |\n| DELETE | /apps/{appId}/quotes/{id}/tag | Delete a tag on a quote |\n| GET | /apps/{appId}/quotes/{id}/pdf | Download the quote as pdf |\n| GET | /apps/{appId}/quotes/{id}/preview.jpg | Download quote as jpeg |\n| GET | /apps/{appId}/quotes/{id}/yousign/preview.jpg | Download quote as jpeg |\n| DELETE | /apps/{appId}/quotes/delete/all | Remove all quotes |\n| POST | /apps/{appId}/quotes/batch/breakdown | Update the breakdown of an quote |\n| GET | /apps/{appId}/salesdocumentmodels | List sales documents models |\n| POST | /apps/{appId}/salesdocumentmodels | Create a sales document model |\n| GET | /apps/{appId}/salesdocumentmodels/{id} | Get a sales document model |\n| POST | /apps/{appId}/salesdocumentmodels/{id} | Update a sales document model |\n| DELETE | /apps/{appId}/salesdocumentmodels/{id} | Remove a sales document model |\n| GET | /apps/{appId}/recurringinvoices | List RecurringInvoice |\n| POST | /apps/{appId}/recurringinvoices | Create a RecurringInvoice |\n| POST | /apps/{appId}/recurringinvoices/batch | Create or update many RecurringInvoice |\n| DELETE | /apps/{appId}/recurringinvoices/batch | Delete many RecurringInvoice |\n| GET | /apps/{appId}/recurringinvoices/periods | Get json of periods_formats for a date. |\n| GET | /apps/{appId}/recurringinvoices/{id} | Get a RecurringInvoice |\n| POST | /apps/{appId}/recurringinvoices/{id} | Update a RecurringInvoice |\n| DELETE | /apps/{appId}/recurringinvoices/{id} | Remove a RecurringInvoice |\n| GET | /apps/{appId}/recurringinvoices/{id}/plan | Preview next invoices generations |\n| GET | /apps/{appId}/bankdetails | List BankDetails |\n| POST | /apps/{appId}/bankdetails | Create a BankDetails |\n| GET | /apps/{appId}/bankdetails/{id} | Get a BankDetails |\n| POST | /apps/{appId}/bankdetails/{id} | Update a BankDetails |\n| DELETE | /apps/{appId}/bankdetails/{id} | Remove a BankDetails |\n| POST | /apps/{appId}/email/document | Send an email |\n| POST | /apps/{appId}/email/batch | Send emails |\n| GET | /apps/{appId}/email/document/{id} | Get all emails assign to a document |\n| GET | /apps/{appId}/purchases | List purchases |\n| POST | /apps/{appId}/purchases | Create a purchase |\n| GET | /apps/{appId}/purchases/statistics | Obtain statistics about purchases |\n| POST | /apps/{appId}/purchases/batch | Create or update many purchases |\n| DELETE | /apps/{appId}/purchases/batch | Delete many purchases |\n| GET | /apps/{appId}/purchases/download | Download a list of purchases in pdf into a .zip file |\n| GET | /apps/{appId}/purchases/{id} | Get a purchase |\n| POST | /apps/{appId}/purchases/{id} | Update a purchase |\n| DELETE | /apps/{appId}/purchases/{id} | Remove a purchase |\n| POST | /apps/{appId}/purchases/{id}/updatestatus | Update the status of an invoice |\n| POST | /apps/{appId}/purchases/{id}/attach | Attach a file at a purchase |\n| DELETE | /apps/{appId}/purchases/{id}/attach | Detach a file at a purchase |\n| POST | /apps/{appId}/purchases/{id}/tag | Add a tag on a purchase |\n| DELETE | /apps/{appId}/purchases/{id}/tag | Delete a tag on a purchase |\n| GET | /apps/{appId}/purchases/{id}/original | Download the purchase as pdf |\n| GET | /apps/{appId}/purchases/{id}/preview.jpg | Download purchase as jpeg |\n| GET | /apps/{appId}/purchases/{id}/thumbnail.jpg | Show purchase thumbnail as jpeg |\n| DELETE | /apps/{appId}/purchases/delete/all | Remove all purchases |\n| POST | /apps/{appId}/purchases/mileage_allowances/create | Create a mileage allowance |\n| POST | /apps/{appId}/purchases/mileage_allowances/{id}/duplicate | Duplicate an mileage allowance |\n| GET | /apps/{appId}/purchases/mileage_allowances/resume | Resume of all mileage allowances for the current year + employee |\n| POST | /apps/{appId}/purchases/mileage_allowances/{id} | Update a mileage allowance |\n| POST | /apps/{appId}/purchases/create/demo | Create a fake purchase for test purpose |\n| GET | /apps/{appId}/accounts/employees | Get accounting for all employees |\n| POST | /apps/{appId}/accounts/employees | Create accounting for an employee |\n| GET | /apps/{appId}/accounts/employees/{id} | Get account for an employee |\n| POST | /apps/{appId}/accounts/employees/{id} | Update account for an employee |\n| DELETE | /apps/{appId}/accounts/employees/{id} | Delete account for an employee |\n| GET | /apps/{appId}/attachments | List attachments |\n| POST | /apps/{appId}/attachments | Attach a file on an object |\n| PUT | /apps/{appId}/attachments | Recreate S.A.P attestations |\n| GET | /apps/{appId}/attachments/download | Download a list of attachments in pdf into a .zip file |\n| GET | /apps/{appId}/attachments/sap-download | Download a list of SAP attestations in pdf into a .zip file |\n| GET | /apps/{appId}/attachments/{id} | Get attachment by id |\n| DELETE | /apps/{appId}/attachments/{id} | Detach a file from id |\n| GET | /apps/{appId}/attachments/{id}/pdf | Download the attachment as pdf |\n| GET | /apps/{appId}/products | List products |\n| POST | /apps/{appId}/products | Create a product |\n| POST | /apps/{appId}/products/batch | Create multiple products |\n| DELETE | /apps/{appId}/products/batch | Delete many products |\n| POST | /apps/{appId}/products/{id}/attach | Attach a file |\n| DELETE | /apps/{appId}/products/{id}/attach | Detach a file |\n| GET | /apps/{appId}/products/{id} | Get a product |\n| POST | /apps/{appId}/products/{id} | Update a product |\n| DELETE | /apps/{appId}/products/{id} | Remove a product |\n| POST | /apps/{appId}/products/{id}/tag | Add a tag on a product |\n| DELETE | /apps/{appId}/products/{id}/tag | Delete a tag on a product |\n| DELETE | /apps/{appId}/products/delete/all | Remove all products |\n| GET | /apps/{appId}/productstocks | List stocks |\n| POST | /apps/{appId}/productstocks | Create a stocks |\n| GET | /apps/{appId}/productstocks/{id} | Get a stocks |\n| POST | /apps/{appId}/productstocks/{id} | Update a stocks |\n| DELETE | /apps/{appId}/productstocks/{id} | Remove a stocks |\n| POST | /apps/{appId}/productstocks/{id}/destruct | Destruct a quantity of stock (forgotten, destructed, expirated stock...) |\n| POST | /apps/{appId}/productstocks/{id}/rental/exit | Consider part of the stock as rented |\n| POST | /apps/{appId}/productstocks/{id}/rental/back | Consider part of the stock as back |\n| GET | /apps/{appId}/productcategory | List product categories |\n| POST | /apps/{appId}/productcategory | Create a product category |\n| GET | /apps/{appId}/productcategory/{id} | Get a product category |\n| POST | /apps/{appId}/productcategory/{id} | Update a product category |\n| DELETE | /apps/{appId}/productcategory/{id} | Remove a product category |\n| POST | /apps/{appId}/reconcile | Reconcile a transaction or a document |\n| DELETE | /apps/{appId}/reconcile | Remove payments by an object |\n| POST | /apps/{appId}/reconcile/batch | Reconcile several transactions |\n| GET | /apps/{appId}/payments | List payments |\n| GET | /apps/{appId}/payments/recipe_book | Get the recipe book |\n| GET | /apps/{appId}/payments/{id} | Get a payment |\n| DELETE | /apps/{appId}/payments/{id} | Remove a payment |\n| GET | /apps/{appId}/sepamandates/directdebit | Preview sepa direct debit file |\n| POST | /apps/{appId}/sepamandates/directdebit | Download sepa direct debit file |\n| GET | /apps/{appId}/sepamandates/credittransfer | Preview sepa credit transfer file |\n| POST | /apps/{appId}/sepamandates/credittransfer | Preview sepa credit transfer file |\n| GET | /apps/{appId}/sepamandates/ | List SEPAMandate |\n| POST | /apps/{appId}/sepamandates/ | Create a SEPAMandate |\n| GET | /apps/{appId}/sepamandates/{id} | Get a SEPAMandate |\n| POST | /apps/{appId}/sepamandates/{id} | Update a SEPAMandate |\n| DELETE | /apps/{appId}/sepamandates/{id} | Remove a SEPAMandate |\n| GET | /apps/{appId}/urssaf/preview | Preview URSSAF request payment |\n| POST | /apps/{appId}/urssaf/auth | Login URSSAF |\n| POST | /apps/{appId}/urssaf/register_customer | Register a person to URSSAF and create him a mandate |\n| POST | /apps/{appId}/urssaf/customer | Get person informations |\n| GET | /apps/{appId}/urssaf/payment | Get status of a payment |\n| POST | /apps/{appId}/urssaf/payment | Send URSSAF request payment |\n| GET | /apps/{appId}/banks/ | List banks connected to bankin |\n| DELETE | /apps/{appId}/banks/ | Remove a Bankin synchronization |\n| GET | /apps/{appId}/banks/connect | Get the link to the funnel to connect a bank with Sinao |\n| POST | /apps/{appId}/banks/synchronize | Triggers synchronization at Bankin then synchronizes transactions with Sinao |\n| GET | /apps/{appId}/banks/{id}/funnel/sync | Get the link to the funnel to start manually a synchronization (SCA) |\n| GET | /apps/{appId}/banks/{id}/funnel/edit | Get the link to the funnel to edit password |\n| GET | /apps/{appId}/banks/{id}/funnel/validate | Get the link to the funnel to validate a pro item (SCA) |\n| POST | /apps/{appId}/banks/{id}/select_accounts | Select accounts to synchronize |\n| GET | /apps/{appId}/cashflowsources/ | List CashflowSource |\n| POST | /apps/{appId}/cashflowsources/ | Create a CashflowSource |\n| GET | /apps/{appId}/cashflowsources/{id} | Get a CashflowSource |\n| POST | /apps/{appId}/cashflowsources/{id} | Update a CashflowSource |\n| DELETE | /apps/{appId}/cashflowsources/{id} | Remove a CashflowSource |\n| GET | /apps/{appId}/logs/autoreconcile/ | List autoreconciliation logs |\n| POST | /apps/{appId}/logs/autoreconcile/ | Start force autoreconciliation |\n| DELETE | /apps/{appId}/logs/autoreconcile/ | Clear autoreconciliation logs |\n| GET | /apps/{appId}/transactions/ | List Transaction |\n| POST | /apps/{appId}/transactions/ | Create a Transaction |\n| POST | /apps/{appId}/transactions/batch | Create multiple transactions |\n| DELETE | /apps/{appId}/transactions/batch | Delete many transactions |\n| POST | /apps/{appId}/transactions/{id}/attach | Attach a file |\n| DELETE | /apps/{appId}/transactions/{id}/attach | Detach a file |\n| GET | /apps/{appId}/transactions/{id} | Get a Transaction |\n| POST | /apps/{appId}/transactions/{id} | Update a Transaction |\n| DELETE | /apps/{appId}/transactions/{id} | Remove a Transaction |\n| POST | /apps/{appId}/transactions/{id}/tag | Add a tag on a transaction |\n| DELETE | /apps/{appId}/transactions/{id}/tag | Delete a tag on a transaction |\n| GET | /apps/{appId}/rules/ | List rules |\n| POST | /apps/{appId}/rules/ | Create a rule |\n| POST | /apps/{appId}/rules/execute_on | Execute all rules |\n| GET | /apps/{appId}/rules/{id} | Get a rule |\n| POST | /apps/{appId}/rules/{id} | Update a rule |\n| DELETE | /apps/{appId}/rules/{id} | Remove a rule |\n| GET | /apps/{appId}/accounts/ | List Account |\n| POST | /apps/{appId}/accounts/ | Create a Account |\n| POST | /apps/{appId}/accounts/batch | Create many accounts |\n| DELETE | /apps/{appId}/accounts/batch | Remove multiple accounting accounts |\n| GET | /apps/{appId}/accounts/{id} | Get a Account |\n| POST | /apps/{appId}/accounts/{id} | Update a Account |\n| DELETE | /apps/{appId}/accounts/{id} | Remove a Account |\n| POST | /apps/{appId}/accounts/{delete_account_id}/replace | Delete an account and replace relatives by replacement account id |\n| GET | /apps/{appId}/forecast/elements | Get all forecast elements |\n| POST | /apps/{appId}/forecast/elements | Create a forecast element |\n| DELETE | /apps/{appId}/forecast/elements | Remove a forecast element |\n| POST | /apps/{appId}/forecast/elements/{id} | Create a forecast element |\n| DELETE | /apps/{appId}/forecast/elements/{id} | Remove a forecast element |\n| GET | /apps/{appId}/forecast/turnover | Get all sales_lines grouped by account |\n| GET | /apps/{appId}/forecast/expenditures | Get all sales_lines grouped by account |\n| GET | /apps/{appId}/forecast/payments | Get all sales_lines grouped by account |\n| GET | /apps/{appId}/forecast/average/payment | Get supplier and customer average payment period |\n| GET | /apps/{appId}/forecast/transactions | Get all transactions grouped by account |\n| GET | /apps/{appId}/forecast/pourcentages/budgets | Calculate pourcentages budgets for all categories |\n| GET | /apps/{appId}/forecast/invoices/unpaid | Calculate pourcentages budgets for all categories |\n| GET | /apps/{appId}/forecast/purchases/unpaid | Calculate pourcentages budgets for all categories |\n| GET | /apps/{appId}/accountcategories/ | List categories |\n| POST | /apps/{appId}/accountcategories/ | Create a category |\n| GET | /apps/{appId}/accountcategories/{id} | Get a category |\n| POST | /apps/{appId}/accountcategories/{id} | Update a category |\n| DELETE | /apps/{appId}/accountcategories/{id} | Remove a category |\n| GET | /apps/{appId}/exports | List ExportEntity |\n| POST | /apps/{appId}/exports | Create a ExportEntity |\n| GET | /apps/{appId}/exports/months | List ExportEntity |\n| GET | /apps/{appId}/exports/acd_compta | Get the ACD UUID for authentification |\n| POST | /apps/{appId}/exports/acd_compta | Register ACD identifiants |\n| POST | /apps/{appId}/exports/acd_compta/filenumber | Set ACD file number |\n| GET | /apps/{appId}/exports/agiris | Get your Agiris file code |\n| POST | /apps/{appId}/exports/agiris | Register Agiris file code |\n| GET | /apps/{appId}/exports/download | Download the export entity as zip |\n| GET | /apps/{appId}/exports/download/{export_id} | Download the export entity as zip |\n| GET | /apps/{appId}/exports/{id} | Get a ExportEntity |\n| DELETE | /apps/{appId}/exports/{id} | Remove a ExportEntity |\n| GET | /apps/{appId}/accounting_entries/ | List accounting entries |\n| GET | /apps/{appId}/statistics/vat | Obtain statistics about vat |\n| GET | /apps/{appId}/statistics/timetable/sales | Obtain statistics about sales |\n| GET | /apps/{appId}/statistics/timetable/purchases | Obtain statistics about timetable purchases |\n| GET | /apps/{appId}/statistics/charts/{type} | Obtain statistics about everything |\n| GET | /apps/{appId}/declare/vat | Obtain the url of Teledec declaration page redirection |\n| POST | /apps/{appId}/declare/vat | register Vat declaration settings |\n| GET | /apps/{appId}/tags | Get all existants tags |\n| POST | /apps/{appId}/supplier/accepted | Accept a supplier |\n| POST | /apps/{appId}/supplier/accepted/invoice | Accepted to add only this invoice |\n| POST | /apps/{appId}/signature | Create a signature |\n| GET | /apps/{appId}/services/stripe/webhook | Ping Stripe webhook endpoint |\n| POST | /apps/{appId}/services/stripe/webhook | Webhook for Stripe |\n| POST | /apps/{appId}/services/yousign/webhook | Webhook for Yousign |\n| POST | /apps/{appId}/sponsorship/invite | Send an email |\n| POST | /apps/{appId}/sponsorship/activate | Activate the invitation for sponsorship |\n| GET | /apps/{appId}/sponsorship/list/referrals | Get all referrals for a referrer |\n| GET | /apps/{appId}/sponsorship/referrer | Get the referrer information for my app |\n| GET | /apps/{appId}/sponsorship/referrer/url | Get the referrer url for my app |\n| POST | /apps/{appId}/sponsorship/accept/referrer | Verify if the referrer code is valid |\n| GET | /apps/{appId}/sponsorship/credit | Get the credit for my app |\n| POST | /apps/{appId}/stripe/import/launch | Launch the import of Stripe data |\n| GET | /apps/{appId}/stripe/import/status | Get the import status of Stripe data |\n| GET | /apps/{appId}/stripe/import/state | Get the import state of Stripe data |\n| GET | /apps/{appId}/openai/billing/estimate | Get the import state of Stripe data |\n| GET | /apps/{appId}/openai/billing/reformulate | Get the reformulate for a designation |\n| GET | /apps/{appId}/openai/billing/corrector | Get the smart corrector for a designation |\n| POST | /apps/{appId}/openai/accounting/suggest | Suggest an accounting account from a free-text description using AI |\n| POST | /apps/{appId}/paypal/connect/{clientId} | Connect to Paypal |\n| GET | /apps/{appId}/paypal/connect/state | Get if app is connect to Paypal |\n| GET | /apps/{appId}/paypal/connect/delete | Delete synchronisation paypal |\n| GET | /apps/{appId}/webhooks/events | Get all events |\n\n### Invoice\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /invoice/token-validation/ | Validate an invoice token |\n| GET | /invoice/download/fec/{token} | Download .fec invoice |\n| GET | /invoice/download/pdf/{token} | Download pdf invoice |\n\n### Ping\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /ping | Ping server |\n\n### Services\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /services/collector | Push to purchase collector |\n| GET | /services/vies/{siren} | Get VIES database informations from SIREN |\n\n### Partners\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /partners/{partnerId}/clients/login | Login a client |\n| GET | /partners/{partnerId} | Get partner information |\n| GET | /partners/{partnerId}/cases | Get all cases for a partner |\n| GET | /partners/{partnerId}/apps/{app_id}/apikey | Get or create a apikey for a app inside partner case |\n| GET | /partners/{partnerId}/plans | Get all plans for a partner |\n| POST | /partners/{partnerId}/subscriptions/{app_id}/update | Update a subscription |\n| POST | /partners/{partnerId}/subscriptions/{app_id}/cancel | Cancel a subscription |\n| DELETE | /partners/{partnerId}/delete/cases | Delete apps inside a partner scope |\n| POST | /partners/{partnerId}/dissociate/cases | Dissociate apps from a partner |\n| POST | /partners/{partnerId}/add/collaborator | Add a collaborator to an app |\n| GET | /partners/{partnerId}/collaborators | Get all collaborators for a partner |\n| DELETE | /partners/{partnerId}/collaborators/{id} | Delete a collaborator for a partner |\n| POST | /partners/{partnerId}/assign/collaborators/{id} | Affecter un collaborateur à un partenaire |\n| POST | /partners/{partnerId}/collaborators/{id}/update | Update a collaborator profile for a partner |\n| POST | /partners/{partnerId}/user/accept/invite | User accept an invite 'Support Technique' on this app |\n| POST | /partners/{partnerId}/add/policy | Add a user policy to an app (make by partner) |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a login?\" -> POST /login\n- \"Create a sendpassword?\" -> POST /sendpassword\n- \"Create a changepassword?\" -> POST /changepassword\n- \"Create a logout?\" -> POST /logout\n- \"Create a 2fa?\" -> POST /login/send/2fa\n- \"List all refresh?\" -> GET /refresh\n- \"List all me?\" -> GET /me\n- \"Create a me?\" -> POST /me\n- \"Create a register?\" -> POST /register\n- \"Create a app?\" -> POST /apps\n- \"Search apps?\" -> GET /apps\n- \"Get app details?\" -> GET /apps/{appId}\n- \"List all ping?\" -> GET /apps/{appId}/ping\n- \"Create a reset?\" -> POST /apps/{appId}/reset\n- \"Search apikeys?\" -> GET /apps/{appId}/apikeys\n- \"Create a apikey?\" -> POST /apps/{appId}/apikeys\n- \"Delete a apikey?\" -> DELETE /apps/{appId}/apikeys/{id}\n- \"Search apipartners?\" -> GET /apps/{appId}/apipartners\n- \"List all settings?\" -> GET /apps/{appId}/settings\n- \"Create a setting?\" -> POST /apps/{appId}/settings\n- \"Get job details?\" -> GET /apps/{appId}/jobs/{job}\n- \"List all templates?\" -> GET /apps/{appId}/templates\n- \"Create a template?\" -> POST /apps/{appId}/templates\n- \"List all document-langs?\" -> GET /apps/{appId}/document-langs\n- \"Create a batch?\" -> POST /apps/{appId}/templates/batch\n- \"List all default?\" -> GET /apps/{appId}/templates/default\n- \"Get template details?\" -> GET /apps/{appId}/templates/{id}\n- \"List all extra?\" -> GET /apps/{appId}/subscription/plan/extra\n- \"List all customer?\" -> GET /apps/{appId}/subscription/customer\n- \"Create a customer?\" -> POST /apps/{appId}/subscription/customer\n- \"List all plan?\" -> GET /apps/{appId}/subscription/plan\n- \"List all plans?\" -> GET /apps/{appId}/subscription/plans\n- \"List all invoices?\" -> GET /apps/{appId}/subscription/invoices\n- \"List all payment_methods?\" -> GET /apps/{appId}/subscription/payment_methods\n- \"List all count?\" -> GET /apps/{appId}/subscription/extra/count\n- \"Get plan details?\" -> GET /apps/{appId}/subscription/plans/{stripe_plan}\n- \"List all checkout?\" -> GET /apps/{appId}/subscription/plans/{stripe_plan}/checkout\n- \"List all checkout_session?\" -> GET /apps/{appId}/subscription/checkout_session\n- \"List all checkout_add_source?\" -> GET /apps/{appId}/subscription/checkout_add_source\n- \"Create a source?\" -> POST /apps/{appId}/subscription/source\n- \"Create a default?\" -> POST /apps/{appId}/subscription/source/default\n- \"Create a pay_all?\" -> POST /apps/{appId}/subscription/pay_all\n- \"Create a cancel?\" -> POST /apps/{appId}/subscription/cancel\n- \"Create a extend_trial?\" -> POST /apps/{appId}/subscription/extend_trial\n- \"Create a coupon?\" -> POST /apps/{appId}/subscription/coupon\n- \"List all coupon?\" -> GET /apps/{appId}/subscription/coupon\n- \"Create a anchordate?\" -> POST /apps/{appId}/subscription/anchordate\n- \"List all profiles?\" -> GET /apps/{appId}/access/profiles\n- \"Create a invite?\" -> POST /apps/{appId}/access/invite\n- \"Search invite?\" -> GET /apps/{appId}/access/invite\n- \"Delete a invite?\" -> DELETE /apps/{appId}/access/invite/{id}\n- \"List all refresh-token?\" -> GET /apps/{appId}/pennylane/refresh-token\n- \"Get invite details?\" -> GET /apps/access/invite/{accessToken}\n- \"Search access?\" -> GET /apps/{appId}/access\n- \"Get access details?\" -> GET /apps/{appId}/access/{userId}\n- \"Delete a access?\" -> DELETE /apps/{appId}/access/{userId}\n- \"List all organization?\" -> GET /apps/{appId}/organization\n- \"Create a organization?\" -> POST /apps/{appId}/organization\n- \"Search organizations?\" -> GET /apps/{appId}/organizations\n- \"Create a chorus-search?\" -> POST /apps/{appId}/organizations/chorus-search\n- \"Get organization details?\" -> GET /apps/{appId}/organizations/{id}\n- \"Delete a organization?\" -> DELETE /apps/{appId}/organizations/{id}\n- \"List all restore?\" -> GET /apps/{appId}/organizations/{id}/restore\n- \"List all mandate?\" -> GET /apps/{appId}/organizations/{id}/sepa/mandate\n- \"Search persons?\" -> GET /apps/{appId}/persons\n- \"Create a person?\" -> POST /apps/{appId}/persons\n- \"Get person details?\" -> GET /apps/{appId}/persons/{id}\n- \"Delete a person?\" -> DELETE /apps/{appId}/persons/{id}\n- \"Get establishment details?\" -> GET /apps/{appId}/establishments/{id}\n- \"Delete a establishment?\" -> DELETE /apps/{appId}/establishments/{id}\n- \"Delete a contact?\" -> DELETE /apps/{appId}/establishments/{establishment_id}/contact/{contact_id}\n- \"Search relationships?\" -> GET /apps/{appId}/relationships\n- \"Create a attach?\" -> POST /apps/{appId}/relationships/{id}/attach\n- \"Get relationship details?\" -> GET /apps/{appId}/relationships/{id}\n- \"Create a tag?\" -> POST /apps/{appId}/relationships/{id}/tag\n- \"Create a merge?\" -> POST /apps/{appId}/contacts/merge\n- \"Search invoices?\" -> GET /apps/{appId}/invoices\n- \"Create a invoice?\" -> POST /apps/{appId}/invoices\n- \"List all nextnumber?\" -> GET /apps/{appId}/invoices/nextnumber\n- \"List all download?\" -> GET /apps/{appId}/invoices/download\n- \"Search statistics?\" -> GET /apps/{appId}/invoices/statistics\n- \"Create a fresh?\" -> POST /apps/{appId}/invoices/fresh\n- \"Create a chorus-pro?\" -> POST /apps/{appId}/invoices/chorus-pro\n- \"Get invoice details?\" -> GET /apps/{appId}/invoices/{id}\n- \"Delete a invoice?\" -> DELETE /apps/{appId}/invoices/{id}\n- \"Create a duplicate?\" -> POST /apps/{appId}/invoices/{id}/duplicate\n- \"Create a avoid?\" -> POST /apps/{appId}/invoices/{id}/avoid\n- \"Create a finalize?\" -> POST /apps/{appId}/invoices/{id}/finalize\n- \"Create a updatestatus?\" -> POST /apps/{appId}/invoices/{id}/updatestatus\n- \"List all pdf?\" -> GET /apps/{appId}/invoices/{id}/pdf\n- \"List all preview.jpg?\" -> GET /apps/{appId}/invoices/{id}/preview.jpg\n- \"List all link?\" -> GET /apps/{appId}/invoice/{id}/link\n- \"Create a breakdown?\" -> POST /apps/{appId}/invoices/batch/breakdown\n- \"List all token-validation?\" -> GET /invoice/token-validation/\n- \"Get fec details?\" -> GET /invoice/download/fec/{token}\n- \"Get pdf details?\" -> GET /invoice/download/pdf/{token}\n- \"Search quotes?\" -> GET /apps/{appId}/quotes\n- \"Create a quote?\" -> POST /apps/{appId}/quotes\n- \"Get quote details?\" -> GET /apps/{appId}/quotes/{id}\n- \"Delete a quote?\" -> DELETE /apps/{appId}/quotes/{id}\n- \"Create a situation_invoice?\" -> POST /apps/{appId}/quotes/{id}/situation_invoice\n- \"Create a downpayment?\" -> POST /apps/{appId}/quotes/{id}/downpayment\n- \"Search salesdocumentmodels?\" -> GET /apps/{appId}/salesdocumentmodels\n- \"Create a salesdocumentmodel?\" -> POST /apps/{appId}/salesdocumentmodels\n- \"Get salesdocumentmodel details?\" -> GET /apps/{appId}/salesdocumentmodels/{id}\n- \"Delete a salesdocumentmodel?\" -> DELETE /apps/{appId}/salesdocumentmodels/{id}\n- \"Search recurringinvoices?\" -> GET /apps/{appId}/recurringinvoices\n- \"Create a recurringinvoice?\" -> POST /apps/{appId}/recurringinvoices\n- \"List all periods?\" -> GET /apps/{appId}/recurringinvoices/periods\n- \"Get recurringinvoice details?\" -> GET /apps/{appId}/recurringinvoices/{id}\n- \"Delete a recurringinvoice?\" -> DELETE /apps/{appId}/recurringinvoices/{id}\n- \"Search bankdetails?\" -> GET /apps/{appId}/bankdetails\n- \"Create a bankdetail?\" -> POST /apps/{appId}/bankdetails\n- \"Get bankdetail details?\" -> GET /apps/{appId}/bankdetails/{id}\n- \"Delete a bankdetail?\" -> DELETE /apps/{appId}/bankdetails/{id}\n- \"Create a document?\" -> POST /apps/{appId}/email/document\n- \"Get document details?\" -> GET /apps/{appId}/email/document/{id}\n- \"Search purchases?\" -> GET /apps/{appId}/purchases\n- \"Create a purchase?\" -> POST /apps/{appId}/purchases\n- \"Get purchase details?\" -> GET /apps/{appId}/purchases/{id}\n- \"Delete a purchase?\" -> DELETE /apps/{appId}/purchases/{id}\n- \"List all original?\" -> GET /apps/{appId}/purchases/{id}/original\n- \"List all thumbnail.jpg?\" -> GET /apps/{appId}/purchases/{id}/thumbnail.jpg\n- \"Create a create?\" -> POST /apps/{appId}/purchases/mileage_allowances/create\n- \"List all resume?\" -> GET /apps/{appId}/purchases/mileage_allowances/resume\n- \"Create a demo?\" -> POST /apps/{appId}/purchases/create/demo\n- \"Search employees?\" -> GET /apps/{appId}/accounts/employees\n- \"Create a employee?\" -> POST /apps/{appId}/accounts/employees\n- \"Get employee details?\" -> GET /apps/{appId}/accounts/employees/{id}\n- \"Delete a employee?\" -> DELETE /apps/{appId}/accounts/employees/{id}\n- \"Search attachments?\" -> GET /apps/{appId}/attachments\n- \"Create a attachment?\" -> POST /apps/{appId}/attachments\n- \"List all sap-download?\" -> GET /apps/{appId}/attachments/sap-download\n- \"Get attachment details?\" -> GET /apps/{appId}/attachments/{id}\n- \"Delete a attachment?\" -> DELETE /apps/{appId}/attachments/{id}\n- \"Search products?\" -> GET /apps/{appId}/products\n- \"Create a product?\" -> POST /apps/{appId}/products\n- \"Get product details?\" -> GET /apps/{appId}/products/{id}\n- \"Delete a product?\" -> DELETE /apps/{appId}/products/{id}\n- \"Search productstocks?\" -> GET /apps/{appId}/productstocks\n- \"Create a productstock?\" -> POST /apps/{appId}/productstocks\n- \"Get productstock details?\" -> GET /apps/{appId}/productstocks/{id}\n- \"Delete a productstock?\" -> DELETE /apps/{appId}/productstocks/{id}\n- \"Create a destruct?\" -> POST /apps/{appId}/productstocks/{id}/destruct\n- \"Create a exit?\" -> POST /apps/{appId}/productstocks/{id}/rental/exit\n- \"Create a back?\" -> POST /apps/{appId}/productstocks/{id}/rental/back\n- \"Search productcategory?\" -> GET /apps/{appId}/productcategory\n- \"Create a productcategory?\" -> POST /apps/{appId}/productcategory\n- \"Get productcategory details?\" -> GET /apps/{appId}/productcategory/{id}\n- \"Delete a productcategory?\" -> DELETE /apps/{appId}/productcategory/{id}\n- \"Create a reconcile?\" -> POST /apps/{appId}/reconcile\n- \"Search payments?\" -> GET /apps/{appId}/payments\n- \"List all recipe_book?\" -> GET /apps/{appId}/payments/recipe_book\n- \"Get payment details?\" -> GET /apps/{appId}/payments/{id}\n- \"Delete a payment?\" -> DELETE /apps/{appId}/payments/{id}\n- \"List all directdebit?\" -> GET /apps/{appId}/sepamandates/directdebit\n- \"Create a directdebit?\" -> POST /apps/{appId}/sepamandates/directdebit\n- \"List all credittransfer?\" -> GET /apps/{appId}/sepamandates/credittransfer\n- \"Create a credittransfer?\" -> POST /apps/{appId}/sepamandates/credittransfer\n- \"Search sepamandates?\" -> GET /apps/{appId}/sepamandates/\n- \"Create a sepamandate?\" -> POST /apps/{appId}/sepamandates/\n- \"Get sepamandate details?\" -> GET /apps/{appId}/sepamandates/{id}\n- \"Delete a sepamandate?\" -> DELETE /apps/{appId}/sepamandates/{id}\n- \"List all preview?\" -> GET /apps/{appId}/urssaf/preview\n- \"Create a auth?\" -> POST /apps/{appId}/urssaf/auth\n- \"Create a register_customer?\" -> POST /apps/{appId}/urssaf/register_customer\n- \"List all payment?\" -> GET /apps/{appId}/urssaf/payment\n- \"Create a payment?\" -> POST /apps/{appId}/urssaf/payment\n- \"List all banks?\" -> GET /apps/{appId}/banks/\n- \"List all connect?\" -> GET /apps/{appId}/banks/connect\n- \"Create a synchronize?\" -> POST /apps/{appId}/banks/synchronize\n- \"List all sync?\" -> GET /apps/{appId}/banks/{id}/funnel/sync\n- \"List all edit?\" -> GET /apps/{appId}/banks/{id}/funnel/edit\n- \"List all validate?\" -> GET /apps/{appId}/banks/{id}/funnel/validate\n- \"Create a select_account?\" -> POST /apps/{appId}/banks/{id}/select_accounts\n- \"Search cashflowsources?\" -> GET /apps/{appId}/cashflowsources/\n- \"Create a cashflowsource?\" -> POST /apps/{appId}/cashflowsources/\n- \"Get cashflowsource details?\" -> GET /apps/{appId}/cashflowsources/{id}\n- \"Delete a cashflowsource?\" -> DELETE /apps/{appId}/cashflowsources/{id}\n- \"Search autoreconcile?\" -> GET /apps/{appId}/logs/autoreconcile/\n- \"Create a autoreconcile?\" -> POST /apps/{appId}/logs/autoreconcile/\n- \"Search transactions?\" -> GET /apps/{appId}/transactions/\n- \"Create a transaction?\" -> POST /apps/{appId}/transactions/\n- \"Get transaction details?\" -> GET /apps/{appId}/transactions/{id}\n- \"Delete a transaction?\" -> DELETE /apps/{appId}/transactions/{id}\n- \"Search rules?\" -> GET /apps/{appId}/rules/\n- \"Create a rule?\" -> POST /apps/{appId}/rules/\n- \"Create a execute_on?\" -> POST /apps/{appId}/rules/execute_on\n- \"Get rule details?\" -> GET /apps/{appId}/rules/{id}\n- \"Delete a rule?\" -> DELETE /apps/{appId}/rules/{id}\n- \"Search accounts?\" -> GET /apps/{appId}/accounts/\n- \"Create a account?\" -> POST /apps/{appId}/accounts/\n- \"Get account details?\" -> GET /apps/{appId}/accounts/{id}\n- \"Delete a account?\" -> DELETE /apps/{appId}/accounts/{id}\n- \"Create a replace?\" -> POST /apps/{appId}/accounts/{delete_account_id}/replace\n- \"Search elements?\" -> GET /apps/{appId}/forecast/elements\n- \"Create a element?\" -> POST /apps/{appId}/forecast/elements\n- \"Delete a element?\" -> DELETE /apps/{appId}/forecast/elements/{id}\n- \"List all turnover?\" -> GET /apps/{appId}/forecast/turnover\n- \"List all expenditures?\" -> GET /apps/{appId}/forecast/expenditures\n- \"List all payments?\" -> GET /apps/{appId}/forecast/payments\n- \"List all transactions?\" -> GET /apps/{appId}/forecast/transactions\n- \"List all budgets?\" -> GET /apps/{appId}/forecast/pourcentages/budgets\n- \"List all unpaid?\" -> GET /apps/{appId}/forecast/invoices/unpaid\n- \"Search accountcategories?\" -> GET /apps/{appId}/accountcategories/\n- \"Create a accountcategory?\" -> POST /apps/{appId}/accountcategories/\n- \"Get accountcategory details?\" -> GET /apps/{appId}/accountcategories/{id}\n- \"Delete a accountcategory?\" -> DELETE /apps/{appId}/accountcategories/{id}\n- \"Search exports?\" -> GET /apps/{appId}/exports\n- \"Create a export?\" -> POST /apps/{appId}/exports\n- \"List all months?\" -> GET /apps/{appId}/exports/months\n- \"List all acd_compta?\" -> GET /apps/{appId}/exports/acd_compta\n- \"Create a acd_compta?\" -> POST /apps/{appId}/exports/acd_compta\n- \"Create a filenumber?\" -> POST /apps/{appId}/exports/acd_compta/filenumber\n- \"List all agiris?\" -> GET /apps/{appId}/exports/agiris\n- \"Create a agiris?\" -> POST /apps/{appId}/exports/agiris\n- \"Get download details?\" -> GET /apps/{appId}/exports/download/{export_id}\n- \"Get export details?\" -> GET /apps/{appId}/exports/{id}\n- \"Delete a export?\" -> DELETE /apps/{appId}/exports/{id}\n- \"Search accounting_entries?\" -> GET /apps/{appId}/accounting_entries/\n- \"List all vat?\" -> GET /apps/{appId}/statistics/vat\n- \"List all sales?\" -> GET /apps/{appId}/statistics/timetable/sales\n- \"List all purchases?\" -> GET /apps/{appId}/statistics/timetable/purchases\n- \"Get chart details?\" -> GET /apps/{appId}/statistics/charts/{type}\n- \"Create a vat?\" -> POST /apps/{appId}/declare/vat\n- \"List all tags?\" -> GET /apps/{appId}/tags\n- \"Create a accepted?\" -> POST /apps/{appId}/supplier/accepted\n- \"Create a signature?\" -> POST /apps/{appId}/signature\n- \"List all webhook?\" -> GET /apps/{appId}/services/stripe/webhook\n- \"Create a webhook?\" -> POST /apps/{appId}/services/stripe/webhook\n- \"Create a collector?\" -> POST /services/collector\n- \"Get vy details?\" -> GET /services/vies/{siren}\n- \"Create a activate?\" -> POST /apps/{appId}/sponsorship/activate\n- \"List all referrals?\" -> GET /apps/{appId}/sponsorship/list/referrals\n- \"List all referrer?\" -> GET /apps/{appId}/sponsorship/referrer\n- \"List all url?\" -> GET /apps/{appId}/sponsorship/referrer/url\n- \"Create a referrer?\" -> POST /apps/{appId}/sponsorship/accept/referrer\n- \"List all credit?\" -> GET /apps/{appId}/sponsorship/credit\n- \"Create a launch?\" -> POST /apps/{appId}/stripe/import/launch\n- \"List all status?\" -> GET /apps/{appId}/stripe/import/status\n- \"List all state?\" -> GET /apps/{appId}/stripe/import/state\n- \"List all estimate?\" -> GET /apps/{appId}/openai/billing/estimate\n- \"List all reformulate?\" -> GET /apps/{appId}/openai/billing/reformulate\n- \"List all corrector?\" -> GET /apps/{appId}/openai/billing/corrector\n- \"Create a suggest?\" -> POST /apps/{appId}/openai/accounting/suggest\n- \"List all delete?\" -> GET /apps/{appId}/paypal/connect/delete\n- \"Search events?\" -> GET /apps/{appId}/webhooks/events\n- \"Get partner details?\" -> GET /partners/{partnerId}\n- \"Search cases?\" -> GET /partners/{partnerId}/cases\n- \"List all apikey?\" -> GET /partners/{partnerId}/apps/{app_id}/apikey\n- \"Create a update?\" -> POST /partners/{partnerId}/subscriptions/{app_id}/update\n- \"Create a case?\" -> POST /partners/{partnerId}/dissociate/cases\n- \"Create a collaborator?\" -> POST /partners/{partnerId}/add/collaborator\n- \"Search collaborators?\" -> GET /partners/{partnerId}/collaborators\n- \"Delete a collaborator?\" -> DELETE /partners/{partnerId}/collaborators/{id}\n- \"Create a policy?\" -> POST /partners/{partnerId}/add/policy\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Sinao API\n@base https://api.sinao.app/v1\n@version 1.1.0\n@auth Bearer bearer | Bearer basic | Bearer basic\n@endpoints 383\n@hint download_for_search\n@toc login(2), sendpassword(1), changepassword(1), logout(1), refresh(1), me(2), register(1), apps(352), invoice(3), ping(1), services(2), partners(16)\n\n@group login\n@endpoint POST /login\n@desc Login\n@required {email: str(email) # Email for login, password: str # Password for login in clear text}\n@optional {code: str # 2FA code}\n@returns(200) Successful Operation\n@errors {401: Invalid password, 404: Email address not found, 422: No password defined}\n\n@endgroup\n\n@group sendpassword\n@endpoint POST /sendpassword\n@desc Password recover by email\n@required {email: str(email) # Email for login}\n@optional {hostname_alias: str # Hostname alias for the email}\n@returns(200) Successful Operation\n@errors {422: Email does not exists}\n\n@endgroup\n\n@group changepassword\n@endpoint POST /changepassword\n@desc Change password\n@required {forgotten_password_token: str, password: str # Password for account}\n@returns(200) Successful Operation\n@errors {422: Unprocessable Entity}\n\n@endgroup\n\n@group logout\n@endpoint POST /logout\n@desc Logout\n@returns(200) Success\n\n@endgroup\n\n@group login\n@endpoint POST /login/send/2fa\n@desc Send 2FA code\n@required {email: str(email) # Email for login, password: str # Password for login in clear text}\n@returns(200) Success\n\n@endgroup\n\n@group refresh\n@endpoint GET /refresh\n@desc Refresh a token\n@returns(200) {access_token: str, token_type: str, expires_in: int} # Success\n\n@endgroup\n\n@group me\n@endpoint GET /me\n@desc Get current user\n@returns(200) Success\n\n@endpoint POST /me\n@desc Update current user\n@optional {civility: str, firstname: str, lastname: str, password: str, email: str(email), image: str(binary), metadata: [str]}\n@returns(200) Success\n\n@endgroup\n\n@group register\n@endpoint POST /register\n@desc Create an User\n@required {email: str(email) # Email is the user's login, it must not have been registered, password: str, cgu: bool # The user must have validated the T&Cs}\n@optional {firstname: str, lastname: str, metadata: [str]}\n@returns(200) Successful Operation\n@errors {422: Unprocessable Entity}\n\n@endgroup\n\n@group apps\n@endpoint POST /apps\n@desc Create an app\n@required {organization_name: str # Organization name. Minimum 3 characters with 1 alpha}\n@optional {organization_size: str(solo/small/medium) # Organization size}\n@returns(200) {id: int, organization: any, admin: any, url: str(uri), hostname_alias: str(hostname)?, last_access_at: str(date-time), last_user: any, organization_size: str, config: [any], subscription: map{id: int, status: str, access_level: str, period_starting_date: str(date-time), period_ending_date: str(date-time), period_remaining_days: int, plan_name: str, plan_color: str, payment_card: str, payment_failed_count: int, stripe_customer_id: str, stripe_subscription_id: str, stripe_plan_id: str}, policies: [map]} # Success\n@errors {422: The organization name format is invalid : minimum 3 characters with 1 alpha}\n\n@endpoint GET /apps\n@desc List apps\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) search results\n@errors {400: bad input parameter}\n\n@endpoint GET /apps/{appId}\n@desc Get an app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, organization: any, admin: any, url: str(uri), hostname_alias: str(hostname)?, last_access_at: str(date-time), last_user: any, organization_size: str, config: [any], subscription: map{id: int, status: str, access_level: str, period_starting_date: str(date-time), period_ending_date: str(date-time), period_remaining_days: int, plan_name: str, plan_color: str, payment_card: str, payment_failed_count: int, stripe_customer_id: str, stripe_subscription_id: str, stripe_plan_id: str}, policies: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/ping\n@desc Ping app web hostname\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found, 405: Server error}\n\n@endpoint POST /apps/{appId}/reset\n@desc Reset all data\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found, 405: Server error}\n\n@endpoint GET /apps/{appId}/apikeys\n@desc Get all api keys\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: App not found}\n\n@endpoint POST /apps/{appId}/apikeys\n@desc Create new API key\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., name: str # Key name}\n@optional {api_partner_id: int # Partner ID for official connexion}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {404: App or key not found}\n\n@endpoint DELETE /apps/{appId}/apikeys/{id}\n@desc Remove an api key\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Api key id}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/apipartners\n@desc Get all api partners\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: App not found}\n\n@endpoint GET /apps/{appId}/settings\n@desc Get app config\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {key: str}\n@returns(200) Success\n@errors {404: App or key not found}\n\n@endpoint POST /apps/{appId}/settings\n@desc Update app config\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {settings: map, key: str, value: str # Value can be a primitive or a file}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {404: App or key not found}\n\n@endpoint GET /apps/{appId}/jobs/{job}\n@desc Get app job\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {job: str}\n@returns(200) Success\n@errors {404: App or key not found}\n\n@endpoint GET /apps/{appId}/templates\n@desc Get templates\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n\n@endpoint POST /apps/{appId}/templates\n@desc Create a template\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n\n@endpoint GET /apps/{appId}/document-langs\n@desc Get document (invoice or quote) available printable langs\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {key: str}\n@returns(200) Success\n@errors {404: App or key not found}\n\n@endpoint POST /apps/{appId}/templates/batch\n@desc Create multiple templates\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of templates. With ID for update, without for insert}\n@returns(200) Success\n\n@endpoint GET /apps/{appId}/templates/default\n@desc Get default template\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n\n@endpoint GET /apps/{appId}/templates/{id}\n@desc Get a template\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@returns(200) Success\n\n@endpoint POST /apps/{appId}/templates/{id}\n@desc Update a template\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n\n@endpoint GET /apps/{appId}/subscription/plan/extra\n@desc Get current plan\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., plan_nickname: str # users, invoices, purchases, ocrentries}\n@returns(200) {plans: [str], extras: [str]} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/customer\n@desc Stripe Customer object\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/customer\n@desc Stripe Customer object\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str # Name of the customer, email: str # Email of the customer, phone: str # Phone number of the customer, address[line1]: str # Address line 1 of the customer, address[line2]: str # Address line 2 of the customer, address[city]: str # City of the customer's address, address[state]: str # State of the customer's address, address[postal_code]: str # Postal code of the customer's address, address[country]: str # Country of the customer's address}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/plan\n@desc Get current plan\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {plans: [str], extras: [str]} # Success\n@errors {404: Not found}\n\n@endpoint DELETE /apps/{appId}/subscription/plan\n@desc End current plan\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/plans\n@desc Get plans\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {plans: [str], extras: [str]} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/invoices\n@desc See all invoices\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/payment_methods\n@desc See all payment methods\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/extra/count\n@desc Count extra usage\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/extra/{stripe_plan}\n@desc Enable plan\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_plan: str # Stripe plan id to update invoice}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/plans/{stripe_plan}\n@desc Simulate a plan\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_plan: str # Stripe plan id to simulate invoice}\n@optional {stripe_coupon: str # Stripe coupon id to simulate invoice}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/plans/{stripe_plan}\n@desc Change plan\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_plan: str # Stripe plan id to update invoice}\n@optional {stripe_source: str # Stripe source to pay, stripe_coupon: str # Stripe coupon id to apply}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/plans/{stripe_plan}/checkout\n@desc Get payment link to Stripe Checkout\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_plan: str # Stripe plan id to simulate invoice}\n@optional {stripe_coupon: str # Stripe coupon id to simulate invoice}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/checkout_session\n@desc Get Stripe Checkout Session id\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {session_id: str # Stripe Checkout Session id}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/checkout_add_source\n@desc Get payment link to Stripe Checkout\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {redirect: str(app/account)=app # Chose the redirect URL}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/source\n@desc Add creditcard or sepadebit\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_source: str # Stripe source to pay}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint DELETE /apps/{appId}/subscription/source\n@desc Remove creditcard or sepadebit\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_source: str # Stripe source to pay}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/source/default\n@desc Change default source\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., stripe_source: str # Stripe source to set as default source}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/pay_all\n@desc Pay all due invoices\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/cancel\n@desc Cancel the subscription now\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/extend_trial\n@desc Extend trial period\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/coupon\n@desc Add coupon\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., code: str}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/subscription/coupon\n@desc See coupon\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., code: str}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/subscription/anchordate\n@desc Update anchor date\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/access/profiles\n@desc Get profiles\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n\n@endpoint POST /apps/{appId}/access/invite\n@desc Invite an user\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., email: str # Email for invitation. Will be used to account creation or account matching with an existing user, policy_profile_id: int # Profile for policies set}\n@optional {firstname: str # First name of user before account creation / account link, lastname: str # Last name of user before account creation / account link, civility: str # Last name of user before account creation / account link, password: str # Password for new user, additionalsAppId: [any] # If user is invited to more than one application, add here other apps id}\n@returns(200) {id: int, app: map{id: int, organization: any, admin: any, url: str(uri), hostname_alias: str(hostname)?, last_access_at: str(date-time), last_user: any, organization_size: str, config: [any], subscription: map{id: int, status: str, access_level: str, period_starting_date: str(date-time), period_ending_date: str(date-time), period_remaining_days: int, plan_name: str, plan_color: str, payment_card: str, payment_failed_count: int, stripe_customer_id: str, stripe_subscription_id: str, stripe_plan_id: str}, policies: [map]}, recipient_user: any, sender_user: any, profile: map{name: str, description: str, rights: [str], restricted: bool, homepage: str(uri), visible: int}, used_at: str(date-time), validity: str(date-time)} # Success\n@errors {403: This user already exists, you can not set a password, 404: App was not found}\n\n@endpoint GET /apps/{appId}/access/invite\n@desc List invitations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: App was not found}\n\n@endpoint DELETE /apps/{appId}/access/invite/{id}\n@desc Delete an invitation\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@returns(200) {code: int, type: str, message: str} # successful operation\n@errors {404: Invitation was not found}\n\n@endpoint GET /apps/{appId}/pennylane/refresh-token\n@desc endpoint for Pennylane fesh bearer token\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) successful operation\n@errors {404: App or key not found}\n\n@endpoint POST /apps/access/invite/{accessToken}/register\n@desc Create an User by invitation\n@required {accessToken: str, password: str # Password for account, cgu: bool # User has valided CGU ?}\n@optional {firstname: str # First name of user before account creation / account link, lastname: str # Last name of user before account creation / account link}\n@returns(200) Success\n@errors {400: Bad parameters, 401: Token expired, 404: Token not found}\n\n@endpoint GET /apps/access/invite/{accessToken}\n@desc Get invitation informations\n@required {accessToken: str}\n@returns(200) {id: int, app: map{id: int, organization: any, admin: any, url: str(uri), hostname_alias: str(hostname)?, last_access_at: str(date-time), last_user: any, organization_size: str, config: [any], subscription: map{id: int, status: str, access_level: str, period_starting_date: str(date-time), period_ending_date: str(date-time), period_remaining_days: int, plan_name: str, plan_color: str, payment_card: str, payment_failed_count: int, stripe_customer_id: str, stripe_subscription_id: str, stripe_plan_id: str}, policies: [map]}, recipient_user: any, sender_user: any, profile: map{name: str, description: str, rights: [str], restricted: bool, homepage: str(uri), visible: int}, used_at: str(date-time), validity: str(date-time)} # Success\n@errors {404: Invitation was not found}\n\n@endpoint DELETE /apps/access/invite/{accessToken}\n@desc Delete an invitation from token\n@required {accessToken: str}\n@returns(200) {code: int, type: str, message: str} # successful operation\n@errors {401: Token expired, 404: Token was not found}\n\n@endpoint POST /apps/access/accounting/policies/accounting/batch\n@desc Create/update policies for a user\n@required {userId: int}\n@optional {appId: [int]}\n@returns(200) Success\n@errors {400: Bad parameters}\n\n@endpoint GET /apps/{appId}/access\n@desc Get policies for an app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: App was not found}\n\n@endpoint GET /apps/{appId}/access/{userId}\n@desc Get police for an user\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., userId: str}\n@returns(200) {name: str, description: str, rights: [str], restricted: bool, homepage: str(uri), visible: int} # Success\n@errors {404: App was not found}\n\n@endpoint POST /apps/{appId}/access/{userId}\n@desc Update police for an user\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., userId: str, policy_profile_id: int}\n@returns(200) {name: str, description: str, rights: [str], restricted: bool, homepage: str(uri), visible: int} # Success\n@errors {404: App was not found}\n\n@endpoint DELETE /apps/{appId}/access/{userId}\n@desc Delete police for an user\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., userId: str}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {404: App was not found}\n\n@endpoint GET /apps/{appId}/organization\n@desc Get organization profile for current app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/organization\n@desc Update organization profile for current app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str # Company name visible on the app, billing_name: str # Company name for billing, logo: any, legal_form: str, country_iso2: str(ISO 3166-1 alpha-2), founding_date: str(date), founding_location: str, dissolution_date: str(date), closeaccounting_period: str, national_id: str # Unique National Id, format by country. **In France : [0-9]{9} with last number as security key.**, trade_directory_registration: str # France Directory Registration : Unique national ID SIRET [0-9]{9} + 'RM' + CMA identification number [0-9a-z]{2,}, vat_id: str # European VAT Id. **In France : FR [0-9]{2} [0-9]{9}**, code_naf: str # French NAF Code, number_of_employees: str, industry: str, slogan: str, rcs: str # French. Registre du Commerce et des Sociétés, greffe: str # French. Tribunal de commerce, sap_number_registration: str # NOVA agreement/registration number, sap_activities: str # Organisation activities displayed in annual taxes customer attestation, sap_date_registration: str # NOVA agreement/registration date, capital: int, establishments: [map] # Update of a contact card containing the billing address of the individual and his contact information, establishments: map # Updates main establishment information (first establishment)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/organizations\n@desc List organizations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/organizations\n@desc Create an organization\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., name: str # Company name visible on the app}\n@optional {billing_name: str # Company name for billing, logo: any, legal_form: str, country_iso2: str(ISO 3166-1 alpha-2), founding_date: str(date), founding_location: str, dissolution_date: str(date), vat_system: str, closeaccounting_period: str, national_id: str # Unique National Id, format by country. **In France : [0-9]{9} with last number as security key.**, vat_id: str # European VAT Id. **In France : FR [0-9]{2} [0-9]{9}**, code_naf: str # French NAF Code, number_of_employees: str, slogan: str, rcs: str # French. Registre du Commerce et des Sociétés, greffe: str # French. Tribunal de commerce, capital: int, metadata: [str], relationship: map # Updates the contact's relationship information, establishments: [map] # Update of a contact card containing the billing address of the individual and his contact information, establishments: map # Updates main establishment information (first establishment)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/organizations/batch\n@desc Create multiple organizations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of invoices. With ID for update, without for insert}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/organizations/batch\n@desc Remove multiple organizations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of organizations ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/organizations/chorus-search\n@desc Search organizations in Chorus Pro\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., national_id: str # Public entity french national Id [0-9]{9} with last number as security key.}\n@optional {token: str # The first request has no token, but to avoid requesting a new bearer token for each request, we can send the token returned by the first request in the second request.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/organizations/{id}\n@desc Get an organization\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of organization}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/organizations/{id}\n@desc Update an organization\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of organization}\n@optional {name: str # Company name visible on the app, billing_name: str # Company name for billing, logo: any, legal_form: str, country_iso2: str(ISO 3166-1 alpha-2), founding_date: str(date), founding_location: str, dissolution_date: str(date), vat_system: str, closeaccounting_period: str, national_id: str # Unique National Id, format by country. **In France : [0-9]{9} with last number as security key.**, vat_id: str # European VAT Id. **In France : FR [0-9]{2} [0-9]{9}**, code_naf: str # French NAF Code, number_of_employees: str, slogan: str, rcs: str # French. Registre du Commerce et des Sociétés, greffe: str # French. Tribunal de commerce, capital: int, metadata: [str], relationship: map # Updates the contact's relationship information, establishments: [map] # Update of a contact card containing the billing address of the individual and his contact information, establishments: map # Updates main establishment information (first establishment)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/organizations/{id}\n@desc Remove an organization\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of organization}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/organizations/{id}/restore\n@desc Restore an organization\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of organization}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/organizations/{id}/sepa/mandate\n@desc Get sepa_mandate of a organizations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of a organization}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/organizations/delete/all\n@desc Remove all organizations\n@returns(200) {code: int, type: str, message: str} # Success\n\n@endpoint GET /apps/{appId}/persons\n@desc List persons\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/persons\n@desc Create a person\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., lastname: str}\n@optional {civility: str # Civility is the lastname prefix, firstname: str, picture: any, metadata: [str], relationship: map # Updates the contact's relationship information, establishments: [map] # Update of a contact card containing the billing address of the individual and his contact information, establishments: map # Updates main establishment information (first establishment)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/persons/batch\n@desc Create multiple persons\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of persons. With ID for update, without for insert}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/persons/batch\n@desc Delete many persons\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of persons ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/persons/{id}\n@desc Get a person\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of a person}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/persons/{id}\n@desc Update a person\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of a person}\n@optional {civility: str # Civility is the lastname prefix, lastname: str, firstname: str, picture: any, metadata: [str], relationship: map # Updates the contact's relationship information, establishments: [map] # Update of a contact card containing the billing address of the individual and his contact information, establishments: map # Updates main establishment information (first establishment)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/persons/{id}\n@desc Remove a person\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of person}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/persons/{id}/restore\n@desc Restore a person\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of a person}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/persons/{id}/sepa/mandate\n@desc Get sepa_mandate of a person\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of a person}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/persons/delete/all\n@desc Remove all persons\n@returns(200) {code: int, type: str, message: str} # Success\n\n@endpoint GET /apps/{appId}/establishments/{id}\n@desc Get an establishment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of an establishment}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int?, name: str, nic: str?, place: map{id: int, latitude: int, longitude: int, street_number: str, route: str, route2: str, locality: str, sublocality: str, administrative_area_level3: str, administrative_area_level2: str, administrative_area_level1: str, country: str, countryiso2: str, postal_code: str, formatted_address: str}, emails: [str(email)], phones: [str(phone)]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/establishments/{id}\n@desc Update an establishment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of an establishment}\n@optional {name: str, phones: [str], emails: [str], nic: str # Establishment number (french NIC), place: map}\n@returns(200) {id: int?, name: str, nic: str?, place: map{id: int, latitude: int, longitude: int, street_number: str, route: str, route2: str, locality: str, sublocality: str, administrative_area_level3: str, administrative_area_level2: str, administrative_area_level1: str, country: str, countryiso2: str, postal_code: str, formatted_address: str}, emails: [str(email)], phones: [str(phone)]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/establishments/{id}\n@desc Remove an establishment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of establishment}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/establishments/{establishment_id}/contact/{contact_id}\n@desc Update an establishment contact\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., establishment_id: int # ID of the establishment, contact_id: int # ID of the contact}\n@optional {name: str # Civility, name and firstname of the contact, job: str # Job / function / department of the contact, phone: str, email: str}\n@returns(200) {id: int, name: str, job: str, email: str, phone: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/establishments/{establishment_id}/contact/{contact_id}\n@desc Remove an establishment contact\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of establishment, establishment_id: int # ID of the establishment, contact_id: int # ID of the contact}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/relationships\n@desc List relationships\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/relationships/{id}/attach\n@desc Attach a file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/relationships/{id}/attach\n@desc Detach a file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file_id: int # File to detach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/relationships/{id}\n@desc Get a relationship\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Relationship}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, is_customer: bool, is_supplier: bool, is_prospect: bool, importance_level: int?, rating: int?, is_notifying: bool, note: str?, accounting_infos: map{balance_initial_amount: int, reference: str?, customer_id: str, supplier_id: str}, metadata: [any]?} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/relationships/{id}\n@desc Update a relationship\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Relationship}\n@optional {is_customer: bool, is_supplier: bool, is_prospect: bool, importance_level: int, rating: int, balance_initial_amount: int, is_notifying: bool, note: str, reference: str # Accounting number if it's specific. No special chars accepted., tags: str, discount: str, details: str, metadata: [str]}\n@returns(200) {id: int, is_customer: bool, is_supplier: bool, is_prospect: bool, importance_level: int?, rating: int?, is_notifying: bool, note: str?, accounting_infos: map{balance_initial_amount: int, reference: str?, customer_id: str, supplier_id: str}, metadata: [any]?} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/relationships/{id}/tag\n@desc Add a tag on a relationship\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Relationship id}\n@optional {tag: str # Tag to add}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/relationships/{id}/tag\n@desc Delete a tag on a relationship\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Relationship id}\n@optional {tag: str # Tag to delete}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/contacts/merge\n@desc Merge many contacts\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., contacts: [any]}\n@optional {target_contact: map}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoices\n@desc List invoices\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/invoices\n@desc Create an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {contact_infos: map, third_account: map, title: str, content: [map], columns: map # List columns to display, reference: str # Free variable not display in document, discount: map, currency: str, legal_notice: str # Legal mentions, bank_details_id: int, vat_exemption: map, tags: [any], metadata: [str], downpayments: [int], downpayment_cash: int, avoid_of: int, delivered_at: str(date-time), payment_period: int=30 # Days count before considere this invoice as late, expected_payment_deadline_at: str(date), payment_methods: str=virement bancaire, chèque # Accepted methods of payment for this invoice. Methods comma separated, number_from_other_software: str # Invoices imported from another software are not counted in the numbering and are not locked, is_auto_finalize: bool # Automatically finalize the invoice when written_at is set, is_auto_send_email: bool # Automatically send email when invoice is unpaid}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/batch\n@desc Create or update many invoices\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of invoices. With ID for update, without for insert}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/invoices/batch\n@desc Delete many invoices\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of invoices ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoices/nextnumber\n@desc Get the next invoice number for preview\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {written_at: str(date-time) # Write date}\n@returns(200) Success\n@errors {400: Bad request}\n\n@endpoint GET /apps/{appId}/invoices/download\n@desc Download a list of invoices in pdf into a .zip file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of invoices id}\n@optional {template: str(delivery/command) # Template name to generate document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoices/statistics\n@desc Obtain statistics about invoices\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/fresh\n@desc Regenerate pdf and recalcul amounts of invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of invoices id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/chorus-pro\n@desc Send selected invoices to Chorus-Pro\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of invoices id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoices/{id}\n@desc Get an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of invoice}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}\n@desc Update an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of invoice}\n@optional {contact_infos: map, third_account: map, title: str, content: [map], columns: map # List columns to display, reference: str # Free variable not display in document, discount: map, currency: str, legal_notice: str # Legal mentions, bank_details_id: int, vat_exemption: map, tags: [any], metadata: [str], downpayments: [int], downpayment_cash: int, avoid_of: int, delivered_at: str(date-time), payment_period: int=30 # Days count before considere this invoice as late, expected_payment_deadline_at: str(date), payment_methods: str=virement bancaire, chèque # Accepted methods of payment for this invoice. Methods comma separated, author_user_id: int # Author id of the invoice, details: str, is_auto_finalize: bool # Automatically finalize the invoice when written_at is set, is_auto_send_email: bool # Automatically send email when invoice is unpaid}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/invoices/{id}\n@desc Remove an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of invoice}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}/duplicate\n@desc Duplicate an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to duplicate}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}/avoid\n@desc Create a creditnote on an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to create a credit note}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}/finalize\n@desc Finalize an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to finalize}\n@optional {force_date: bool # Automatically updates the date if earlier than the last invoice}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}/updatestatus\n@desc Update the status of an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id}\n@optional {status: str(draft/final/paid) # Status to update}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}/attach\n@desc Attach a file at an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/invoices/{id}/attach\n@desc Detach a file at an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id}\n@optional {file_id: int # File to detach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/{id}/tag\n@desc Add a tag on an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id}\n@optional {tag: str # Tag to add}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/invoices/{id}/tag\n@desc Delete a tag on an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id}\n@optional {tag: str # Tag to delete}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoices/{id}/pdf\n@desc Download the invoice as pdf\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to download}\n@optional {template: str(delivery/command) # Template name to generate document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoices/{id}/preview.jpg\n@desc Download invoice as jpeg\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to download}\n@optional {template: str # Template name to generate document, base64: bool # Get the image in base64}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/invoice/{id}/link\n@desc Generate an invoice link\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to link}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/invoices/batch/breakdown\n@desc Update the breakdown of an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {invoices: [any] # Key of array is the invoice id, value is the breakdown array}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endgroup\n\n@group invoice\n@endpoint GET /invoice/token-validation/\n@desc Validate an invoice token\n@required {token: str # Token to validate}\n@optional {format: str(jpg/pdf) # Format of the invoice}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /invoice/download/fec/{token}\n@desc Download .fec invoice\n@required {token: str # Token to validate}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /invoice/download/pdf/{token}\n@desc Download pdf invoice\n@required {token: str # Token to validate}\n@returns(200) Success\n@errors {404: Not found}\n\n@endgroup\n\n@group apps\n@endpoint DELETE /apps/{appId}/invoices/delete/all\n@desc Remove all purchases\n@returns(200) {code: int, type: str, message: str} # Success\n\n@endpoint GET /apps/{appId}/quotes\n@desc List quotes\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/quotes\n@desc Create a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {contact_infos: map, third_account: map, title: str, content: [map], columns: map # List columns to display, reference: str # Free variable not display in document, discount: map, currency: str, legal_notice: str # Legal mentions, bank_details_id: int, vat_exemption: map, tags: [any], metadata: [str], downpayment_request: map, commercialvalidity_deadline: str(date-time), number_from_other_software: str # Invoices imported from another software are not counted in the numbering and are not locked}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/batch\n@desc Create or update many quotes\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of quotes. With ID for update, without for insert}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/quotes/batch\n@desc Delete many quotes\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of quotes ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/invoice\n@desc Create or update many quotes\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of quotes id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/quotes/nextnumber\n@desc Get the next quote number for preview\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {written_at: str(date-time) # Write date}\n@returns(200) Success\n@errors {400: Bad request}\n\n@endpoint GET /apps/{appId}/quotes/download\n@desc Download a list of quotes in pdf into a .zip file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of quotes id}\n@optional {template: str(delivery/command) # Template name to generate document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/quotes/statistics\n@desc Obtain statistics about quotes\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/fresh\n@desc Regenerate pdf and recalcul amounts of quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of quotes id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/quotes/{id}\n@desc Get a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of quote}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}\n@desc Update a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of quote}\n@optional {contact_infos: map, third_account: map, title: str, content: [map], columns: map # List columns to display, reference: str # Free variable not display in document, discount: map, currency: str, legal_notice: str # Legal mentions, bank_details_id: int, vat_exemption: map, tags: [any], metadata: [str], downpayment_request: map, commercialvalidity_deadline: str(date-time), author_user_id: int # Author id of the invoice}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/quotes/{id}\n@desc Remove a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of quote}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/finalize\n@desc Finalize a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to finalize}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/duplicate\n@desc Duplicate a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to duplicate}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/invoice\n@desc Transform the quote in invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to transform}\n@optional {columns: map # List columns to display}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/situation_invoice\n@desc Transform the quote into a situation invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to transform, progress: int # Percentage of progress in cents (100 = 1%)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/downpayment\n@desc Transform the quote in a downpayment invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int, percent: int # Percentage of downpayment in cents (100 = 1%)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/updatestatus\n@desc Update the status of a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Invoice id to finalize}\n@optional {status: str(waiting/goodforagreement/refused/transformed/deleted) # Status to update}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/attach\n@desc Attach a file at a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id}\n@optional {file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/quotes/{id}/attach\n@desc Detach a file at a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id}\n@optional {file_id: int # File to detach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/quotes/{id}/tag\n@desc Add a tag on an quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id}\n@optional {tag: str # Tag to add}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/quotes/{id}/tag\n@desc Delete a tag on a quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id}\n@optional {tag: str # Tag to delete}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/quotes/{id}/pdf\n@desc Download the quote as pdf\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to download}\n@optional {template: str(delivery/command) # Template name to generate document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/quotes/{id}/preview.jpg\n@desc Download quote as jpeg\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to download}\n@optional {template: str(delivery/command) # Template name to generate document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/quotes/{id}/yousign/preview.jpg\n@desc Download quote as jpeg\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Quote id to download}\n@optional {template: str(delivery/command) # Template name to generate document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/quotes/delete/all\n@desc Remove all quotes\n@returns(200) {code: int, type: str, message: str} # Success\n\n@endpoint POST /apps/{appId}/quotes/batch/breakdown\n@desc Update the breakdown of an quote\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {quotes: [any] # Key of array is the quote id, value is the breakdown array}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/salesdocumentmodels\n@desc List sales documents models\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/salesdocumentmodels\n@desc Create a sales document model\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, title: str, content: [map], columns: map # List columns to display}\n@returns(200) {id: int, name: str, title: str, json: [map]} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/salesdocumentmodels/{id}\n@desc Get a sales document model\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of SalesDocumentModel}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, name: str, title: str, json: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/salesdocumentmodels/{id}\n@desc Update a sales document model\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of SalesDocumentModel}\n@optional {name: str, title: str, content: [map], columns: map # List columns to display}\n@returns(200) {id: int, name: str, title: str, json: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/salesdocumentmodels/{id}\n@desc Remove a sales document model\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of SalesDocumentModel}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/recurringinvoices\n@desc List RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/recurringinvoices\n@desc Create a RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., frequency_count: int, frequency_duration: str(day/week/month/trimester/semester/year)}\n@optional {contact_infos: map, title: str, content: [map], columns: map # List columns to display, currency: str, legal_notice: str # Legal mentions, bank_details_id: int, vat_exemption: map, tags: [any], metadata: [str], payment_period: int=30 # Days count before considere this invoice as late, next_invoice_at: str(date-time), end_at: str(date-time), discount: int, discount_mode: str, discount_start_at: str(date-time), discount_end_at: str(date-time), details: str, orders_plan: [map], recipient_emails: [str(email)], need_copy_bcc: bool(0/1)}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/recurringinvoices/batch\n@desc Create or update many RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of RecurringInvoice. With ID for update, without for insert}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/recurringinvoices/batch\n@desc Delete many RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of RecurringInvoice ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/recurringinvoices/periods\n@desc Get json of periods_formats for a date.\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {date: str(date-time) # Date of the invoice}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/recurringinvoices/{id}\n@desc Get a RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int(RecurringInvoice) # ID of RecurringInvoice}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/recurringinvoices/{id}\n@desc Update a RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of RecurringInvoice}\n@optional {contact_infos: map, title: str, content: [map], columns: map # List columns to display, currency: str, legal_notice: str # Legal mentions, bank_details_id: int, vat_exemption: map, tags: [any], metadata: [str], payment_period: int=30 # Days count before considere this invoice as late, next_invoice_at: str(date-time), end_at: str(date-time), frequency_count: int, frequency_duration: str(day/week/month/trimester/semester/year), discount: int, discount_mode: str, discount_start_at: str(date-time), discount_end_at: str(date-time), details: str, orders_plan: [map], recipient_emails: [str(email)], need_copy_bcc: bool(0/1)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/recurringinvoices/{id}\n@desc Remove a RecurringInvoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of RecurringInvoice}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/recurringinvoices/{id}/plan\n@desc Preview next invoices generations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Recurring invoice id, until: str(date-time) # Until date to generate plan}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/bankdetails\n@desc List BankDetails\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/bankdetails\n@desc Create a BankDetails\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, iban: str, bic: str}\n@returns(200) {id: int, name: str, iban: str, bic: str} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/bankdetails/{id}\n@desc Get a BankDetails\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of BankDetails}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, name: str, iban: str, bic: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/bankdetails/{id}\n@desc Update a BankDetails\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of BankDetails}\n@optional {name: str, iban: str, bic: str}\n@returns(200) {id: int, name: str, iban: str, bic: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/bankdetails/{id}\n@desc Remove a BankDetails\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of BankDetails}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/email/document\n@desc Send an email\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., recipients: [str(email)], documents: [map]}\n@optional {from: str(email), recipients_cc: [str(email)], recipients_bcc: [str(email)], title: str, body: str, need_copy_bcc: bool=false, attach_invoice: bool=false}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/email/batch\n@desc Send emails\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {from: str(email), messages: [map], need_copy_bcc: bool=false, attach_invoice: bool=false, request_signature: bool=false}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/email/document/{id}\n@desc Get all emails assign to a document\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of document, type: str(invoice/quote/attachment) # Type of document}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases\n@desc List purchases\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result., expand: [str]}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/purchases\n@desc Create a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {invoice: str(binary) # Invoice or receipt file (pdf or image), account_id: int, supplier_organization_id: int, title: str, supplier_name: str, amount: int, amount_tax: int, amount_reverse_tax: int, currency: str, vat_detail: map, billed_at: str(date), comment: int, tags: [any], vat_repayment: str(payment/billing), payment_deadline_at: str(date), expected_payment_deadline_at: str(date), payment_account_number: str, payment_routing_number: str, payment_swift: str, payment_iban: str, amortization_period: int, author_user_id: int, completed_at: str(date), employee_id: int # Account Employee id of the purchase, employee_name: str # Employee id of the purchase, mileage_allowance_id: int # mileage allowance id of the purchase, is_expense_report: bool=false}\n@returns(200) {id: int, status: str, title: str, supplier_name: str, amount: int, amount_tax: int, amount_reverse_tax: int, amount_net_foreign_currency: int, foreign_currency: str, vat_detail: map, comment: str, picture: str, tags: [str], vat_repayment: str, md5: str, billed_at: str(date-time), completed_at: str(date-time), accounted_at: str(date-time), paid_at: str(date-time), payment_deadline_at: str(date-time), expected_payment_deadline_at: str(date-time), payment_account_number: str, payment_routing_number: str, payment_swift: str, payment_iban: str, is_late: bool, will_be_late_at: str(date-time), account: any, supplier: any, balance: any} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/statistics\n@desc Obtain statistics about purchases\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/batch\n@desc Create or update many purchases\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of purchases. With ID for update, without for insert}\n@returns(200) {id: int, status: str, title: str, supplier_name: str, amount: int, amount_tax: int, amount_reverse_tax: int, amount_net_foreign_currency: int, foreign_currency: str, vat_detail: map, comment: str, picture: str, tags: [str], vat_repayment: str, md5: str, billed_at: str(date-time), completed_at: str(date-time), accounted_at: str(date-time), paid_at: str(date-time), payment_deadline_at: str(date-time), expected_payment_deadline_at: str(date-time), payment_account_number: str, payment_routing_number: str, payment_swift: str, payment_iban: str, is_late: bool, will_be_late_at: str(date-time), account: any, supplier: any, balance: any} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/purchases/batch\n@desc Delete many purchases\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of purchases ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/download\n@desc Download a list of purchases in pdf into a .zip file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # Array of purchases id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/{id}\n@desc Get a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of purchase}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, status: str, title: str, supplier_name: str, amount: int, amount_tax: int, amount_reverse_tax: int, amount_net_foreign_currency: int, foreign_currency: str, vat_detail: map, comment: str, picture: str, tags: [str], vat_repayment: str, md5: str, billed_at: str(date-time), completed_at: str(date-time), accounted_at: str(date-time), paid_at: str(date-time), payment_deadline_at: str(date-time), expected_payment_deadline_at: str(date-time), payment_account_number: str, payment_routing_number: str, payment_swift: str, payment_iban: str, is_late: bool, will_be_late_at: str(date-time), account: any, supplier: any, balance: any} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/{id}\n@desc Update a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of purchase}\n@optional {account_id: int # Auto-calculated by sales_lines total, supplier_organization_id: int, title: str, supplier_name: str, amount: int # Auto-calculated by sales_lines total, amount_tax: int, amount_reverse_tax: int, currency: str, vat_detail: map, billed_at: str(date), comment: str, tags: [any], vat_repayment: str(payment/billing), payment_deadline_at: str(date), expected_payment_deadline_at: str(date), payment_account_number: str, payment_routing_number: str, payment_swift: str, payment_iban: str, amortization_period: int, purchase_lines: [any], author_user_id: int # Author id of the invoice, employee_user_id: int # Employee id of the purchase, employee_name: str # Employee id of the purchase, mileage_allowance_id: int # mileage allowance id of the purchase, is_expense_report: bool=false}\n@returns(200) {id: int, status: str, title: str, supplier_name: str, amount: int, amount_tax: int, amount_reverse_tax: int, amount_net_foreign_currency: int, foreign_currency: str, vat_detail: map, comment: str, picture: str, tags: [str], vat_repayment: str, md5: str, billed_at: str(date-time), completed_at: str(date-time), accounted_at: str(date-time), paid_at: str(date-time), payment_deadline_at: str(date-time), expected_payment_deadline_at: str(date-time), payment_account_number: str, payment_routing_number: str, payment_swift: str, payment_iban: str, is_late: bool, will_be_late_at: str(date-time), account: any, supplier: any, balance: any} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/purchases/{id}\n@desc Remove a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of purchase}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/{id}/updatestatus\n@desc Update the status of an invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of purchase}\n@optional {status: str(completed/paid) # Status to update}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/{id}/attach\n@desc Attach a file at a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id}\n@optional {file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/purchases/{id}/attach\n@desc Detach a file at a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id}\n@optional {file_id: int # File to detach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/{id}/tag\n@desc Add a tag on a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id}\n@optional {tag: str # Tag to add}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/purchases/{id}/tag\n@desc Delete a tag on a purchase\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id}\n@optional {tag: str # Tag to delete}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/{id}/original\n@desc Download the purchase as pdf\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id to download}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/{id}/preview.jpg\n@desc Download purchase as jpeg\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id to download}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/{id}/thumbnail.jpg\n@desc Show purchase thumbnail as jpeg\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Purchase id to download}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/purchases/delete/all\n@desc Remove all purchases\n@returns(200) {code: int, type: str, message: str} # Success\n\n@endpoint POST /apps/{appId}/purchases/mileage_allowances/create\n@desc Create a mileage allowance\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {start_address: str # Start address of the trip, arrived_address: str # Arrived address of the trip, kilometers_count: int # Kilometers count of the trip, fiscal_power: int(3/4/5/6/7/1/50) # Fiscal power of the car}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/mileage_allowances/{id}/duplicate\n@desc Duplicate an mileage allowance\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Mileage Allowances id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/purchases/mileage_allowances/resume\n@desc Resume of all mileage allowances for the current year + employee\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {employee_id: int # Account employee id of the purchase, year: int # Year of the purchase}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/mileage_allowances/{id}\n@desc Update a mileage allowance\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Mileage Allowances id}\n@optional {start_address: str # Start address of the trip, arrived_address: str # Arrived address of the trip, kilometers_count: int # Kilometers count of the trip, fiscal_power: int(3/4/5/6/7/1/50) # Fiscal power of the car}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/purchases/create/demo\n@desc Create a fake purchase for test purpose\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/accounts/employees\n@desc Get accounting for all employees\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/accounts/employees\n@desc Create accounting for an employee\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., fiscal_power: int(3/4/5/6/7/1/50) # Fiscal power of the car}\n@optional {user_id: int # Employee id, user_name: str # Employee lastname and firstname, account_id: str, vehicle_type: str(car/motorcycle/electric_car) # Vehicle type of employee}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/accounts/employees/{id}\n@desc Get account for an employee\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Employee account id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/accounts/employees/{id}\n@desc Update account for an employee\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Employee account id}\n@optional {user_name: str # Employee lastname and firstname, fiscal_power: int(3/4/5/6/7/1/50) # Fiscal power of the car, vehicle_type: str(car/motorcycle/electric_car) # Vehicle type of employee}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/accounts/employees/{id}\n@desc Delete account for an employee\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Employee account id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/attachments\n@desc List attachments\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/attachments\n@desc Attach a file on an object\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., type: str(none/purchase/invoice/quote/transaction/relationship) # Object to attach file}\n@optional {attachable_id: int # Object id, file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint PUT /apps/{appId}/attachments\n@desc Recreate S.A.P attestations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {year: int # year number to generate}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found, 422: Error}\n\n@endpoint GET /apps/{appId}/attachments/download\n@desc Download a list of attachments in pdf into a .zip file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: str # Array of attachments id, type: str # Type of attachment}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/attachments/sap-download\n@desc Download a list of SAP attestations in pdf into a .zip file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: str # Array of attachments id, type: str # Type of attachment}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/attachments/{id}\n@desc Get attachment by id\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Attachment id}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/attachments/{id}\n@desc Detach a file from id\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Attachment id}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/attachments/{id}/pdf\n@desc Download the attachment as pdf\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Attachment id to download, random: int # random number to force fresh pdf}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/products\n@desc List products\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/products\n@desc Create a product\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., name: str}\n@optional {amount: int # Price without taxes in cents, amount_accurately: int # Price without taxes in cents / 1000, vat_percent: int # Taxe rate in cents, image: any, lifetime: int # Product life time in seconds, description: str # Product description, type: str(product/service) # Is a service or a product ?, quantity_name: str # Name of the quantity: days, liters, m2, m3..., reference: str, account_id: str, tags: [any], category_id: int, metadata: [str]}\n@returns(200) {id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, metadata: [any]?} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/products/batch\n@desc Create multiple products\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [map] # List of products. With ID for update, without for insert}\n@returns(200) {id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, metadata: [any]?} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/products/batch\n@desc Delete many products\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of products ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/products/{id}/attach\n@desc Attach a file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/products/{id}/attach\n@desc Detach a file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file_id: int # File to detach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/products/{id}\n@desc Get a product\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of product}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, metadata: [any]?} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/products/{id}\n@desc Update a product\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of product}\n@optional {name: str, amount: int # Price without taxes in cents, amount_accurately: int # Price without taxes in cents / 1000, vat_percent: int # Taxe rate in cents, image: any, lifetime: int # Product life time in seconds, description: str # Product description, type: str(product/service) # Is a service or a product ?, quantity_name: str # Name of the quantity: days, liters, m2, m3..., reference: str, account_id: str, tags: [any], category_id: int, metadata: [str]}\n@returns(200) {id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, metadata: [any]?} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/products/{id}\n@desc Remove a product\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of product}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/products/{id}/tag\n@desc Add a tag on a product\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Product id}\n@optional {tag: str # Tag to add}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/products/{id}/tag\n@desc Delete a tag on a product\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Product id}\n@optional {tag: str # Tag to delete}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/products/delete/all\n@desc Remove all products\n@returns(200) {code: int, type: str, message: str} # Success\n\n@endpoint GET /apps/{appId}/productstocks\n@desc List stocks\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/productstocks\n@desc Create a stocks\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., product_id: int # Parent object}\n@optional {purchase_id: int # Purchase that generated the stock if exists, quantity: int # The initial quantity will no longer be modifiable. To change the quantity manually, use the `destruct` endpoint, bar_code: str, location: str, entered_at: str(date-time), expired_at: str(date-time), cost_amount: int, use_duration: int # Use duration in seconds}\n@returns(200) {id: int, quantity_in: int, quantity_out: int, bar_code: int, location: int, entered_at: int, expired_at: int, cost_amount: int, initial_quantity: int, use_duration: int, purchase: any, product: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}, product_stocks_movements: [map], sales_lines: [map]} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/productstocks/{id}\n@desc Get a stocks\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of stocks}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, quantity_in: int, quantity_out: int, bar_code: int, location: int, entered_at: int, expired_at: int, cost_amount: int, initial_quantity: int, use_duration: int, purchase: any, product: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}, product_stocks_movements: [map], sales_lines: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/productstocks/{id}\n@desc Update a stocks\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of stocks}\n@optional {purchase_id: int # Purchase that generated the stock if exists, bar_code: str, location: str, entered_at: str(date-time), expired_at: str(date-time), cost_amount: int, use_duration: int # Use duration in seconds}\n@returns(200) {id: int, quantity_in: int, quantity_out: int, bar_code: int, location: int, entered_at: int, expired_at: int, cost_amount: int, initial_quantity: int, use_duration: int, purchase: any, product: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}, product_stocks_movements: [map], sales_lines: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/productstocks/{id}\n@desc Remove a stocks\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of stocks}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/productstocks/{id}/destruct\n@desc Destruct a quantity of stock (forgotten, destructed, expirated stock...)\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of stocks}\n@optional {quantity: int # Quantity to destruct, comment: str}\n@returns(200) {id: int, quantity_in: int, quantity_out: int, bar_code: int, location: int, entered_at: int, expired_at: int, cost_amount: int, initial_quantity: int, use_duration: int, purchase: any, product: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}, product_stocks_movements: [map], sales_lines: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/productstocks/{id}/rental/exit\n@desc Consider part of the stock as rented\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of stocks}\n@optional {quantity: int # Quantity to rent, future_return_date: str(date-time), comment: str}\n@returns(200) {id: int, quantity_in: int, quantity_out: int, bar_code: int, location: int, entered_at: int, expired_at: int, cost_amount: int, initial_quantity: int, use_duration: int, purchase: any, product: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}, product_stocks_movements: [map], sales_lines: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/productstocks/{id}/rental/back\n@desc Consider part of the stock as back\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of stocks, quantity: int # Quantity to return in stocks}\n@optional {current_return_date: str(date-time)=now, use_duration: int=0 # Usage duration in seconds, comment: str}\n@returns(200) {id: int, quantity_in: int, quantity_out: int, bar_code: int, location: int, entered_at: int, expired_at: int, cost_amount: int, initial_quantity: int, use_duration: int, purchase: any, product: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}, product_stocks_movements: [map], sales_lines: [map]} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/productcategory\n@desc List product categories\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/productcategory\n@desc Create a product category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., name: str}\n@optional {image: any, parent_category_id: int}\n@returns(200) {id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/productcategory/{id}\n@desc Get a product category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of product category}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/productcategory/{id}\n@desc Update a product category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of product category, name: str}\n@optional {image: any, parent_category_id: int}\n@returns(200) {id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map, products: map}, metadata: [any]?}}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map{id: int, name: str, image: any, parent: map{id: int, name: str, image: any, parent: map, products: map}, products: map{id: int, name: str, amount_accurately: int, vat_percent: int, currency: str, image: any, lifetime: int, description: str, unity: str, intangible: bool, quantity_name: str, reference: str, accounting_number: str, tags: [str], category: map, metadata: [any]?}}, metadata: [any]?}} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/productcategory/{id}\n@desc Remove a product category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of product category}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/reconcile\n@desc Reconcile a transaction or a document\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., type: str(transaction/sales/purchase) # Object to pay with these payments and categorizations, id: int # Transaction, sales invoice or purchase invoice id to reconcile, movements: map}\n@optional {replace_all: bool=false # Remove all previous reconciliations, paid_at: str(date-time) # Payment date for cashdesk or waiting entries, rule: map # Create an auto-reconciliation rule}\n@returns(200) {id: int, source: str, transaction: any, amount: int, date: str(date-time), document: any, document_type: str} # Success\n@errors {404: Not found}\n\n@endpoint DELETE /apps/{appId}/reconcile\n@desc Remove payments by an object\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., type: str(transaction/sales/purchase) # Object to unpay with this payment, id: int # Transaction, sales invoice or purchase invoice id to unreconcile}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/reconcile/batch\n@desc Reconcile several transactions\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # array of reconciliation params}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/payments\n@desc List payments\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/payments/recipe_book\n@desc Get the recipe book\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/payments/{id}\n@desc Get a payment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of payment}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, source: str, transaction: any, amount: int, date: str(date-time), document: any, document_type: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/payments/{id}\n@desc Remove a payment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of quote}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/sepamandates/directdebit\n@desc Preview sepa direct debit file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., invoices_ids: [int]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/sepamandates/directdebit\n@desc Download sepa direct debit file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., invoices_ids: [int]}\n@optional {amounts: [int] # Optional array with amounts (keys must to correspond to invoices_ids), creditor_name: str, creditor_iban: str, creditor_bic: str, creditor_ics: str, date: str(date-time)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/sepamandates/credittransfer\n@desc Preview sepa credit transfer file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/sepamandates/credittransfer\n@desc Preview sepa credit transfer file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int]}\n@optional {amounts: [int] # Optional array with amounts (keys must to correspond to ids), debtor_name: str, debtor_iban: str, debtor_bic: str, btchBookg: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/sepamandates/\n@desc List SEPAMandate\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/sepamandates/\n@desc Create a SEPAMandate\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., mandate_id: str, signed_at: str(date-time), iban: str, bic: str}\n@optional {customer_organization_id: int, customer_person_id: int, old_mandate_id: int, electronic_signature: str, customer_name: str, is_first: bool}\n@returns(200) {id: int, customer: any, author: any, mandate_id: int, signed_at: str(date-time), electronic_signature: str, customer_name: str, iban: str, bic: str, is_first: int, logs_sepa_direct_debits: str, last_debit_at: str(date-time), last_debit_amount: int, last_debit_id: int, old_mandate_id: int, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/sepamandates/{id}\n@desc Get a SEPAMandate\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of SEPAMandate}\n@returns(200) {id: int, customer: any, author: any, mandate_id: int, signed_at: str(date-time), electronic_signature: str, customer_name: str, iban: str, bic: str, is_first: int, logs_sepa_direct_debits: str, last_debit_at: str(date-time), last_debit_amount: int, last_debit_id: int, old_mandate_id: int, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/sepamandates/{id}\n@desc Update a SEPAMandate\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of SEPAMandate}\n@optional {customer_organization_id: int, customer_person_id: int, old_mandate_id: int, mandate_id: str, signed_at: str(date-time), electronic_signature: str, customer_name: str, iban: str, bic: str, is_first: bool}\n@returns(200) {id: int, customer: any, author: any, mandate_id: int, signed_at: str(date-time), electronic_signature: str, customer_name: str, iban: str, bic: str, is_first: int, logs_sepa_direct_debits: str, last_debit_at: str(date-time), last_debit_amount: int, last_debit_id: int, old_mandate_id: int, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/sepamandates/{id}\n@desc Remove a SEPAMandate\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of SEPAMandate}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/urssaf/preview\n@desc Preview URSSAF request payment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., type: str(invoice/quote/contact), ids: [int]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/urssaf/auth\n@desc Login URSSAF\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., client_id: str, client_secret: str}\n@returns(200) Successfully logged, credentials has been saved\n@errors {400: Bad request, 401: Invalid credentials, 404: App was not found, 422: All fields are required}\n\n@endpoint POST /apps/{appId}/urssaf/register_customer\n@desc Register a person to URSSAF and create him a mandate\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/urssaf/customer\n@desc Get person informations\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {contact_person_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/urssaf/payment\n@desc Get status of a payment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., invoices_ids: [int]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/urssaf/payment\n@desc Send URSSAF request payment\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/banks/\n@desc List banks connected to bankin\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint DELETE /apps/{appId}/banks/\n@desc Remove a Bankin synchronization\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., item_id: int}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/banks/connect\n@desc Get the link to the funnel to connect a bank with Sinao\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {url: str(uri)} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/banks/synchronize\n@desc Triggers synchronization at Bankin then synchronizes transactions with Sinao\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {id: int # Optional item id to refresh. If set, triggers a refresh at Bankin before synchronizing transactions, is_incremential: bool # The value 'false' triggers a non-incremental syncronization of the maximum possible duration. The value 'true' updates the transactions updated by Bankin since a certain date}\n@returns(200) {id: int, parent_cashflow_source: any, name: str, identifiant: str, account_type: str, disabled: bool, balance_amount: int, type: str, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/banks/{id}/funnel/sync\n@desc Get the link to the funnel to start manually a synchronization (SCA)\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@returns(200) {url: str(uri)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/banks/{id}/funnel/edit\n@desc Get the link to the funnel to edit password\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@returns(200) {url: str(uri)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/banks/{id}/funnel/validate\n@desc Get the link to the funnel to validate a pro item (SCA)\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@returns(200) {url: str(uri)} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/banks/{id}/select_accounts\n@desc Select accounts to synchronize\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {bank_account_ids: [int] # List of enables accounts}\n@returns(200) {id: int, parent_cashflow_source: any, name: str, identifiant: str, account_type: str, disabled: bool, balance_amount: int, type: str, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/cashflowsources/\n@desc List CashflowSource\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/cashflowsources/\n@desc Create a CashflowSource\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, identifiant: str, type: str(bank/cashdesk/waiting), balance_amount: int, account_type: str(checking/card/savings/special/securities/loan/life_insurance/unknown/pending/share_savings_plan), parent_cashflow_source_id: int, disabled: bool, currency_iso: str}\n@returns(200) {id: int, parent_cashflow_source: any, name: str, identifiant: str, account_type: str, disabled: bool, balance_amount: int, type: str, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/cashflowsources/{id}\n@desc Get a CashflowSource\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of CashflowSource}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, parent_cashflow_source: any, name: str, identifiant: str, account_type: str, disabled: bool, balance_amount: int, type: str, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/cashflowsources/{id}\n@desc Update a CashflowSource\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of CashflowSource}\n@optional {name: str, identifiant: str, type: str(bank/cashdesk/waiting), balance_amount: int, account_type: str(checking/card/savings/special/securities/loan/life_insurance/unknown/pending/share_savings_plan), parent_cashflow_source_id: int, disabled: bool}\n@returns(200) {id: int, parent_cashflow_source: any, name: str, identifiant: str, account_type: str, disabled: bool, balance_amount: int, type: str, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/cashflowsources/{id}\n@desc Remove a CashflowSource\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of CashflowSource}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/logs/autoreconcile/\n@desc List autoreconciliation logs\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/logs/autoreconcile/\n@desc Start force autoreconciliation\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint DELETE /apps/{appId}/logs/autoreconcile/\n@desc Clear autoreconciliation logs\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/transactions/\n@desc List Transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/transactions/\n@desc Create a Transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., cashflow_source_id: int, received_at: str(date-time)}\n@optional {contact_organization_id: int, contact_person_id: int, account_id: int, contact_name: str, amount: int, original_amount: int, foreign_currency: str, method: str(check/transfer/cash/creditcard/automatic_debit/creditnote), label: str, details: str, tags: str, metadata: [str]}\n@returns(200) {id: int?, contact_organization_id: int?, contact_person_id: int?, author_user_id: int, cashflow_source_id: int, amount: int, credit: int?, debit: int?, method: int?, received_at: str(date-time), label: int, details: int?, lettered_at: str(date-time)?, metadata: [any]?, tags: str?, created_at: str(date-time), updated_at: str(date-time), deleted_at: str(date-time)} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/transactions/batch\n@desc Create multiple transactions\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of transactions. With ID for update, without for insert}\n@returns(200) {id: int?, contact_organization_id: int?, contact_person_id: int?, author_user_id: int, cashflow_source_id: int, amount: int, credit: int?, debit: int?, method: int?, received_at: str(date-time), label: int, details: int?, lettered_at: str(date-time)?, metadata: [any]?, tags: str?, created_at: str(date-time), updated_at: str(date-time), deleted_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/transactions/batch\n@desc Delete many transactions\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of transactions ID}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/transactions/{id}/attach\n@desc Attach a file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file: str(binary) # File to attach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/transactions/{id}/attach\n@desc Detach a file\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {file_id: int # File to detach}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/transactions/{id}\n@desc Get a Transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Transaction}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int?, contact_organization_id: int?, contact_person_id: int?, author_user_id: int, cashflow_source_id: int, amount: int, credit: int?, debit: int?, method: int?, received_at: str(date-time), label: int, details: int?, lettered_at: str(date-time)?, metadata: [any]?, tags: str?, created_at: str(date-time), updated_at: str(date-time), deleted_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/transactions/{id}\n@desc Update a Transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Transaction}\n@optional {contact_organization_id: int, contact_person_id: int, account_id: int, cashflow_source_id: int, contact_name: str, amount: int, method: str(check/transfer/cash/creditcard/automatic_debit/creditnote), received_at: str(date-time), label: str, details: str, tags: str, metadata: [str]}\n@returns(200) {id: int?, contact_organization_id: int?, contact_person_id: int?, author_user_id: int, cashflow_source_id: int, amount: int, credit: int?, debit: int?, method: int?, received_at: str(date-time), label: int, details: int?, lettered_at: str(date-time)?, metadata: [any]?, tags: str?, created_at: str(date-time), updated_at: str(date-time), deleted_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/transactions/{id}\n@desc Remove a Transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Transaction}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/transactions/{id}/tag\n@desc Add a tag on a transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Transaction id}\n@optional {tag: str # Tag to add}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/transactions/{id}/tag\n@desc Delete a tag on a transaction\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # Transaction id}\n@optional {tag: str # Tag to delete}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/rules/\n@desc List rules\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/rules/\n@desc Create a rule\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {conditions: [[str]], on_event: str # Event like model.event, event in [saved, created, updated, deleted], parameter: str, value: str, priority: int}\n@returns(200) {id: int, conditions: [[str]], on_event: str, parameter: str, value: str, priority: int} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/rules/execute_on\n@desc Execute all rules\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {model: str}\n@returns(200) {id: int, conditions: [[str]], on_event: str, parameter: str, value: str, priority: int} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/rules/{id}\n@desc Get a rule\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, conditions: [[str]], on_event: str, parameter: str, value: str, priority: int} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/rules/{id}\n@desc Update a rule\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@optional {conditions: [[str]], on_event: str, parameter: str, value: str, priority: int}\n@returns(200) {id: int, conditions: [[str]], on_event: str, parameter: str, value: str, priority: int} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/rules/{id}\n@desc Remove a rule\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/accounts/\n@desc List Account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/accounts/\n@desc Create a Account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {journalcode: str, name: str, description: str, keywords: str, accounting_number: str, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool, is_associate: bool, initiale_balance: num # Integer for example for initiale balance amount of 10.50, 10.50 x 100 = 1050}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/accounts/batch\n@desc Create many accounts\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., data: [any] # List of accounts. Without ID for insert}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/accounts/batch\n@desc Remove multiple accounting accounts\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., ids: [int] # List of accounting accounts ID to remove}\n@returns(200) {code: int, type: str, message: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/accounts/{id}\n@desc Get a Account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Account}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/accounts/{id}\n@desc Update a Account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Account}\n@optional {journalcode: str, name: str, description: str, keywords: str, accounting_number: str, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool, initiale_balance: num # Integer for example for initiale balance amount of 10.50, 10.50 x 100 = 1050}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/accounts/{id}\n@desc Remove a Account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of Account}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/accounts/{delete_account_id}/replace\n@desc Delete an account and replace relatives by replacement account id\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., delete_account_id: int # ID of Account to delete, replacement_account_id: int # ID of Account to delete}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/elements\n@desc Get all forecast elements\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/forecast/elements\n@desc Create a forecast element\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, amount: int, category_id: int, deducted_budget: int, date: str(date-time)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/forecast/elements\n@desc Remove a forecast element\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, category_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/forecast/elements/{id}\n@desc Create a forecast element\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, amount: int, category_id: int, deducted_budget: int, date: str(date-time)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/forecast/elements/{id}\n@desc Remove a forecast element\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/turnover\n@desc Get all sales_lines grouped by account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/expenditures\n@desc Get all sales_lines grouped by account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/payments\n@desc Get all sales_lines grouped by account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/average/payment\n@desc Get supplier and customer average payment period\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/transactions\n@desc Get all transactions grouped by account\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/pourcentages/budgets\n@desc Calculate pourcentages budgets for all categories\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {id: int # Category ID}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/invoices/unpaid\n@desc Calculate pourcentages budgets for all categories\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/forecast/purchases/unpaid\n@desc Calculate pourcentages budgets for all categories\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {id: int, journalcode: str, technical_name: str, editable: bool, name: str, description: str, keywords: str, accounting_number: str, need_invoice: bool, need_charge: bool, need_employee: bool, is_associate: bool, is_cashflow: bool, is_sales: bool, is_purchase: bool, is_various: bool} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/accountcategories/\n@desc List categories\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/accountcategories/\n@desc Create a category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {name: str, description: str, type: str}\n@returns(200) {id: int, name: str, description: str, type: str} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/accountcategories/{id}\n@desc Get a category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, name: str, description: str, type: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/accountcategories/{id}\n@desc Update a category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID}\n@optional {name: str, description: str, type: str}\n@returns(200) {id: int, name: str, description: str, type: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/accountcategories/{id}\n@desc Remove a category\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of the category to remove}\n@optional {replacement_id: int # ID of the category to attach accounts attached to the removed category}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/exports\n@desc List ExportEntity\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/exports\n@desc Create a ExportEntity\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., until: str(date-time)}\n@returns(200) {id: int, period_start: str(date-time), period_end: str(date-time), entries_count: int, total_debit: int, total_credit: int, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/exports/months\n@desc List ExportEntity\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/exports/acd_compta\n@desc Get the ACD UUID for authentification\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {uuid: str, validity: str, login: str, base: str, cnx: str, password: str, uuid_validity: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/exports/acd_compta\n@desc Register ACD identifiants\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., login: str # the login provided by ACD Compta, password: str # the password provided by ACD Compta, base: str # Your ACD file number (3XXXX), cnx: str # your CNX by ACD Compta, accounting_office_uri: str # your accounting office API domain name}\n@returns(200) {uuid: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/exports/acd_compta/filenumber\n@desc Set ACD file number\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., base: str # Your ACD file number (3XXXX)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/exports/agiris\n@desc Get your Agiris file code\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) {file_code: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/exports/agiris\n@desc Register Agiris file code\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., file_code: str # your file code provided by Agiris}\n@returns(200) {file_code: str} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/exports/download\n@desc Download the export entity as zip\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {format: str(universal/quadra/fiducial/acd/agiris/pennylane/cegid/xls) # The export format can be a FEC (universal - similar to the French legal file 'Fichier des Ecritures Comptables') or specific for accounting software, export_entities_ids: [int], start_at: str(date-time) # Automatically find export entities from a date range, end_at: str(date-time) # Automatically find export entities from a date range, since: str(date-time) # Automatically find export entities since a date, since_last: bool # Automatically find the export entities since the last export downloaded}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/exports/download/{export_id}\n@desc Download the export entity as zip\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., export_id: int # Export file id}\n@returns(200) {id: int, period_start: str(date-time), period_end: str(date-time), file_url: str, file_size: int, format: str, entries_count: int, status: str, downloaded_at: str(date-time), created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/exports/{id}\n@desc Get a ExportEntity\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of ExportEntity}\n@optional {with_trashed: bool # Include trashed rows}\n@returns(200) {id: int, period_start: str(date-time), period_end: str(date-time), entries_count: int, total_debit: int, total_credit: int, status: str, created_at: str(date-time), updated_at: str(date-time)} # Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /apps/{appId}/exports/{id}\n@desc Remove a ExportEntity\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., id: int # ID of ExportEntity}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/accounting_entries/\n@desc List accounting entries\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {offset: int # The number of items to skip before starting to collect the result set., limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/statistics/vat\n@desc Obtain statistics about vat\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {detailed: bool=false, start_at: str(date-time)=now, period: str(monthly/quarterly/half-yearly/yearly), end_at: str(date-time)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/statistics/timetable/sales\n@desc Obtain statistics about sales\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {detailed: bool=false, groups: [[int]]=[ [-730, -30], [-30, -1], [-1, 7], [7, 15], [15, 30], [30, 730] ]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/statistics/timetable/purchases\n@desc Obtain statistics about timetable purchases\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {detailed: bool=false, groups: [[int]]=[ [-730, -30], [-30, -1], [-1, 7], [7, 15], [15, 30], [30, 730] ]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/statistics/charts/{type}\n@desc Obtain statistics about everything\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., type: str}\n@optional {count: int, period: str(hourly/daily/weekly/monthly/quarterly/yearly), start_at: str(date-time), object: str(invoice/quote/purchase/transaction/payment/relationship), object_property: str, calcul: str(sum/avg/count), methods: [[str]] # Array of [object_property, calcul], object_date_property: str, group_by: [str], group_by_object_name: str, exclude_keys: [int], search: str, filters: map, show_details: bool # Recovers the details of the calculations}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/declare/vat\n@desc Obtain the url of Teledec declaration page redirection\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., start_at: str(date-time)=now, period: str(monthly/quarterly/half-yearly/yearly)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/declare/vat\n@desc register Vat declaration settings\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {key: str, settings: map}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/tags\n@desc Get all existants tags\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {object: str(invoice/quote/purchase/product/transaction/relationship)}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/supplier/accepted\n@desc Accept a supplier\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., token: str # app id of Supplier, email: str # email of the client}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/supplier/accepted/invoice\n@desc Accepted to add only this invoice\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., token: str # app id of Supplier}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/signature\n@desc Create a signature\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., documentId: int, email: str, firstname: str, lastname: str, phone: str}\n@returns(200) Success\n@errors {404: Not found}\n\n@endgroup\n\n@group ping\n@endpoint GET /ping\n@desc Ping server\n@returns(200) Success\n@errors {405: Server error}\n\n@endgroup\n\n@group apps\n@endpoint GET /apps/{appId}/services/stripe/webhook\n@desc Ping Stripe webhook endpoint\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/services/stripe/webhook\n@desc Webhook for Stripe\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endgroup\n\n@group services\n@endpoint POST /services/collector\n@desc Push to purchase collector\n@required {app_identifiant: str, collector_key: str, invoice: str(binary) # Invoice or receipt file (pdf or image)}\n@returns(200) Success\n\n@endpoint GET /services/vies/{siren}\n@desc Get VIES database informations from SIREN\n@required {siren: str}\n@returns(200) Success\n\n@endgroup\n\n@group apps\n@endpoint POST /apps/{appId}/services/yousign/webhook\n@desc Webhook for Yousign\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/sponsorship/invite\n@desc Send an email\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., from: str(email), recipient: str(email), referrer_name: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/sponsorship/activate\n@desc Activate the invitation for sponsorship\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., referrer_app_id: str, recipient: str(email)}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/sponsorship/list/referrals\n@desc Get all referrals for a referrer\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/sponsorship/referrer\n@desc Get the referrer information for my app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/sponsorship/referrer/url\n@desc Get the referrer url for my app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., referrer_name: str}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/sponsorship/accept/referrer\n@desc Verify if the referrer code is valid\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., referrer_code: str}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint GET /apps/{appId}/sponsorship/credit\n@desc Get the credit for my app\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {404: Not found}\n\n@endpoint POST /apps/{appId}/stripe/import/launch\n@desc Launch the import of Stripe data\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., public_key: str, secret_key: str, private_webhook: str, start_at: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/stripe/import/status\n@desc Get the import status of Stripe data\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/stripe/import/state\n@desc Get the import state of Stripe data\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/openai/billing/estimate\n@desc Get the import state of Stripe data\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., description: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/openai/billing/reformulate\n@desc Get the reformulate for a designation\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., description: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/openai/billing/corrector\n@desc Get the smart corrector for a designation\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., description: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /apps/{appId}/openai/accounting/suggest\n@desc Suggest an accounting account from a free-text description using AI\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., description: str # Free-text description of the accounting need (e.g. 'loyer', 'retraite complémentaire')}\n@returns(200) Success\n@errors {400: Bad request, 500: AI service error}\n\n@endpoint POST /apps/{appId}/paypal/connect/{clientId}\n@desc Connect to Paypal\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`., clientId: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/paypal/connect/state\n@desc Get if app is connect to Paypal\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/paypal/connect/delete\n@desc Delete synchronisation paypal\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /apps/{appId}/webhooks/events\n@desc Get all events\n@required {appId: int # The identifier of the Sinao application you are using. Each application corresponds to a company and an accounting. A user can have several Sinao applications. To retrieve the identifiers of its applications, you must call the endpoint `/apps`.}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result., type: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endgroup\n\n@group partners\n@endpoint POST /partners/{partnerId}/clients/login\n@desc Login a client\n@required {partnerId: int, email: str, hostname_alias: str, client_secret: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /partners/{partnerId}\n@desc Get partner information\n@required {partnerId: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /partners/{partnerId}/cases\n@desc Get all cases for a partner\n@required {partnerId: int}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /partners/{partnerId}/apps/{app_id}/apikey\n@desc Get or create a apikey for a app inside partner case\n@required {partnerId: int, app_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /partners/{partnerId}/plans\n@desc Get all plans for a partner\n@required {partnerId: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/subscriptions/{app_id}/update\n@desc Update a subscription\n@required {partnerId: int, app_id: int, plan_nickname: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/subscriptions/{app_id}/cancel\n@desc Cancel a subscription\n@required {partnerId: int, app_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /partners/{partnerId}/delete/cases\n@desc Delete apps inside a partner scope\n@required {partnerId: int, ids: [int]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/dissociate/cases\n@desc Dissociate apps from a partner\n@required {partnerId: int, ids: [int]}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/add/collaborator\n@desc Add a collaborator to an app\n@required {partnerId: int, email: str, firstname: str, lastname: str, policy_profile_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint GET /partners/{partnerId}/collaborators\n@desc Get all collaborators for a partner\n@required {partnerId: int}\n@optional {limit: int=10 # The numbers of items to return., search: str # A string to search for in objects., filters: [map] # List of filters to apply to the query., order: [map] # List in order of priority of the variables by which to order the result.}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint DELETE /partners/{partnerId}/collaborators/{id}\n@desc Delete a collaborator for a partner\n@required {partnerId: int, id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/assign/collaborators/{id}\n@desc Affecter un collaborateur à un partenaire\n@required {partnerId: int, id: int, appId: int}\n@optional {userId: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/collaborators/{id}/update\n@desc Update a collaborator profile for a partner\n@required {partnerId: int, id: int, policy_profile_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/user/accept/invite\n@desc User accept an invite 'Support Technique' on this app\n@required {partnerId: int, appId: int, email: str, token: str}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endpoint POST /partners/{partnerId}/add/policy\n@desc Add a user policy to an app (make by partner)\n@required {partnerId: int, app_id: int, user_id: int, policy_profile_id: int}\n@returns(200) Success\n@errors {400: Bad request, 404: Not found}\n\n@endgroup\n\n@end\n"}}