Integration with accounting systems
Schrift's integration with accounting systems makes it easy to create new documents and update existing ones between the DMS and the accountants' system.
With the integration, the functionality of accounting systems is expanded by Schrift's ability to store and search electronic documents, including full-text search, and perform the processes of approving and signing documents, including with external counterparties, in a convenient form via a web interface or mobile application.
Schrift has more general management functionality aimed at collaborating on projects, documents, and tasks than specialised accounting systems, allowing you to create documents based on source documents or reports from accounting systems.
Business processes within which the Schrift integration module can be used through the appropriate API:
Signing contracts
Issuing invoices and acts of completed work
Signing expense invoices
Reconciliation of mutual settlements
Internal approval of cash flow documents
Approval of prices
Saving documents-reports on inventory balances
Saving documents-reports on the production of products
Saving documents-reports with results for the period
Saving management reporting documents.
Enable integration on the Company Account side
To start working with external APIs of Schrift system, you need to activate this option on the Company Account page.

The option to work via external APIs is available on all tariffs, including the Free tariff.
API key of an employee
Each company employee can create their own API access key to create documents in Schrift from external applications. The key is created in the Employee's profile.
Integration module in the accounting system
To create documents and tasks in Schrift, you need to configure the integration module in the accounting system using external APIs of Schrift system.
As the content of an electronic document from the accounting system, you can take a printed form of a document or report generated in pdf, xlsx, or docx format, because such a file will best match the user's understanding of the document.
For minimal integration with an external application, you need to implement the following functions:
action on the document “Send document to Schrift”
show the status of the document in Schrift
action on the document “Update document status and signature information”
action on the document “Follow the link to the document”.
Working with external APIs - link to the article.
Track changes to documents in Schrift
Several mechanisms are provided for integration schemes that require tracking changes in the status, signature composition, and other changes to documents in Schrift:
Linking external documents by primary keys to Schrift documents;
Dividing Schrift documents into external groups;
Get a list of changed documents since the last event;
Get a list of changed documents for a period of time.
The combination of these mechanisms makes it possible to implement various scenarios for working out changes to documents in Schrift in an external system. Allows you to implement integration workflows when user work with a document in Schrift is one of the stages of working with documents in an external system.
Setting the primary keys of an external system
To create a link between an external system document and Schrift document, the DocumentExternalKeyType and DocumentExternalKey fields are stored in the document structure. You can pass them when creating a new document or update existing documents to Schrift.
For example, in the DocumentExternalKeyType field, you can specify a group of external documents (database, department, or legal entity identifier), and in the DocumentExternalKey field, you can pass the primary key of the document.
To update external documents, make an http request:
curl --location --request PUT '{{baseUrl}}/Documents/{{DocumentID}}' ^
--header 'Content-Type: application/json' ^
--header 'Accept: text/plain' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}'^
--data '{
"DocumentExternalKeyType": {{DocumentExternalKeyType}},
"DocumentExternalKey": {{DocumentExternalKey}}
}'
DocumentExternalKeyType – external document group
DocumentExternalKey – primary document key in the external system
Receive documents with changes based on the last change event
To track changes in document statuses, signature composition, and other information on a document, you can periodically run the Documents/Changes query, which returns a list of DocumentIds of changed documents. The query allows you to filter documents with changes to Schrift by the external document group DocumentExternalKeyType from the moment of a specific event to the current moment.
curl --location '{{baseUrl}}//Documents/Changes? ObjectTypes=100&DocumentExternalKeyType={{DocumentExternalKeyType}}&OldMaxChangeId={{NewMaxChangeId}}' ^
--header 'Accept: text/plain' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}'
ObjectTypes - object type Schrift, 100 - type of document change
DocumentExternalKeyType - external document group
OldMaxChangeId - ID the last change in documents
The query returns DocumentIds and NewMaxChangeId. To get and update the necessary information on documents, run the appropriate queries on the document using the received DocumentIds.
We recommend that you run the query every few minutes, saving the last change identifier NewMaxChangeId and passing it to subsequent queries as the OldMaxChangeId parameter. This will allow you to receive only documents with changes that have appeared in Schrift since the OldMaxChangeId event and up to the current moment.
If there were no changes to the documents in accordance with the passed parameters, the DocumentIds will be empty, and the NewMaxChangeId will return unchanged or may advance if there were events on other objects or documents that are not part of the passed group.
Tracking changes to documents in this way has limitations. The Documents/Changes query returns information about documents that have changed in the last 7 days.
Receiving documents with changes over a period of time
To get a list of documents that have changed during the specified period, make a request:
curl --location '{{baseUrl}}//Documents/ByEvents?DocumentExternalKeyType={{DocumentExternalKeyType}}&DateFrom={{DateFrom}}&DateTo={{DateTo}}' ^
--header 'Accept: text/plain' ^
--header 'X-API-KEY: {{EmployeeAPIKey}}'
DocumentExternalKeyType - external document group
DateFrom, DateTo - the period of time from to for which you want to select changes.
Work with a document in Schrift
Once a document is created in Schrift, it can perform any business processes that are provided for this type of document within the document workflow.
Changes made to a document can affect its status, the composition of the document's files, the list of its signatories, etc. These changes will be automatically synchronized with the accounting system.