API 2.0 в Finmap — как работать с данным инструментом

API (Application Programming Interface)— это набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.

ㅤAPI выступает посредником между разработчиком приложений и любой средой, с которой это приложение должно взаимодействовать.

У Finmap открытый АПИ, который могут использовать юзеры для собственных нужд и настройки индивидуальных интеграций с сервисом.

ㅤПересмотреть информацию по АПИ можно в разделе Настройки — Настройки компании, блок — Разработчикам. Здесь вы найдете информацию об АПИ-документации

ㅤКлюч API — это ключ шифрования для аутентификации пользователя в системе, по аналогии логина и пароля.

ㅤНаша АПИ документация создана на базе ресурса Swagger


ㅤДокументация разделена на блоки:

  • webhooks — блок который помогает работать с вебхуками
  • default — общая проверка на работоспособность
  • currencies — показывает в какой валюте можно открыть компанию
  • accounts — работа со счетами
  • tags — работа с тегами
  • projects — работа с проектами
  • categories/income — работа с категориями дохода
  • categories/expense  — работа с категориями расходов
  • customers — работа с клиентами
  • investors — работа с инвесторами
  • creditors — робота із кредиторами
  • debitors — работа с заемщиками
  • suppliers — работа с поставщиками
  • employees — работа с сотрудниками
  • owners — работа с владельцами
  • operations/income— работа с операциями дохода
  • operations/expense— работа с операциями расходов
  • operations/transfer— работа с переводами

ㅤㅤ
ㅤДля определенных блоков доступна возможность — просмотра, редактирования, удаления, добавления, к таким блокам относятся:

  • tags 
  • projects 
  • categories/income 
  • categories/expense 
  • customers 
  • investors
  • creditors 
  • debitors 
  • suppliers 
  • employees 
  • owners 


ㅤЧерез следующие блоки есть возможность только добавлять операции, то им принадлежат:

  • operations/income
  • operations/expense
  • operations/transfer


ㅤИсключением является блок accounts, через этот блок можно лишь получать информацию о том, какие счета есть в сервисе



Примеры запросов

Редактирование сущностей

Как описывалось ранее, получать/редактировать/добавлять/удалять есть возможность для определенных сущностей, на примере будем разбирать такую сущность, как tags 

Чтобы получить информацию о том, какие в компании есть теги, нам необходимо использовать параметр GET


Открываем этот параметр — Далее нажимаем на кнопку Try it our 


После этого вставляем АПИ ключ — и нажимаем на кнопку — Execute


После этого мы получаем ответ, где будут указаны id, и название тегов, которые есть в нашем сервисе (id — понадобится позже, для редактирования/удаления/создания операции) пример ответа:


Добавление сущностей работает по такому же самому принципу, как получение данных. Для того, чтобы добавить сущность используем параметр POST, делаем все шаги, как с первым запросом, только теперь необходимо будет заполнить поле «label»=«указываем название сущности» — после этого нажимаем Execute- В ответ мы получаем новый тег


Удаление и редактирование работает по такому же принципу, только теперь чтобы удалить или редактировать сущность, нам и понадобится id, которое мы ранее получали с помощью параметра GET. Рассмотрим на примере удаления, за удаление у нас отвечает параметр DELETE: Открываем этот параметр — нажимаем Try it our— Вставляем АПИ ключ — id сущности, которую необходимо удалить — и нажимаем Execute— в ответ мы получим, что запрос удачный, сущность была удалена 


Добавление операций

Для того, чтобы добавить платежи, используются блоки:

  • operations/income
  • operations/expense
  • operations/transfer


Рассмотрим пример с блоком operations/income:

Доступ есть только к параметру POST, ведь именно он отвечает за добавление
Для начала открываем этот параметр — нажимаем Try it our — указываем АПИ ключ — Нам сразу будет открыто окно для указания информации


«comment»: «string», — поле комментарий, не обязательное для заполнения
«amount»: 0, — поле сумма, обязательное для заполнения
«date»: «current date in utc», поле с датой платежа,  обязательное для заполнения
«projectId»: «string», — проект, не обязательное для заполнения
  «tagIds»: [«string»], — тег, не обязательное для заполнения
«externalId»: «new uuid v4»,
— этот параметр автоматически формируется, не обязательное для заполнения
«periodStartTimestamp»: 0,
— начало периода, не обязательно для заполнения
«periodEndTimestamp»: 0,
— конец периода, не обязательно для заполнения
«dateOfPayment»: «date»,
— дата сделки, не обязательно для заполнения
«accountToId»: «string»,
— счет, не обязательное для заполнения
«categoryId»: «string»,
— категория, не обязательное для заполнения
«borrowerId»: «string»,
— заемщик, не обязательное для заполнения
  «creditorId»: «string»,
— кредитор, не обязательное для заполнения
  «custumerId»: «string»,
— клиент, не обязательное для заполнения
  «investorId»: «string»
— инвестор, не обязательное для заполненияㅤ


Чтобы добавить операцию, на достаточно будет указать следующие данные:
«comment»:»тест»,
«amount»:123456,
«date»:1675255361458,
— берем в формате UTC, используем сервис https://currentmillis.com/, необходимая нам информация 


«accountToId»:»606ff2357454e1bab63882e3″ — id нашего счета, можно достать с помощью параметра GET, в блоке account — после того, как мы указали эти данные, нажимаем на кнопку Execute — У нас успешно выполняется запрос


Пример операции в сервисе, которая была передана через АПИ


Редактирование/удаление операций

Редактировать или удалять платежи можно только в API 2.2. Эти действия можно предпринять для платежей:
– расходов
– Доходов
– переводов


Чтобы это сделать нужно выбрать параметр PATH (редактирование), DELETE (удаление) для:

  • operations/income
  • operations/expense
  • operations/transfer
     ㅤ 



 ㅤ 

Запрос выполняется используя externalid (этот параметр можно указать самостоятельно при создании операции) или operationid (этот параметр автоматически создается при добавлении платежа, его можно получить через вебхуки, или использовав консоль разработчика)

 ㅤ 

Пример: Редактируем платежи через externalid.
При создании платежа дохода указываем externalid


 ㅤ 



 ㅤ 
В сервисе создался следующий платеж:
 ㅤ 


 ㅤ  ㅤ 

Далее выбираем параметр PATH by externalid и указываем в нем ИД, которое ранее добавляли к платежу, и изменяем сумму со 100 на 444, и нажимаем выполнить условие:
  ㅤ ㅤ 


 ㅤ 

Результат: сумма платежа в сервисе изменилась
 ㅤ 



 ㅤ 
Удаление платежей работает по тому же принципу, только нужно использовать другой параметр DELETE