# Silverfin Documentation
> Documentation for Silverfin
## Guides
- [Where to start?](https://developer.silverfin.com/docs/where-to-start.md): Learn how to make your own Silverfin templates
- [Styling](https://developer.silverfin.com/docs/styling-1.md): How to style your text?
- [Tags](https://developer.silverfin.com/docs/tags.md): Put some logic in your code.
- [Input](https://developer.silverfin.com/docs/input.md): With inputs tags you can create input fields in the Silverfin templating language.
- [Iterations](https://developer.silverfin.com/docs/iterations.md): The iteration tag allows code to be executed repeatedly.
- [Include](https://developer.silverfin.com/docs/parts-include.md): With the include tag you can access code stored in parts
- [Linkto](https://developer.silverfin.com/docs/linkto.md): The linkto tag creates a link that lets you jump to another template or section
- [Adjustment button](https://developer.silverfin.com/docs/adjustment-button.md): The adjustment button tag is used to make an adjustment
- [Signmarker](https://developer.silverfin.com/docs/signmarker.md): The signmarker tag is used to allow the integration with third parties that provides digital signing services.
- [New page](https://developer.silverfin.com/docs/new-page.md): The newpage tag generates page breaks in PDF export.
- [Radiogroup](https://developer.silverfin.com/docs/radiogroup.md): With the radiogroup tag you can add radio buttons to your templates.
- [Inputvalidation](https://developer.silverfin.com/docs/inputvalidation.md): With the `input_validation` you can validate how data is created.
- [company](https://developer.silverfin.com/docs/company.md)
- [consolidated_companies](https://developer.silverfin.com/docs/consolidated_companies.md)
- [external_companies](https://developer.silverfin.com/docs/external_company.md)
- [firm ](https://developer.silverfin.com/docs/firm.md)
- [period](https://developer.silverfin.com/docs/period.md)
- [reconciliation](https://developer.silverfin.com/docs/reconciliation.md)
- [Filters](https://developer.silverfin.com/docs/filters.md): Manipulate your data
- [Array](https://developer.silverfin.com/docs/array-filters.md): An array is a collection of data elements.
- [Date and time](https://developer.silverfin.com/docs/date.md)
- [Localized](https://developer.silverfin.com/docs/localized.md)
- [Number](https://developer.silverfin.com/docs/number-filters.md)
- [String](https://developer.silverfin.com/docs/string-filters.md)
- [HTML tables](https://developer.silverfin.com/docs/html-tables.md)
- [Code syntax](https://developer.silverfin.com/docs/code-syntax.md)
- [Code structure ](https://developer.silverfin.com/docs/code-architecture-code-structure.md)
- [Code structure: Export files](https://developer.silverfin.com/docs/code-structure-export-files.md)
- [Code structure: Functions through shared parts](https://developer.silverfin.com/docs/code-structure-functions-through-shared-parts.md)
- [Code structure: Centralise code in shared parts](https://developer.silverfin.com/docs/centralise-code-in-shared-parts.md)
- [Dataflow](https://developer.silverfin.com/docs/dataflow.md)
- [Dataflow: How to store data from integrations](https://developer.silverfin.com/docs/dataflow-how-to-store-data-from-integrations.md)
- [Dataflow: Common Template patterns ](https://developer.silverfin.com/docs/dataflow-common-template-patterns.md)
- [Dataflow: Rollforward logic over previous-year results](https://developer.silverfin.com/docs/dataflow-rollforward-logic-over-previous-year-results.md)
- [Dataflow: Avoid circular reference errors](https://developer.silverfin.com/docs/dataflow-use-custom-variables-instead-of-results.md)
- [Dataflow: Minimise dependency chains](https://developer.silverfin.com/docs/dataflow-minimise-dependency-chains.md)
- [🆕 Page layout ](https://developer.silverfin.com/docs/page-layout.md)
- [Typography ](https://developer.silverfin.com/docs/typography-and-font-style.md)
- [Layout components](https://developer.silverfin.com/docs/page-content-and-structure.md)
- [🆕 Feedback system](https://developer.silverfin.com/docs/feedback-system-overview.md)
- [Banner](https://developer.silverfin.com/docs/banner.md)
- [Reconcilation icons](https://developer.silverfin.com/docs/reconcilation-indicators.md)
- [Other icons](https://developer.silverfin.com/docs/other-indicators.md)
- [🆕 Add Content Button (Manual fori)](https://developer.silverfin.com/docs/add-content-button-manual-fori.md)
- [🆕 Changelog ](https://developer.silverfin.com/docs/changelog-1.md)
- [Creating HTML tables](https://developer.silverfin.com/docs/creating-html-tables.md)
- [Whitespace in templates on the Silverfin platform](https://developer.silverfin.com/docs/whitespace-on-the-silverfin-platform.md): This section describes the particularities about whitespace on the Silverfin platform
- [Cross-company data](https://developer.silverfin.com/docs/cross-company-data.md)
- [Template performance: How to write performant Liquid code](https://developer.silverfin.com/docs/template-performance-how-to-write-performant-liquid-code.md): This page is dedicated to template performance, and how Liquid code and template/workflow architecture impacts template performance.
- [Changelog](https://developer.silverfin.com/docs/changelog.md): Learn how to make your own Silverfin templates
- [Remote development](https://developer.silverfin.com/docs/remote-development.md)
- [Installation guide](https://developer.silverfin.com/docs/installation-guide.md): Access rights, tools, configurations etc. Admin rights required.
- [Git Repositories](https://developer.silverfin.com/docs/git-repositories.md): Leverage git repositories to develop templates together seamlessly
- [Template development](https://developer.silverfin.com/docs/template-development.md): Guidance on how to approach template development with the Silverfin CLI
- [Advanced git commands](https://developer.silverfin.com/docs/advanced-git-commands.md): Guidance on using git commands to alter your version control history
- [Liquid testing YAML syntax](https://developer.silverfin.com/docs/liquid-testing.md)
- [HTML Tables: Styling & logic](https://developer.silverfin.com/docs/html-tables-styling-logic.md)
## API Reference
- [Authentication](https://developer.silverfin.com/reference/authentication.md)
- [Postman Library Setup](https://developer.silverfin.com/reference/postman-library-setup.md)
- [Access Token & Refresh Token](https://developer.silverfin.com/reference/post_f-firm-id-oauth-token.md): Perform a POST request to /oauth/token with parameters client_id, client_secret, code, redirect_uri and grant_type=authorization_code. After following these steps, you will have an access token and a refresh token. The access token is valid for 2 hours, while the refresh token currently remains valid for 60 days.
With the refresh token, you can request a new access token / refresh token pair: Perform a POST request to /oauth/token with parameters: client_id, client_secret, refresh_token, redirect_uri and grant_type=refresh_token. Each refresh token can be used only once. As soon as the new access token is used to access the API for the first time, the previous refresh token will be revoked.
- [Authorize](https://developer.silverfin.com/reference/authorizeuser.md): Generates an OAuth authorization URL that redirects users to authenticate and authorize your application. Use this URL to initiate the OAuth flow by redirecting users to the authorization page. The URL must be opened in a new tab or window.
- [List all mappings in an account mapping list.](https://developer.silverfin.com/reference/getaccountmappingbyaccountmappinglistid.md): List all mappings in an account mapping list.
Required scope(s): `administration:read`
- [List all account mapping lists](https://developer.silverfin.com/reference/getaccountmappinglists.md): List all account mapping lists.
Required scope(s): `administration:read`
- [List all accountancy synchronisation entities](https://developer.silverfin.com/reference/getaccountancysyncentities.md): List all accountancy synchronisation entities.
Required scope(s): `administration:read`
- [Create new account](https://developer.silverfin.com/reference/createnewaccount.md): It is possible that not all of the custom_name_locale/original_name_locale fields that this endpoint will accept will end up being used. The exact list will depend on the locales which are enabled for the relevant company. If you only supply custom_name_locale and not original_name_locale, its value will be copied into original_name_locale automatically. If you only supply number and not original_number, its value will be copied into original_number automatically.
Required scope(s): `administration:write`
- [Get content of an account](https://developer.silverfin.com/reference/getaccountcontent.md): Get content of an account.
Required scope(s): `administration:read`
- [List all company accounts](https://developer.silverfin.com/reference/getcompanyaccounts.md): List all company accounts.
Required scope(s): `administration:read`
- [Update an account](https://developer.silverfin.com/reference/updateaccountcontent.md): It is possible that not all of the custom_name_locale fields that this endpoint will accept will end up being used. The exact list will depend on the locales which are enabled for the relevant company.
Required scope(s): `administration:write`
- [Update a batch of accounts](https://developer.silverfin.com/reference/updatebatchaccountcontent.md): Update a batch of accounts.
Required scope(s): `administration:write`
- [Destroy an app link](https://developer.silverfin.com/reference/deleteapplink.md): Destroy an app link.
Required scope(s): `links`
- [List all links for the current app & user](https://developer.silverfin.com/reference/getapplinkbyuser.md): List all links for the current app & user.
Required scope(s): `links`
- [Register an app link](https://developer.silverfin.com/reference/createapplink.md): You can register a link in a specific menu in Silverfin to send a user from a context in Silverfin to your service or app. This can be useful for things like e-signing flows, data integrations and more. Please keep in mind that AppLinks are scoped to users, meaning only the user who creates them has permissions to delete them. Also, fetching the list of AppLinks will return those created by the user making the request.
## Adding AppLinks as a partner If you're a partner, the placement options for marketplace reconciliation text and/or export files is the one you will need if you want to add a link for a globally managed template across firms. The marketplace placement options should only be used for integrations that are meant for the vast majority of Silverfin's users. Please contact Silverfin to request the necessary ids in such cases. Since a marketplace reconciliation text/export file/report is globally managed and used across multiple firms, this means that when this option is used, the AppLink will be shown in the menu of all companies, and for every firm that uses this marketplace export file. For the ids in the placement options, you can provide a single id value or multiple values. In case you omit the value (no id added) for the placement options, your AppLink will be added to ALL templates of that placement.
Required scope(s): `links`
- [List account ids of a given budget](https://developer.silverfin.com/reference/getbudgetentryaccountids.md): List account ids of a given budget.
Required scope(s): `financials:read`
- [List end dates of a given budget](https://developer.silverfin.com/reference/getbudgetentryenddates.md): List end dates of a given budget.
Required scope(s): `financials:read`
- [List budget entries for given account_ids and end_dates](https://developer.silverfin.com/reference/getbudgetentrieslistbyaccountid.md): You can search the entries in a given budget by providing account_ids and end_dates. There is a limit of 100 account_ids and 24 end_dates per request. An example request would be: /entries?account_ids[]=1&account_ids[]=2&end_dates[]='2000-01-01'.
Required scope(s): `financials:read`
- [Details of a given budget](https://developer.silverfin.com/reference/getbudgetentrycontent.md): Details of a given budget.
Required scope(s): `financials:read`
- [List all budgets](https://developer.silverfin.com/reference/getbudgetentrieslist.md): List all budgets.
Required scope(s): `financials:read`
- [Upload external notes](https://developer.silverfin.com/reference/createclientmeetingexternalnote.md): Deprecated. Use POST `/api/v4/f/{firm_id}/companies/{company_id}/client_meetings/attachments` instead, which supports attaching multiple files to a meeting.
Upload an external note to the current client meeting for the specified company.
Supported file types: .aac .flac .mp3 .mpa .mpeg .mpga .mp4 .opus .pcm .wav .webm .png .jpg .jpeg .webp .txt .pdf
Required scope: `client_meetings:external_notes:write`
- [Upload attachment](https://developer.silverfin.com/reference/createclientmeetingattachment.md): Upload an attachment to the current client meeting for the specified company. A meeting can have up to 5 attachments. Upload one file per request — call this endpoint repeatedly to attach multiple files.
Supported file types: .aac .flac .mp3 .mpa .mpeg .mpga .mp4 .opus .pcm .wav .webm .png .jpg .jpeg .webp .txt .pdf
Required scope: `client_meetings:external_notes:write`
- [List completed client meetings](https://developer.silverfin.com/reference/getclientmeetingslist.md): List the completed client meetings for the specified company, ordered by most recently completed first.
Required scope: `client_meetings:read`
- [Get a client meeting](https://developer.silverfin.com/reference/getclientmeeting.md): Get a single client meeting for the specified company, including its items (talking points, action points and titles in meeting order), attachments and links.
Required scope: `client_meetings:read`
- [Get the current client meeting](https://developer.silverfin.com/reference/getcurrentclientmeeting.md): Get the current (in progress) client meeting for the specified company, including its items (talking points, action points and titles in meeting order), attachments and links.
Required scope: `client_meetings:read`
- [Get the people of a company](https://developer.silverfin.com/reference/getallpeople.md): Get the people of a company.
Required scope(s): `administration:read`
- [Update the people of a company](https://developer.silverfin.com/reference/updateallpeople.md): Update the people of a company.
Required scope(s): `administration:write`
- [List all archived companies](https://developer.silverfin.com/reference/getarchivedcompanylist.md): List all archived companies.
Required scope(s): `administration:read`
- [List all companies](https://developer.silverfin.com/reference/getcompanies.md): List all companies.
Required scope(s): `administration:read`
- [Add a company](https://developer.silverfin.com/reference/createcompany.md): Add a company.
Required scope(s): `administration:write`
- [Get custom company parameters](https://developer.silverfin.com/reference/getcompanycustomproperties.md): Get custom company parameters.
Required scope(s): `administration:read``
- [Post a custom property to a company](https://developer.silverfin.com/reference/createcompanycustomproperty.md): Post a custom property to a company.
Required scope(s): `administration:write`
- [List all followers of a company](https://developer.silverfin.com/reference/getcompanyfollowers.md): List all followers of a company.
Required scope(s): `administration:read`
- [Add a follower to a company by id](https://developer.silverfin.com/reference/createcompanyfollowerbyid.md): Add a follower to a company by id.
Required scope(s): `administration:write`
- [Remove a follower from a company by id](https://developer.silverfin.com/reference/deletecompanyfollowerbyid.md): Remove a follower from a company by id.
Required scope(s): `administration:write`
- [Archive a company](https://developer.silverfin.com/reference/deletecompany.md): Archive a company.
Required scope(s): `administration:write`
- [Get details on a specific company](https://developer.silverfin.com/reference/getcompanydetails.md): Get details on a specific company.
Required scope(s): `administration:read`
- [Update a company](https://developer.silverfin.com/reference/updatecompanydetails.md): Update a company.
Required scope(s): `administration:write`
- [List all users that have access to a company](https://developer.silverfin.com/reference/getcompanyuserlist.md): List all users that have access to a company.
Required scope(s): `administration:read`
- [Add a user to a company by id](https://developer.silverfin.com/reference/createcompanyuserbyid.md): Add a user to a company by id.
Required scope(s): `administration:write`
- [Remove a user from a company by id](https://developer.silverfin.com/reference/deletecompanyuserbyid.md): Remove a user from a company by id.
Required scope(s): `administration:write`
- [Unarchive a company](https://developer.silverfin.com/reference/updatearchivedcompany.md): Unarchive a company.
Required scope(s): `administration:write`
- [List all client templates](https://developer.silverfin.com/reference/getclienttemplateslist.md): List all client templates.
Required scope(s): `administration:read`
- [Get content of an export file instance](https://developer.silverfin.com/reference/getexportfileinstancecontent.md): Get content of an export file instance.
Required scope(s): `financials:read`
- [List all export file instances](https://developer.silverfin.com/reference/getexportfileinstanceslist.md): List all export file instances.
Required scope(s): `financials:read`
- [Create a new export file instance](https://developer.silverfin.com/reference/createexportfileinstance.md): Export file instances are created based on a an export file through the export_file_id.
They are created asynchronously, so when you create an export file instance, you get back the id and the current state, which will be pending on the first request.
You can then poll the detail page of an export file instance until the state changes to created. When the state is created, you can fetch the content.
Required scope(s): `financials:write`
- [List all export files](https://developer.silverfin.com/reference/getexportfileslist.md): List all export files.
Required scope(s): `financials:read`
- [Get details of an export pdf instance](https://developer.silverfin.com/reference/getexportpdfinstancecontent.md): Get details of an export pdf instance.
Required scope(s): `financials:read`
- [Move an export pdf instance to the documents](https://developer.silverfin.com/reference/moveexportpdfinstancetodocuments.md): Move an export pdf instance to the documents.
Required scope(s): `financials:read`
- [List all export pdf instances](https://developer.silverfin.com/reference/getexportpdfinstanceslist.md): List all export pdf instances.
Required scope(s): `financials:read`
- [Create a new export pdf instance](https://developer.silverfin.com/reference/createexportpdfinstance.md): Export PDF instances are created based on a template passed through the export_pdf_id. They are created asynchronously, so when you create an export PDF instance, you get back the id and the current state, which will be pending on the first request. You can then poll the detail page of an export pdf instance until the state changes to created or error.
When the state is created, you will get a download_url that gives you a direct link to the actual pdf file (this url expires after some time).
Required scope(s): `financials:write`
- [List all export pdf styles](https://developer.silverfin.com/reference/getexportpdfslist.md): List all export pdf styles.
Required scope(s): `financials:read`
- [Get all custom parameters of an account for this period](https://developer.silverfin.com/reference/getaccountcustomproperties.md): Get all custom parameters of an account for this period.
Required scope(s): `financials:read`
- [Post a custom property to an account](https://developer.silverfin.com/reference/createaccountcustomproperties.md): Submit one or more custom properties by posting an array in properties containing objects with namespace, key and value.
Required scope(s): `financials:write`
- [Delete a custom property from an account](https://developer.silverfin.com/reference/deleteaccountcustomproperty.md): Removes a custom property from an account.
Required scope(s): `financials:write`
- [Get information about the account values for this period](https://developer.silverfin.com/reference/getaccountcontentbyperiodid.md): Get information about the account values for this period.
Required scope(s): `financials:read`
- [Adapt information for the account for this period](https://developer.silverfin.com/reference/updateaccountcontentbyperiodid.md): Currently the settings you can adapt on period are the account_reconciliation_template or the starred status. **account_reconciliation_template** When account_reconciliation_template is set, the account_reconciliation_template for this account for this period will be updated, as well as the account_reconciliation_template of the account itself (on a general level) and all account_reconciliation_templates for all periods for this account where no data is filled in. The template for periods where data is filled in will not be adapted.
**starred** When starred is set to true, the account will be starred in this period and all future periods. When starred is set to false, the account will be unstarred in this period.
Required scope(s): `financials:write`
- [List values of all accounts for this period](https://developer.silverfin.com/reference/getaccountsvaluesbyperiodid.md): List values of all accounts for this period.
Required scope(s): `financials:read`
- [Destroy an adjustment](https://developer.silverfin.com/reference/deleteadjustment.md): Destroy an adjustment.
Required scope(s): `financials:write`
- [Update an adjustment](https://developer.silverfin.com/reference/updateadjustment.md): Update an adjustment.
Required scope(s): `financials:write`
- [List all adjustments](https://developer.silverfin.com/reference/getadjustmentslist.md): List all adjustments.
Required scope(s): `financials:read`
- [Create a new adjustment](https://developer.silverfin.com/reference/createadjustment.md): Create a new adjustment.
Required scope(s): `financials:write`
- [List all analytical dimensions](https://developer.silverfin.com/reference/getanalyticaldimensionslist.md): List all analytical dimensions.
require scope(s): `financials:read`
- [List all balances](https://developer.silverfin.com/reference/getbalanceslist.md): List all balances.
Required scope(s): `financials:read`
- [Get all open transactions](https://developer.silverfin.com/reference/getopentransactions.md): This fetches all currently open transactions (payables & receivables) for a specific company.
Required scope(s): `financials:transactions:read`
- [Delete a period specific document.](https://developer.silverfin.com/reference/deleteperiodspecificdocument.md): The document will be removed in all accounts and reconciliations where it is currently attached.
Required scope(s): `financials:read`
- [Replace a period specific document.](https://developer.silverfin.com/reference/replaceperiodspecificdocument.md): The document will be replaced in all accounts and reconciliations it is currently attached.
The old document will not be accessible after this.
Required scope(s): `financials:read`
- [List all documents uploaded to templates.](https://developer.silverfin.com/reference/getperiodspecificdocumentslist.md): This will only show documents on reconciliations or accounts, if the document is on the period or company it will not appear here
Required scope(s): `financials:read`
- [Get all custom parameters of a permanent text](https://developer.silverfin.com/reference/getpermanenttextcustomproperties.md): Get all custom parameters of a permanent text.
Required scope(s): `financials:read`
- [Post a custom property to a permanent text](https://developer.silverfin.com/reference/createpermanenttextcustomproperties.md): Submit one or more custom properties by posting an array in properties containing objects with namespace, key and value. You can destroy an item by setting the value to nil when there are no documents attached.
Required scope(s): `financials:write`
- [Get detail of a permanent text for this period](https://developer.silverfin.com/reference/getpermanenttextcontent.md): Get detail of a permanent text for this period.
Required scope(s): `financials:read`
- [Update Permanent Text](https://developer.silverfin.com/reference/updatepermanenttext.md): Update Permanent Text.
Required scope(s): `financials:write`
- [Get all results of a permanent text for this period](https://developer.silverfin.com/reference/getpermanenttextresults.md): Get all results of a permanent text for this period.
Required scope(s): `financials:read`
- [Get all sign markers in a permanent text for this period](https://developer.silverfin.com/reference/getpermanenttextsignmarkers.md): Get all sign markers in a permanent text for this period.
Required scope(s): `financials:read`
- [List all permanent texts](https://developer.silverfin.com/reference/getpermanenttextslist.md): List all permanent texts.
Required scope(s): `financials:read`
- [Create a permanent text](https://developer.silverfin.com/reference/createpermanenttext.md): To create a permanent text you need to supply firm permanent text id as from_template_id.
Required scope(s): `financials:write`
- [Delete a custom property from a reconciliation](https://developer.silverfin.com/reference/deletereconciliationtextcustomproperty.md): Delete a custom property from a reconciliation.
Required scope(s): `financials:write`
- [Get all custom parameters of a reconciliation for this period](https://developer.silverfin.com/reference/getreconciliationtextcustomproperties.md): Get all custom parameters of a reconciliation for this period.
Required scope(s): `financials:read`
- [Post a custom property to a reconciliation](https://developer.silverfin.com/reference/createreconciliationtextcustomproperties.md): You can either submit one custom property by posting a namespace, key and value, or you can submit a bunch by submitting an array in properties containing objects with namespace, key and value. You can destroy an item by setting the value to nil when there are no documents attached.
Required scope(s): `financials:write`
- [Get detail of a reconciliation text for this period](https://developer.silverfin.com/reference/getreconciliationtextcontent.md): Get detail of a reconciliation text for this period.
Required scope(s): `financials:read`
- [Update the starring status of a reconciliation for this period](https://developer.silverfin.com/reference/updatereconciliationtextstarringstatus.md): When starred is set to true, the reconciliation will be starred in this period and all future periods. When starred is set to false, the reconciliation will be unstarred in this period.
Required scope(s): `financials:write`
- [Get all results of a reconciliation for this period](https://developer.silverfin.com/reference/getreconciliationtextresults.md): Get all results of a reconciliation for this period.
Required scope(s): `financials:read`
- [Get all sign markers in a reconciliation text for this period](https://developer.silverfin.com/reference/getreconciliationtextsignmarkers.md): Get all sign markers in a reconciliation text for this period.
Required scope(s): `financials:read`
- [List all reconciliations](https://developer.silverfin.com/reference/getreconciliationtexts.md): Please note: only the starred field in each reconciliation of the response is period-specific and may vary across periods.
requied scope(s): `financials:read`
- [List all results in a specific report](https://developer.silverfin.com/reference/get_api-v4-f-firm-id-companies-company-id-periods-period-id-reports-report-id-results.md): List all results in a specific report.
Required scope(s): `financials:read`
- [List all reports for a specific period](https://developer.silverfin.com/reference/getreportslist.md): List all reports for a specific period.
Required scope(s): `financials:read`
- [Get all results of an account for this period](https://developer.silverfin.com/reference/getaccountresults.md): Get all results of an account for this period.
Required scope(s): `financials:read`
- [List all companies in a group](https://developer.silverfin.com/reference/getcompaniesfromgrouplist.md): List all companies in a group.
Required scope(s): `administration:read`
- [Add a company to a group by id](https://developer.silverfin.com/reference/addcompanytogroupbyid.md): Add a company to a group by id.
Required scope(s): `administration:write`
- [Delete a company from a group by id](https://developer.silverfin.com/reference/deletecompanyfromgroupbyid.md): Delete a company from a group by id.
Required scope(s): `administration:write`
- [Delete a group](https://developer.silverfin.com/reference/deletegroup.md): Delete a group.
Required scope(s): `administration:write`
- [Delete a user from a group by id](https://developer.silverfin.com/reference/deleteuserfromgroupbyid.md): Delete a user from a group by id.
Required scope(s): `administration:read`
- [List all users in a group](https://developer.silverfin.com/reference/getusersfromgrouplist.md): List all users in a group.
Required scope(s): `administration:read`
- [Add a user to a group by id](https://developer.silverfin.com/reference/addusertogroupbyid.md): Add a user to a group by id. Only contributors, not external users, can be added to groups.
Required scope(s): `administration:write`
- [List all groups](https://developer.silverfin.com/reference/getgroupslist.md): List all groups.
Required scope(s): `administration:read`
- [Create a group](https://developer.silverfin.com/reference/creategroup.md): Create a group.
Required scope(s): `administration:write`
- [Run an Insights segment](https://developer.silverfin.com/reference/runinsightssegment.md): Runs the segment for the authenticated user and returns immediately with a run reference and its status; it does not wait for the segment run to finish. The run only covers the companies the token's user can access in Silverfin, and never changes the segment's definition. If a run of this segment is already in progress, no new run is started: the response describes that pending run: the pending payload documented on `GET /segments/{id}/results`, without its `message`. Poll that endpoint until it finishes. Otherwise a new execution is created (a 202) and any previously generated results are discarded. A firm can have a limited number of runs in progress at the same time; further requests are rejected with a 409 until a run finishes. Runs started from the Silverfin UI count towards that limit. Only the firm's own segments can be run through the API; recommended segments cannot. This endpoint exists in API v4 only; on the deprecated v3 API it returns a 404. This endpoint requires a user OAuth token and Insights Premium.
Required scope: `insights:write`
- [Fetch the results of the latest run of an Insights segment](https://developer.silverfin.com/reference/getinsightssegmentresults.md): Returns the results of the authenticated user's latest run of the segment for the companies that user can access in Silverfin. This endpoint never starts a segment run. While a run is in progress a 202 with its progress is returned; the previous run's results are never served as current. When no generated results exist (or they expired), the response will return a 404 status code. You can start a new run via `POST /segments/{id}/runs`. ### The pending payload While the run is in progress, the 202 response indicates current progress instead of results: ```json { "status": "pending", "request_ref": "9f8c0a2e-1d3b-4f5a-8c7e-2b6d4a1f0e93", "started_at": "2026-08-04T09:12:44.000+02:00", "finished_at": null, "progress": { "processed_companies": 128 }, "message": "The segment run is not ready yet. Poll this endpoint until it finishes." } ``` | field | description | | ----- | ----------- | | **status** | always `pending` here; `pending` and `finished` are the only values this field ever takes | **request_ref** | reference of the pending run | **started_at** | when the run was created (ISO 8601) | **finished_at** | always `null` while the run is pending | **progress** | `processed_companies`: how many companies the run has processed so far. Informational only: a run with slow filters evaluates companies in two passes and can count a company in both, so it is not a fraction of a known total | **message** | a human-readable hint; only this endpoint's 202 carries it `POST /segments/{id}/runs` answers with this same payload (without `message`) whenever it reports a pending run. ### The finished payload A finished run of a segment with two columns, one client file matching: ```json { "status": "finished", "request_ref": "9f8c0a2e-1d3b-4f5a-8c7e-2b6d4a1f0e93", "started_at": "2026-08-04T09:12:44.000+02:00", "finished_at": "2026-08-04T09:13:07.000+02:00", "period_selection": { "type": "financial_year", "date": "2025-12-31" }, "columns": [ { "uuid": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "type": "BookyearEnd", "name": "Book year end", "settings": { "comparison_mode": "exactly", "end_date": "2025-12-31" } }, { "uuid": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e", "type": "Todos", "name": "To-dos", "settings": { "status": "open" } } ], "matches": [ { "company_id": 918273, "company_name": "Acme NV", "period_id": 5544332, "period_end_date": "2025-12-31", "values": { "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d": { "formatted_value": "31/12/2025", "sort_value": "2025-12-31" }, "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e": { "formatted_value": { "status": "partially_done", "completed": 3, "total": 7 }, "sort_value": 4 } } } ], "pagination": { "page": 1, "per_page": 200, "total_matches": 128, "total_pages": 1 }, "non_match_count": 41 } ``` ### Envelope | field | description | | ----- | ----------- | | **status** | `finished` for a results payload, `pending` on the pending payload above; these are the only two values | **request_ref** | reference of the run the results come from | **started_at** | when the run was created (ISO 8601) | **finished_at** | when the segment run finished (ISO 8601) | **period_selection** | How the run picked each company's period:
- financial_year or accounting_period: includes date, which can be null
- active_period or completed_period: includes locking_type, either locked or permanently_locked
- A segment saved without a period selection reports the applied default: financial_year with a null date
| **columns** | one entry per column of the run, in column order | **matches** | the companies that matched, one page at a time, ordered by company name | **pagination** | `page`, `per_page`, `total_matches`, `total_pages`; the `Total` and `Per-Page` response headers carry the same totals | **non_match_count** | how many of your accessible companies did not match Timestamps are ISO 8601 with the server's UTC offset (e.g. `+02:00`). ### columns | field | description | | ----- | ----------- | | **uuid** | the key this column's value appears under in each match's `values` | **type** | the filter type, e.g. `WorkflowProgress` (see [values by filter type](#values-by-filter-type)) | **name** | the column's display name, in the profile language of the user the run belongs to; an empty string for a column that was never named | **settings** | the filter's configuration: what the column filters on `type`, `name` and `settings` are all `null` on the rare run column that no longer maps to one of the segment's filters. **`uuid` is not an identifier, and must not be treated as stable.** Its only job is to tie a column to its values inside one response. It is stored with the run, so fetching the same finished run again returns the same uuids, but that is a consequence of reading one cached result twice, not a guarantee. A new run generates new ones, and the same column then comes back under a different `uuid`. So read `columns` from the same payload you read `matches` from and correlate through it, rather than persisting a uuid or comparing uuids across responses. `columns` follows the segment's filter order if you need to recognise a column from one run to the next; `type` repeats when a segment has two columns of the same kind, and `name` follows the run user's language. ### columns.settings Each `columns` item contains `settings`, which carries the filter's configuration as Silverfin stores it, so you can tell what a column actually filtered on. Its keys depend on the column's `type`, and it mirrors internal configuration rather than a payload designed for the API: treat it as informational, expect keys you do not recognise, and do not rely on any single key being present. Most types share a small vocabulary: - `comparison_mode`: how the column matched, on all but a couple of types. One of `equal`, `not_equal`, `less_than`, `greater_than`, `less_than_or_equal`, `greater_than_or_equal`, `contains`, `exactly`, `is`, `is not`, `true`, `false`, `up to status`, `from status`, `current-user`, `user`, `show-all`, plus `partially_starred` on `TemplateStarring` columns. Match these exactly: the values are not uniformly formatted, and some carry a space or a hyphen rather than an underscore - `comparison_value`: the value matched against, for the modes that need one - `filter_data_type`: which attribute the column reads, on the types that cover several (`CompanyData`, `SubmissionData`) - `filter_data_value`: the selected value the column matched on Some types point at other Silverfin records, which you can resolve through the corresponding API resources: - `firm_workflow_id`: the workflow the column reports on. Absent or `null` means each client file's own default workflow (except on `WorkflowUsage`, which always names a specific workflow) - `reconciliation_text_id`: the reconciliation template - `account_detail_template_id`: the account detail template (`TemplateStarring`) - `workflow_status_id`: the workflow status (`WorkflowStatus`) **Partner references.** A segment created from a recommended (partner) template holds firm-agnostic references, which are translated to your firm's ids before the response is built, so you normally see the firm keys above. When your firm has not imported the referenced template the partner reference survives instead (`partner_workflow_id`, `partner_reconciliation_text_id` or `partner_account_detail_template_id`), usually alongside a matching `..._name` key carrying the template's name so the column can still be labelled. ### matches | field | description | | ----- | ----------- | | **company_id** | id of the client file | **company_name** | name of the client file | **period_id** | id of the period the run evaluated for this company | **period_end_date** | end date of that period (ISO 8601) | **values** | an object keyed by column `uuid` Every entry of `values` carries `formatted_value` and `sort_value` (plus `filter_error` when the value errored), and is `null` when the run holds no value for that column: | field | description | | ----- | ----------- | | **formatted_value** | the value as Silverfin displays it; see [values by filter type](#values-by-filter-type) | **sort_value** | a sortable representation of the same value | **filter_error** | only present when the filter could not be evaluated for this company; the message says why, and `formatted_value` and `sort_value` then repeat that message instead of a value **`formatted_value` is display output, not data.** It is built for the Silverfin interface and translated into the profile language of the user the run belongs to, like `columns[].name`; the `Accept-Language` header does not affect it. It carries display formatting (`"Archived - 45%"`, `"Shared on 04/08/2026"`, thousands separators). Do not parse it: its wording can change with an interface change. Use `sort_value`, or the object fields below, when you need a stable value. Object-shaped values can gain fields in a later version, so ignore fields you do not know. ### Values by filter type | type | formatted_value | sort_value |
| BookyearEnd | Book year end as dd/mm/yyyy | The same date in ISO 8601 format |
| {
"formatted_value": "31/12/2025",
"sort_value": "2025-12-31"
}
|
| CompanyData | Depends on settings.filter_data_type: a template, sync entity or mapping list name; mm/yyyy for a date; a translated label for reporting frequency, client type and staff visibility; or the stored attribute for plain columns | Usually the same string; reporting frequency is numeric periods per year, creation date is an ISO 8601 timestamp, and last period is an ISO 8601 date |
| {
"formatted_value": "Limited company",
"sort_value": "Limited company"
}
|
| CompanyGroups | Visible groups, comma separated; an empty string when none | The same string |
| {
"formatted_value": "Retail, Flanders",
"sort_value": "Retail, Flanders"
}
|
| FollowCompanies | Follower names, comma separated in show-all mode and a single name in user or current-user mode; null in show-all mode when nobody follows | The same string or null |
| {
"formatted_value": "Marie Dubois, Jan Peeters",
"sort_value": "Marie Dubois, Jan Peeters"
}
|
| Formula | Currency-formatted result; null for personal client files | Decimal string, including for personal client files |
| {
"formatted_value": "1.284.500,00",
"sort_value": "1284500.0"
}
|
| PeriodLocked | Object described in PeriodLocked shape | The status string |
| PreparationAndReview | One of the objects described in PreparationAndReview shapes | Completion percentage for a workflow, an ISO 8601 timestamp for one template, or null |
| ReconciliationResult | A translated Yes/No, dd/mm/yyyy date, currency-formatted number or stored text; a missing value is an empty string, or "0,00" in numeric comparison mode | ISO 8601 date, decimal string for numeric modes, or string |
| {
"formatted_value": "12.500,00",
"sort_value": "12500.0"
}
|
| SubmissionData | Due date as dd/mm/yyyy, or title-cased submission status | ISO 8601 due date, or one of due, overdue, failed, pending, accepted and rejected |
| {
"formatted_value": "30/09/2026",
"sort_value": "2026-09-30"
}
{
"formatted_value": "Accepted",
"sort_value": "accepted"
}
|
| SyncsInformation | String, null, or a sync-status object described in SyncsInformation shapes | The string or status |
| TemplateStarring | Accounts object, reconciliation object, or an empty string when the column does not apply | Starred count or flag; see TemplateStarring shapes |
| Todos | Object described in Todos shape | Number of open to-dos |
| WorkflowProgress | Percentage, optionally prefixed with translated "Archived"; "n/a" when there is no progress; empty string when there is no workflow | Number from 0 to 100, or null for the no-progress and no-workflow cases |
| {
"formatted_value": "45%",
"sort_value": 45
}
|
| WorkflowSharingStatus | Translated "Shared on dd/mm/yyyy", or "Not shared" | ISO 8601 share timestamp, or null |
| {
"formatted_value": "Shared on 04/08/2026",
"sort_value": "2026-08-04T08:31:00+02:00"
}
|
| WorkflowStatus | Workflow status name, or null | The same string or null |
| {
"formatted_value": "In progress",
"sort_value": "In progress"
}
|
| WorkflowUsage | Translated Yes/No, "Yes" with a translated "default" suffix for the default workflow, or translated "Archived" | The same string |
| {
"formatted_value": "Yes",
"sort_value": "Yes"
}
|
A current-user FollowCompanies column resolves against the user who ran the segment. For an API-started run, this is the token's user.
### PeriodLocked shape Always an object except for the `filter_error` case. | field | possible values | description |
| status | not_locked, locked, permanently_locked | Lock state; also used as sort_value |
| "locked"
|
| locked_at | ISO 8601 timestamp or null | When the period was locked; null while unlocked |
| "2026-02-14T10:22:31+01:00"
|
| locked_by_name | String or null | Who locked it; null while unlocked or when a lock has no recorded author |
| "Marie Dubois"
|
### PreparationAndReview shapes Branch on the key present in `formatted_value`. | shape | fields and possible values | sort_value |
| Nothing to report | no_data is always true and is the only key | null |
| {
"formatted_value": {
"no_data": true
},
"sort_value": null
}
|
| Workflow preparation | label is preparation_not_started, partially_prepared or prepared; prepared_count and total_count are numbers; users contains name and user_id | prepared_count as a percentage of total_count, rounded down |
| {
"formatted_value": {
"label": "partially_prepared",
"prepared_count": 4,
"total_count": 9,
"users": [
{
"name": "Jan Peeters",
"user_id": 3312
}
]
},
"sort_value": 44
}
|
| Workflow review | label is review_not_started, partially_reviewed or reviewed; reviewed_count excludes invalidated reviews; users contains only reviews that still stand | reviewed_count as a percentage of total_count, rounded down |
| {
"formatted_value": {
"label": "partially_reviewed",
"reviewed_count": 2,
"total_count": 8,
"users": [
{
"name": "Marie Dubois",
"user_id": 4471
}
]
},
"sort_value": 25
}
|
| One template, preparation | preparation contains name, user_id and time, or is null when nobody prepared the template | Preparation time, or null |
| {
"formatted_value": {
"preparation": {
"name": "Jan Peeters",
"user_id": 3312,
"time": "2026-07-21T14:03:11.000+02:00"
}
},
"sort_value": "2026-07-21T14:03:11+02:00"
}
{
"formatted_value": {
"preparation": null
},
"sort_value": null
}
|
| One template, review | reviews contains name, user_id, time and outdated_at; the run user's review comes first, followed by oldest to newest; invalidated reviews remain; an empty array means nobody reviewed | Most recent review time including outdated reviews, or null for an empty array |
| {
"formatted_value": {
"reviews": [
{
"name": "Marie Dubois",
"user_id": 4471,
"time": "2026-07-22T08:15:40.000+02:00",
"outdated_at": null
}
]
},
"sort_value": "2026-07-22T08:15:40+02:00"
}
|
Workflow `users` array order is not significant.
### SyncsInformation shapes `settings.scope_type` selects the shape. `settings.category` selects the bookkeeping or administration connection; null or absent means bookkeeping. | scope_type | formatted_value | sort_value |
| sync_name | Sync name, or null with no connection | The same string or null |
| {
"formatted_value": "Exact Online",
"sort_value": "Exact Online"
}
|
| sync_type | Sync type, or null with no connection | The same string or null |
| {
"formatted_value": "ExactOnline",
"sort_value": "ExactOnline"
}
|
| sync_reference | Client name with its reference in brackets, bare reference when the name cannot be resolved, or null with no connection | The same string or null |
| {
"formatted_value": "Acme NV (ACME001)",
"sort_value": "Acme NV (ACME001)"
}
|
| sync_status | Object whose fields depend on status | The status |
| {
"formatted_value": {
"status": "failed",
"timestamp": "2026-08-03T22:05:12+02:00",
"error_message": "An error has occurred."
},
"sort_value": "failed"
}
|
| status | timestamp | error_message | meaning | | ------ | --------- | ------------- | ------- | | **synchronised** | Present | Absent | Last sync completed | | **failed** | Present | Present, but can be null | Last sync faulted | | **canceled** | Present | Absent | Last sync was cancelled | | **in_progress** | Absent | Absent | Sync is running or queued | | **not_synchronised** | Absent | Absent | No sync connection | | **no_sync_data** | Absent | Absent | Connected, but nothing has synced yet | `error_message` is readable interface text rather than raw internals. It can contain simple HTML markup such as ``.
### TemplateStarring shapes | kind | formatted_value fields | sort_value |
| accounts | status is starred, partially_starred or not_starred; starred_count and total_count are numbers | Starred count |
| {
"formatted_value": {
"kind": "accounts",
"status": "partially_starred",
"starred_count": 2,
"total_count": 5
},
"sort_value": 2
}
|
| reconciliation | starred is true or false | 1 when starred, 0 otherwise |
| {
"formatted_value": {
"kind": "reconciliation",
"starred": true
},
"sort_value": 1
}
|
| Not applicable | Empty string when no period accounts belong to the account detail template, or the client file has no such reconciliation | -1 for accounts, 0 for reconciliation |
| {
"formatted_value": "",
"sort_value": -1
}
|
### Todos shape Always an object except for the `filter_error` case. | field | possible values | description |
| status | not_done, partially_done, done, null | Completion state; null when the period has no to-dos |
| "partially_done"
|
| completed | Number | How many to-dos are done |
| 3
|
| total | Number | How many to-dos there are |
| 7
|
`sort_value` is the number of open to-dos, `total` minus `completed`. This endpoint exists in API v4 only; on the deprecated v3 API it returns a 404. This endpoint requires a user OAuth token and Insights Premium.
Required scope: `insights:read`
- [Upload document for live document in export pdf instance](https://developer.silverfin.com/reference/createliveexportdocumentinexportpdfinstance.md): Upload document for live document in export pdf instance.
Required scope(s): `administration:write`
- [List all live export documents](https://developer.silverfin.com/reference/getliveexportdocumentslist.md): List all live export documents.
Required scope(s): `administration:read`
- [Add a new live export document](https://developer.silverfin.com/reference/createliveexportdocument.md): Add a new live export document.
Required scope(s): `administration:write`
- [Get a live export document](https://developer.silverfin.com/reference/getliveexportdocument.md): Get a live export document.
Required scope(s): `administration:read`
- [Update a live export document](https://developer.silverfin.com/reference/updateliveexportdocument.md): Update a live export document.
Required scope(s): `administration:write`
- [Get custom period parameters](https://developer.silverfin.com/reference/getperiodcustomproperties.md): Get custom period parameters.
Required scope(s): `administration:read`
- [Post a custom property to a period](https://developer.silverfin.com/reference/createperiodcustomproperties.md): Submit one or more custom properties by posting an array in properties containing objects with namespace, key and value.
Required scope(s): `administration:write`
- [Get information about a single period](https://developer.silverfin.com/reference/getperioddetails.md): Get information about a single period.
Required scope(s): `communication:read, financials:read`
- [Updates which periods should be public](https://developer.silverfin.com/reference/updateperiodspublicflag.md): Pass the end date of a known period to mark that period AND all the previous periods as public. The date must be the end date of an existing period. All periods that start after this date will become private for external users.
Required scope(s): `administration:write`
- [List all periods of a company](https://developer.silverfin.com/reference/getperiods.md): List all periods of a company.
Required scope(s): `communication:read, financials:read`
- [Add a period](https://developer.silverfin.com/reference/createperiod.md): Add a period.
Required scope(s): `financials:read, financials:write`
- [Destroy a permanent document](https://developer.silverfin.com/reference/deletepermanentdocument.md): Destroy a permanent document.
Required scope(s): `permanent_documents:write`
- [Get details for a single permanent document](https://developer.silverfin.com/reference/getpermanentdocumentcontent.md): Get details for a single permanent document (including expiring download url when there is an attachment).
Required scope(s): `permanent_documents:read`
- [Update a permanent document](https://developer.silverfin.com/reference/updatepermanentdocument.md): Update a permanent document.
Required scope(s): `permanent_documents:write`
- [Create a permanent document](https://developer.silverfin.com/reference/createpermanentdocument.md): Required scope(s): `permanent_documents:write`
- [Destroy a permanent folder](https://developer.silverfin.com/reference/deletepermanentfolder.md): Destroy a permanent folder.
Required scope(s): `permanent_documents:write`
- [Get content of permanent folder](https://developer.silverfin.com/reference/getpermanentfoldercontent.md): Get content of permanent folder.
Required scope(s): `permanent_documents:read`
- [Update a permanent folder](https://developer.silverfin.com/reference/updatepermanentfolder.md): Update a permanent folder.
Creating or updating a permanent folder with a duplicate name will no longer create a new folder with numerical suffix, e.g. "Folder (1)", but instead yield a 422 error code.
Required scope(s): `permanent_documents:write`
- [Create a permanent folder](https://developer.silverfin.com/reference/createpermanentfolder.md): Create a permanent folder.
Creating or moving a permanent folder with a duplicate name will no longer create a new folder with numerical suffix, e.g. "Folder (1)", but instead yield a 422 error code.
Required scope(s): `permanent_documents:write`
- [Delete a permanent mail](https://developer.silverfin.com/reference/deletepermanentmail.md): Delete a permanent mail.
Required scope(s): `permanent_documents:write`
- [Move permanent mail](https://developer.silverfin.com/reference/movepermanentmail.md): Move permanent mail.
Required scope(s): `permanent_documents:write`
- [List all comments for a specific remark](https://developer.silverfin.com/reference/getcommentslistfromremark.md): List all comments for a specific remark.
Required scope(s): `communication:read`
- [Post a new comment to a specific remark](https://developer.silverfin.com/reference/createcomment.md): Post a new comment to a specific remark.
Required scope(s): `communication:write`
- [Flag a remark as done or undone](https://developer.silverfin.com/reference/updateremarkflag.md): Flag a remark as done or undone.
Required scope(s): `communication:write`
- [Delete a remark](https://developer.silverfin.com/reference/deleteremark.md): Delete a remark.
Required scope(s):`communication:write`
- [List all remarks in a specific period](https://developer.silverfin.com/reference/getremarkslist.md): List all remarks in a specific period.
Required scope(s): `communication:read`
- [Create a new remark in a period](https://developer.silverfin.com/reference/createremark.md): Create a new remark in a period.
Required scope(s): `communication:write`
- [Remove an account template](https://developer.silverfin.com/reference/deleteaccounttemplate.md): Remove an account template.
Required scope(s): `administration:write`
- [Show all properties of a certain account template](https://developer.silverfin.com/reference/getaccounttemplatecontent.md): Show all properties of a certain account template.
Required scope(s): `administration:read`
- [Update an existing account template](https://developer.silverfin.com/reference/updateaccounttemplate.md): Update an existing account template.
Required scope(s): `administration:write`
- [List all account templates in this firm](https://developer.silverfin.com/reference/getaccounttemplateslist.md): List all account templates in this firm.
Required scope(s): `administration:read`
- [Create a new account template](https://developer.silverfin.com/reference/createaccounttemplate.md): Create a new account template.
Required scope(s): `administration:write`
- [List all existing export file templates](https://developer.silverfin.com/reference/getexportfiletemplateslist.md): List all existing export file templates.
Required scope(s): `administration:read`
- [Create a new export file template](https://developer.silverfin.com/reference/createexportfiletemplate.md): Create a new export file template.
Required scope(s): `administration:write`
- [Get details of an export file template](https://developer.silverfin.com/reference/getexportfiletemplatecontent.md): Get details of an export file template.
Required scope(s): `administration:read`
- [Update an existing export file template](https://developer.silverfin.com/reference/updateexportfiletemplate.md): Update an existing export file template.
Required scope(s): `administration:write`
- [Delete an export file template](https://developer.silverfin.com/reference/deleteexportfiletemplate.md): Delete an export file template.
Required scope(s): `administration:write`
- [List all permanent texts active in this firm](https://developer.silverfin.com/reference/getpermanenttexttemplatelist.md): List all permanent texts active in this firm.
Required scopes: `administration:read`
- [List all existing export pdf styles](https://developer.silverfin.com/reference/getexportpdftemplateslist.md): List all existing export pdf styles.
Required scope(s): `administration:read`
- [Get details of a reconciliation template](https://developer.silverfin.com/reference/getreconciliationtexttemplatecontent.md): Get details of a reconciliation template.
Required scope(s): `administration:read`
- [Update a reconciliation template](https://developer.silverfin.com/reference/updatereconciliationtexttemplate.md): Update a reconciliation template.
Required scope(s): `administration:write`
- [Remove a reconciliation template](https://developer.silverfin.com/reference/deletereconciliationtexttemplate.md): Remove a reconciliation template.
Required scope(s): `administration:write`
- [List all reconciliations active in this firm](https://developer.silverfin.com/reference/getreconciliationtexttemplatelist.md): List all reconciliations active in this firm.
Required scope(s): `administration:read`
- [Create a new reconciliation](https://developer.silverfin.com/reference/createreconciliationtexttemplate.md): Create a new reconciliation.
Required scope(s): `administration:write`
- [Initiate a liquid test run](https://developer.silverfin.com/reference/createliquidtestrun.md): Initiate a liquid test run.
Required scope(s): `administration:write`
- [Check results of a liquid test run](https://developer.silverfin.com/reference/getreconciliationtexttemplateliquidtestrun.md): Check results of a liquid test run.
Required scope(s): `administration:write`
- [Lint Liquid code](https://developer.silverfin.com/reference/lintliquidcode.md): Lint liquid code.
Required scope(s):`administration:write`
- [Remove a shared part from an account template](https://developer.silverfin.com/reference/deletesharedpartfromaccounttemplate.md): Remove a shared part from an account template.
Required scope(s): `administration:write`
- [Add a shared part to an account template](https://developer.silverfin.com/reference/addsharedparttoaccounttemplate.md): Add a shared part to an account template.
Required scope(s): `administration:write`
- [Remove a shared part from an export file](https://developer.silverfin.com/reference/deletesharedpartfromexportfiletemplate.md): Remove a shared part from an export file.
Required scope(s): `administration:write`
- [Add a shared part to an export file](https://developer.silverfin.com/reference/addsharedparttoexportfiletemplate.md): Add a shared part to an export file.
Required scope(s): `administration:write`
- [Remove a shared part from a reconciliation](https://developer.silverfin.com/reference/deletesharedpartfromreconciliationtexttemplate.md): Remove a shared part from a reconciliation.
Required scope(s): `administration:write`
- [Add a shared part to a reconciliation](https://developer.silverfin.com/reference/addsharedparttoreconciliationtexttemplate.md): Add a shared part to a reconciliation.
Required scope(s):`administration:write`
- [Delete a shared part](https://developer.silverfin.com/reference/deletesharedpart.md): Delete a shared part.
Required scope(s): `administration:write`
- [Get detail of a shared part](https://developer.silverfin.com/reference/getsharedpartcontent.md): Get detail of a shared part.
Required scope(s): `administration:read`
- [Update a shared part](https://developer.silverfin.com/reference/updatesharedpart.md): Update a shared part.
Required scope(s): `administration:write`
- [List all shared parts](https://developer.silverfin.com/reference/getsharedpartslist.md): List all shared parts.
Required scope(s): `administration:read`
- [Add a shared part](https://developer.silverfin.com/reference/createsharedpart.md): Add a shared part.
Required scope(s): `administration:write`
- [Returns current user information](https://developer.silverfin.com/reference/getcurrentuserdetails.md): Returns current user information.
Required scope(s):`user:profile`
- [Returns current user email](https://developer.silverfin.com/reference/getcurrentuseremail.md): Returns current user email.
Required scope(s): `user:email`
- [Get details on the firm of the user](https://developer.silverfin.com/reference/getcurrentuserfirm.md): Get details on the firm of the user.
Required scope(s): none
- [Activate an inactive user](https://developer.silverfin.com/reference/updateinactiveuser.md): Activate an inactive user.
Required scope(s): `administration:write`
- [List all companies a user has access to](https://developer.silverfin.com/reference/getusercompanieslist.md): List all companies a user has access to.
Required scope(s): `administration:read`
- [Add a company to a user by id](https://developer.silverfin.com/reference/addcompanytouserbyid.md): Add a company to a user by id.
Required scope(s): `administration:write`
- [Remove a company from a user by id](https://developer.silverfin.com/reference/deletecompanyfromuserbyid.md): Remove a company from a user by id.
Required scope(s): `administration:write`
- [Put a user to inactive](https://developer.silverfin.com/reference/deleteuser.md): Put a user to inactive.
Required scope(s): `administration:write`
- [Update a user](https://developer.silverfin.com/reference/updateuser.md): Update a user.
Required scope(s): `administration:write`
- [List all active users](https://developer.silverfin.com/reference/getactiveuserslist.md): List all active users.
Required scope(s): `administration:read`
- [Add a user](https://developer.silverfin.com/reference/createuser.md): Add a user.
Required scope(s): `administration:write`
- [List all inactive users](https://developer.silverfin.com/reference/getinactiveuserslist.md): List all inactive users.
Required scope(s): `administration:read`
- [Destroy a webhook](https://developer.silverfin.com/reference/deletewebhook.md): Destroy a webhook.
Required scope(s): `webhooks`
- [List all company webhooks](https://developer.silverfin.com/reference/getwebhookslist.md): List all company webhooks.
Required scope(s): `webhooks`
- [Register a webhook.](https://developer.silverfin.com/reference/createwebhook.md): Required scope(s): `webhooks`
- [Add a FirmWorkflow into the company](https://developer.silverfin.com/reference/addfirmworkflowtocompany.md): Add a FirmWorkflow into the company. The FirmWorkflow must be identified either by supplying its ID, or its PartnerWorkflow ID.
Required scope(s): `workflows:write`
- [List all active (non-archived) FirmWorkflows in this Firm](https://developer.silverfin.com/reference/getactivefirmworkflowslist.md): List all active (non-archived) FirmWorkflows in this Firm.
Required scope(s): `administration:read`
- [Archive a workflow](https://developer.silverfin.com/reference/archiveworkflow.md): Archive a workflow.
Required scope(s): `workflows:write`
- [Reactivate a workflow](https://developer.silverfin.com/reference/updateinactiveworkflow.md): Reactivate a workflow.
Required scope(s): `workflows:write`
- [List all reconciliations in a workflow](https://developer.silverfin.com/reference/getworkflowreconciliationtextslist.md): List all reconciliations in a workflow.
Required scope(s): `financials:read`
- [Get workflow status](https://developer.silverfin.com/reference/getworkflowstatus.md): Get workflow status.
Required scope(s): `workflows:read`
- [List all workflows in a specific period](https://developer.silverfin.com/reference/getperiodworkflowslist.md): List all workflows in a specific period.
Required scope(s): `workflows:read`
- [Attach a document to PIT workflow](https://developer.silverfin.com/reference/attachpersonalincometaxdocument.md): Attach a PDF document to the PIT workflow for the specified year.
Required scope(s): `financials:write`
- [Update PIT metadata](https://developer.silverfin.com/reference/updatepersonalincometaxmetadata.md): Update metadata for a PIT file for a given year.
Currently available metadata: deadline_date
Required scope(s): `financials:write`
- [Get PIT questionnaire data](https://developer.silverfin.com/reference/getpersonalincometaxquestionnaire.md): Get data from PIT questionnaire for the specified year.
Required scope(s): `financials:read`
- [Submit PIT questionnaire data](https://developer.silverfin.com/reference/createpersonalincometaxquestionnaire.md): Post data to PIT via questionnaire.
**WARNING:** Each request REPLACES ALL previously submitted questionnaire data for the specified year. Any fields not included in the request will be deleted.
Required scope(s): `financials:write`
- [Submit PIT data from TaxOnWeb](https://developer.silverfin.com/reference/createpersonalincometaxtaxonweb.md): Post data to PIT from TaxOnWeb.
**WARNING:** Each request REPLACES ALL previously submitted TaxOnWeb data for the specified year. Any fields not included in the request will be deleted.
Required scope(s): `financials:write`
- [Get Started with the SyncAPI](https://developer.silverfin.com/reference/get-started-with-the-syncapi.md): This part of the documentation is about our SyncAPI to create a synchronisation between your bookkeeping software and Silverfin. More information about our general Silverfin API: check out our documentation [here](https://developer.silverfin.com/reference/get-started-1).
- [Silverfin Terms Dictionary](https://developer.silverfin.com/reference/silverfin-glossary-definitions.md): This page provides a comprehensive dictionary of key terms and definitions used within the Silverfin platform. Each term is explained clearly, with examples where applicable, to help users better understand the terminology.
- [The customer Flow in Silverfin](https://developer.silverfin.com/reference/the-customer-flow-in-silverfin.md): A guide to the process our customers need to follow to set up a connection between your bookkeeping system and Silverfin as a "3rd party" connection.
- [API usage limits](https://developer.silverfin.com/reference/api-limits.md)
- [Opening Balances and Retained Earnings](https://developer.silverfin.com/reference/opening-balances-and-retained-earnings.md)
- [OAuth application SyncAPI scopes](https://developer.silverfin.com/reference/oauth-application-scopes-syncapi.md): For further improving security, you can limit your OAuth application to only be enabled to access data within certain scopes.
- [Authentication](https://developer.silverfin.com/reference/authentication-syncapi.md)
- [Access Token & Refresh Token](https://developer.silverfin.com/reference/post_f-firm-id-oauth-token-1.md): Perform a POST request to /oauth/token with parameters client_id, client_secret, code, redirect_uri and grant_type=authorization_code. After following these steps, you will have an access token and a refresh token. The access token is valid for 2 hours, while the refresh token currently remains valid for 60 days.
With the refresh token, you can request a new access token / refresh token pair: Perform a POST request to /oauth/token with parameters: client_id, client_secret, refresh_token, redirect_uri and grant_type=refresh_token. Each refresh token can be used only once. As soon as the new access token is used to access the API for the first time, the previous refresh token will be revoked.
- [Authorize](https://developer.silverfin.com/reference/authorizeuser-1.md): Generates an OAuth authorization URL that redirects users to authenticate and authorize your application. Use this URL to initiate the OAuth flow by redirecting users to the authorization page. The URL must be opened in a new tab or window.
- [Update Sync References](https://developer.silverfin.com/reference/setsyncreferences.md): Updates the sync references for the current application. This allows users to configure a company for synchronization with a third-party service by selecting the appropriate references. Required scope(s): `financials:transactions:sync`
- [Get Overview and Transaction Limits](https://developer.silverfin.com/reference/getsyncsettings.md): Returns various settings related to the Silverfin platform, such as the maximum number of supported analytical dimensions per transaction, supported locales for account names and the maximum amount of actions that can be submitted per request. Required scope(s): `financials:transactions:sync`
- [Get Syncable Companies List](https://developer.silverfin.com/reference/getsynccompanies.md): This provide the list of silverfin companies currently configured to rely on this API sync. This list is paginated. Required scope(s): `financials:transactions:sync`
- [Get Sync Information](https://developer.silverfin.com/reference/getsynccompanyinfo.md): Retrieves the current synchronization state for a specific company. Required scope(s): `financials:transactions:sync`
- [Update Sync Settings for a Company](https://developer.silverfin.com/reference/setsynccompanysettings.md): Allows you to modify sync settings for a company, such as financial years, computations to be performed by Silverfin, and the retained earnings account. Each "year" can be configured to make Silverfin compute opening balances and retained earnings automatically for you. You can read more about it on [Opening Balances and Retained Earnings](/reference/opening-balances-and-retained-earnings) page. Required scope(s): `financials:transactions:sync`
- [Submit Bookkeeping Transactions](https://developer.silverfin.com/reference/submitsynctransactions.md): Allows you to submit, modify, or delete bookkeeping transactions in Silverfin using an incremental approach. This means you must only perform one request at a time per company. Based on the action type, you can add new transactions, update existing ones, or remove them. There is a limit of 500 actions per request. Required scope(s): `financials:transactions:sync`
- [Reset Bookkeeping Data](https://developer.silverfin.com/reference/resetsyncbookkeepingdata.md): Allows you to reset bookkeeping data for a company up to a specified date. If no date is provided, all bookkeeping data will be reset. Silverfin expect an incremental approach. This means you must only perform one request at a time per company. Required scope(s): `financials:transactions:sync` after_date: It is recommended to always use this endpoint with the after_date parameter set to the date of the oldest change for regular sync attempts. The "oldest change" refers to the earliest date of any financial transaction or record that has changed. If a customer notices an inconsistency, you can perform a reset without date, allowing you to re-sync all data.
- [Webhook events](https://developer.silverfin.com/reference/sync-api-webhook-events.md)
- [List all sync webhooks](https://developer.silverfin.com/reference/getsyncwebhookslist-1.md): List all sync webhooks.
Required scope(s): `webhooks`
- [Register a webhook.](https://developer.silverfin.com/reference/createsyncwebhook-1.md): Required scope(s): `webhooks`
- [Destroy a webhook](https://developer.silverfin.com/reference/deletesyncwebhook-1.md): Destroy a webhook.
Required scope(s): `webhooks`
## Recipes
- [Authenticating Users](https://developer.silverfin.com/recipes/authenticating-users.md)
- [Generating a localized PDF from a reconciliation text based on the user language](https://developer.silverfin.com/recipes/generating-a-localized-pdf-from-a-reconciliation-text-based-on-the-user-language.md)
- [Managing users in Silverfin](https://developer.silverfin.com/recipes/managing-users-in-silverfin.md)
- [Partner Sync API: Setup and Recurring flow](https://developer.silverfin.com/recipes/partner-sync-api-setup-and-recurring-flow.md)
- [Update custom properties in a reconciliation](https://developer.silverfin.com/recipes/update-custom-properties-in-a-reconciliation.md)