API: Accounting

POST /accounting_api/add

Create a new accounting statement using FORM DATA.

Statement rows are given as an array, for example row[x][debit] is the debit value of the row x.

Request parameters
Name Description Data type Req’d Example
entry_date Entry date. Leave empty for current date. string (date) 2018-01-01
statement_series_id Fennoa internal identifier of the statement series. Leave empty to create statement into GL series, or contact Fennoa for other identifiers. int 1

Header fields (above) appears only once in the POST payload and they are all optional. At least two statement rows (below) must be sent along with the header data. Number of rows is not limited, but the sum of all debit fields must be equal to the sum of all credit fields. A single row must not have both debit and credit values present.

Name Description Data type Req’d Example
row[1][debit] Debit sum for first statement row number YES 56.78
row[1][account] Account for the first statement row int YES 4000
row[1][description] Description for the first statement row string Row description
row[1][vatcode] VAT handling (identifier) for the row. Please contact Fennoa for full list of VAT handling identifiers and their functions int
row[1][dim_{dimension_type_id}] Dimensions for statement row. {dimension_type_id} is the id of the dimension type and it’s value is the code of the dimension. int row[1][dim_1] = 100 (dimension for the type ”1” would be 100)
row[2][credit] Credit sum for the second statement row number YES 12.34
row[2][account] Account for the second statement row int YES 199999
Response
Response code Description
200 Ok, adding a statement was successfull
400 Unable to add a statement. Further information can be found from the errors array in response JSON
401 API key / company code is invalid or the user does not have permission to add statements
405 Invalid method, double check you are sending ”POST” and not ”GET” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
id If adding a statement was successfull, id contains unique identifier for the newly created statement int 1234

POST /accounting_api/do/upload_attachment

Add an attachment to a statement. PDF-format is recommended, but JPEG or PNG are also supported.

Request parameters

Request parameters are given as part of the URL as follows:

/accounting_api/do/upload_attachment/<id>

Name Description Data type Req’d Example
id Unique identifier of a statement int 100
Form data

Content type must be multipart/form-data which is used to send binary data to the server. Form-data contains one field ”file” that is the actual file upload.

Name Description Data type Req’d Example
file File to upload file YES
Response
Response code Description
200 Ok, file uploaded successfully and attached to the statement
400 Error receiving the file
401 API key / company code is invalid or the user does not have permission
405 Invalid method, double check you are sending ”POST” and not ”GET” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
data Description of the status (if stataus = OK) string File stored.

GET /accounting_api/get/account_balance

Fetch the balance of a given account and date.

Request parameters are given as part of the URL as follows:

/accounting_api/get/account_balance/<account>/<date>/[<dimensions>]

Request parameters
Name Description Data type Req’d Example
account Account from which the balance is being fetched int YES 1910
date Balance date int YES 2018-12-31
Response
Response
Response code Description
200 Ok, fetching a balance was successfull
400 Unable to fetch balance
401 API key / company code is invalid or the user does not have permission to fetch account balance
404 Account, dimension or dimension type is not found
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
account Account (from the request) int 1900
date Date (from the request) string (date) 2018-12-31
dimensions Dimension (from the request) array
sum_debit Debit sum number 400.01
sum_credit Credit sum number 300.02

GET /accounting_api/get/ledger

Fetch a ledger report.

Request parameters are given as part of the URL as follows:

/accounting_api/get/ledger/<start_date>/<end_date>/[<additional_filters>]

Request parameters
Name Description Data type Req’d Example
start_date Start date of the ledger report string (date) YES 2018-12-01
end_date End date of the ledger report string (date) YES 2018-12-31

Additional filters

Name Description Data type Req’d Example
accounts Fetch ledger only given accounts, separated by a comma string 1900,1910,1920

Example queries:

/accounting_api/get/ledger/2018-01-01/2018-01-31
/accounting_api/get/ledger/2018-01-01/2018-01-31/accounts:1900,1910
/accounting_api/get/ledger/2018-01-01/2018-01-31/dim1:100
/accounting_api/get/ledger/2018-01-01/2018-01-31/accounts:1900,1910/dim1:100/dim2:200

Response
Response code Description
200 Ok, fetching a ledger was successfull
400 Unable to fetch ledger
401 API key / company code is invalid or the user does not have permission to fetch ledger
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
Name Description Data type Possible values / Examples
statement_id Unique identifier of the statement row int 10540
account Account string 1900
date Date string (date) 2018-01-02
debit Debit value number 45.67
credit Credit value number 0.00
description Description string Description from the statement
series Statement series code string GL
number Statement number int 52
opening Opening balance number 0.00
closing Closing balance number 45.67
dimensions Zero dimensions returns empty array
array, object [] or

GET /accounting_api/get/accounts

Fetch a list of accounts.

Request parameters

Request parameters are given as part of the URL as follows:

/accounting_api/get/accounts/[<accounts>]

Example queries:

/accounting_api/get/accounts
/accounting_api/get/accounts/1900,1910

Response
Response code Description
200 Ok, fetching accounts was successfull
400 Unable to fetch accounts
401 API key / company code is invalid or the user does not have permission to fetch accounts
404 Accounts not found using the given filters
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
Name Description Data type Possible values / Examples
code Numeric code for an account int 1900
name Account name string Cash
vatcode_id VAT code (if configured for account) int 1
vatcode_type If VAT code is present, type indicates whether it is for sales or for purchases string sales / purchases
vatcode VAT code, human readable version string Standard / Reduced 1 / EU-services

GET /accounting_api/get/vatcodes

Fetch a list of VAT codes.

Response
Response code Description
200 Ok, fetching VAT codes was successfull
400 Unable to fetch VAT codes
401 API key / company code is invalid or the user does not have permission to fetch VAT codes
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
Name Description Data type Possible values / Examples
id Unique identifier of the VAT code int 1
type Either ”sales” or ”purchases” string sales / purchases
name Human-readable presentation of the VAT code string Standard / Reduced 1

GET /accounting_api/get/periods

Fetch a list of accounting periods.

Response
Response code Description
200 Ok, fetching VAT codes was successfull
400 Unable to fetch VAT codes
401 API key / company code is invalid or the user does not have permission to fetch VAT codes
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
Name Description Data type Possible values / Examples
id Unique identifier of the VAT code int 1
type Either ”sales” or ”purchases” string sales / purchases
name Human-readable presentation of the VAT code string Standard / Reduced 1

GET /accounting_api/get/periods

Fetch a list of accounting periods.

Response
Response code Description
200 Ok, fetching accounting periods was successfull
400 Unable to fetch accounting periods
401 API key / company code is invalid or the user does not have permission to fetch accounting periods
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
Name Description Data type Possible values / Examples
id Unique identifier of the accounting period int 2
start_date First day of the accounting period date 2019-01-01
end_date Last day of the accounting period date 2019-12-31

GET /accounting_api/get/opening_balances

Fetch a list of opening balances for a given period.

Request parameters are given as part of the URL as follows:

/accounting_api/get/opening_balances/<period_id>/[<additional_filters>]

Additional filters
Name Description Data type Req’d Example
accounts Fetch opening balances for only given accounts, separated by a comma string 1900,1910,1920
Response
Response code Description
200 Ok, fetching opening balances was successfull
400 Unable to fetch opening balances
401 API key / company code is invalid or the user does not have permission to fetch opening balances
405 Invalid method, double check you are sending ”GET” and not ”POST” etc
503 Service Unavailable
Name Description Data type Possible values / Examples
status Status of the operation string OK / ERROR
Name Description Data type Possible values / Examples
account_code Account number int 1021
total_sum Total sum number 815.04
debit_sum Debit number 815.04