Konto REST API

API Versioning

Version Policy

All endpoints are under the /api/v1/ path prefix. The current version is v1 and is considered stable.

Base URL
HideShow
https://konto.is/api/v1/
Compatibility & Deprecation
HideShow
Rule Detail
Backwards compatibility Breaking changes (removed fields, changed types, removed endpoints) will only be introduced under a new version number (e.g. /api/v2/). Additive changes (new optional fields, new endpoints) may be made to v1 without notice.
Deprecation notice Deprecated endpoints will be documented here with a notice period before removal. No endpoints are currently deprecated.
Current stable version v1 — actively maintained, no planned end-of-life date.

Response Format

Response Envelope

Every endpoint returns a consistent JSON envelope with the following top-level fields. The shape of result is described in each endpoint's Response table.

Response Object
HideShow
Field Type Description
status boolean true when the request succeeded; false when it failed.
message string When status is false, contains the error reason. When status is true, may contain a success confirmation or be empty.
result mixed The payload on success — type and shape vary by endpoint. null or absent when status is false.
Example — success
HideShow
{
  "status": true,
  "message": "",
  "result": { ... }
}
Example — error
HideShow
{
  "status": false,
  "message": "Invalid api_key",
  "result": null
}

Authentication

Authenticate test

Test auth with konto api

GEThttps://konto.is/api/v1/hello

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is TRUE then messge will "Connection succeeded"
if status is FALSE then messge will describe this error
name string Display name of the authenticated user or company
registration_no string Company registration number (kennitala) of the account
vat_no string VAT number of the company
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/hello?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Header-based Authentication

As an alternative to passing username and api_key as form fields, you can use the standard HTTP Authorization header with Basic authentication. The username is your Konto username and the password is your api_key.

Header Format
HideShow
Header Value Description
Authorization Basic <base64(username:api_key)> Standard HTTP Basic auth. Encode username:api_key in Base64 and prefix with Basic .
Example
HideShow
# Using curl --user (curl encodes Basic auth automatically)
curl -k -X GET --user testuser:3a62cd2568635f115c975b8bd1317e3d https://konto.is/api/v1/hello

# Equivalent with explicit header
curl -k -X GET -H "Authorization: Basic dGVzdHVzZXI6M2E2MmNkMjU2ODYzNWYxMTVjOTc1YjhiZDEzMTdlM2Q=" https://konto.is/api/v1/hello
Notes
HideShow
Both methods (form fields and Authorization header) are accepted on all endpoints. If both are present, the form field values take precedence.
Always use HTTPS to prevent credentials from being intercepted in transit.

Customer

Customer detail

Customer detail example json

Customer Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this customer
output_select string 2: Send e-invoice to a particular Trading Partner ID, 3: Do not send e-invoice(XML), 4: Print - Do not send email
address string Street address
zip string Postal/zip code
city string City name
registration_no string Company or personal registration number (kennitala)
email string user@example.com Email address
term string Default payment terms code for this customer
photo base64string Profile photo encoded as a base64 string
due_date integer Default due date offset in days from invoice date
settlement_date integer Default settlement date offset in days from invoice date
trading_partner_id string Trading partner ID for e-invoice routing
phone_number string Contact phone number
vat string VAT rate applied to this customer
lang string is or en
currency string ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK
tax_exempt boolean Whether this customer is exempt from VAT
updated_timestamp string Timestamp of the last update
is_claim boolean Only available If user has active claim subscription
is_discount boolean Only available If user has active discount subscription

List Customers

Get list customers with konto api

GEThttps://konto.is/api/v1/get-customers

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
search string (optional) search key with name customer
limit integer (optional) item per page default all customer
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list customer
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-customers?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Count Customers

Get count customers with konto api

GEThttps://konto.is/api/v1/get-count-customers

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
search string (optional) search key with name customer
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is show count customer
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-count-customers?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

List Customers By Kennitala

Get list customers with konto api

GEThttps://konto.is/api/v1/get-customers-by-kennitala

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
kennitala string 4444444444 (optional) search key with kennitala customer
limit integer (optional) item per page default all customer
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list customer
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-customers-by-kennitala?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Count Customers By Kennitala

Get count customers with konto api

GEThttps://konto.is/api/v1/get-count-customers-by-kennitala

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
kennitala string 4444444444 (optional) search key with kennitala customer
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is show count customer
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-count-customers-by-kennitala?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Get Customer

Get detail customer with konto api

GEThttps://konto.is/api/v1/get-customer

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result json if status is TRUE is detail customer
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-customer?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d&guid=5a140a1c-13c6-11e7-9914-408d5c6208bc"

Create Customer

Create a customer with konto api

POSThttps://konto.is/api/v1/create-customer

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data json

							    {
							    "output_select" :  "3"
								"registration_no" :  "11111111"
								"name"  :  "Test"
								"address" :  "Abc"
								"zip"  :  "104"	
								"city"  :  "Abc"	
								"email"  :  "xxxx@gmail.com"	
								"lang"  :  "is"	
								"currency"  :  "ISK"	
								}
							
(required) json of detail customer
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of customer
Example
HideShow
curl -k -X POST -F username="testuser" -F api_key="3a62cd2568635f115c975b8bd1317e3d" -F data="{\"output_select\":3,\"registration_no\":\"1111111111\",\"name\":\"Test\",\"address\":\"Abc\",\"zip\":\"104\",\"city\":\"Abc\",\"email\":\"xxxx@gmail.com\",\"lang\":\"is\",\"currency\":\"ISK\"}" https://konto.is/api/v1/create-customer

Update Customer

Update a customer with konto api

POSThttps://konto.is/api/v1/update-customer

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
data json

							    {
							    "output_select" :  "3"
								"registration_no" :  "11111111"
								"name"  :  "Test"
								"address" :  "Abc"
								"zip"  :  "104"	
								"city"  :  "Abc"	
								"email"  :  "xxxx@gmail.com"	
								"lang"  :  "is"	
								"currency"  :  "ISK"	
								}
							
(required) json of detail customer
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of customer
Example
HideShow
curl -k -X POST -F username="testuser" -F api_key="3a62cd2568635f115c975b8bd1317e3d" -F guid="614669f6-3560-11e7-8d19-408d5c6208bc" -F data="{\"output_select\":3,\"registration_no\":\"1111111111\",\"name\":\"Test\",\"address\":\"Abc\",\"zip\":\"104\",\"city\":\"Abc\",\"email\":\"xxxx@gmail.com\",\"lang\":\"is\",\"currency\":\"ISK\"}" https://konto.is/api/v1/update-customer

Item

Item detail

Item detail example json

Item Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this item
item_number string Auto generate by konto
description string Description or name of this product or service
uom string C62 Unit of measure (C62,KGS,MTR,LTR,MTK,MTQ,TNE,KWH,DAY,HUR,MIN,KTM)
tax string S S,AA,Z
unit_price float Default selling price per unit
category string Category or cost account code for this item
active boolean Whether this item is active and available for use
updated_timestamp string Timestamp of the last update

List Items

Get list items with konto api

GEThttps://konto.is/api/v1/get-items

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
limit integer (optional) item per page default all customer
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list item
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-items?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Count Items

Get count items with konto api

GEThttps://konto.is/api/v1/get-count-items

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is show count item
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-count-items?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Get Item

Get detail item with konto api

GEThttps://konto.is/api/v1/get-item

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result json if status is TRUE is detail item
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-item?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d&guid=f120bb56-f080-11e6-a96f-0050560102f2"

Create Item

Create a item with konto api

POSThttps://konto.is/api/v1/create-item

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data json

							    {
								"description" :  "Test"
								"uom"  :  "KGS"
								"tax" :  "AA"
								"unit_price"  :  "200"	
								"category"  :  ""
								"active"  :  "1"
								}
							
(required) json of detail item
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of item
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"description\":\"Test\",\"uom\":\"KGS\",\"tax\":\"AA\",\"unit_price\":\"200\",\"category\":\"\",\"active\":\"1\"}" https://konto.is/api/v1/create-item

Update Item

Update a item with konto api

POSThttps://konto.is/api/v1/update-item

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
data json

							    {
								"description" :  "Test"
								"uom"  :  "KGS"
								"tax" :  "AA"
								"unit_price"  :  "200"	
								"category"  :  ""
								"active"  :  "1"
								}
							
(required) json of detail item
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of item
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=053a639f-3565-11e7-8d19-408d5c6208bc -F data="{\"description\":\"Test\",\"uom\":\"KGS\",\"tax\":\"AA\",\"unit_price\":\"200\",\"category\":\"\",\"active\":\"1\"}" https://konto.is/api/v1/update-item

Invoice

Invoice detail

Invoice detail example json

Invoice Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this invoice
number string Invoice number assigned by the system
amount float Total amount of the invoice
currency string ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK,
status string Draft, Sent, Cancelled, Paid, Collection
created_date datetime Format (Y-m-d)
issue_date datetime Format (Y-m-d)
due_date datetime Format (Y-m-d)
settlement_date datetime Format (Y-m-d)
description string Description or memo for this invoice
booking string Booking reference or information for this invoice
cost_provide string Cost location or cost provider reference
delivery_date datetime Format (Y-m-d)
terms string Payment or delivery terms text
type string invoice,credit
refer_guid string GUID of the original invoice this credit note refers to (credit notes only)
accounting_status string Created,Posted,Skipped,Error
accounting_message string Message returned from the accounting system integration
updated_timestamp string Timestamp of the last update
xml_status string Status update from invoice hub (IS: Skeytamiðlun)
claim_id string External claim system identifier
claim_status string sent,paid,cancel
capital_gains_tax float Capital gains tax amount on this invoice
other_default_costs_amount float Other default cost charges amount
default_charge_amount float Default charge or fee amount
default_interest_amount float Default interest amount
bank_transaction_amount float Amount of the associated bank transaction
total_24vat float Total amount of items subject to 24% VAT
total_11vat float Total amount of items subject to 11% VAT
total_0vat float Total amount of items subject to 0% VAT
exchange_rate float Exchange rate used for non-ISK currency conversion
items string list invoice item
customer string invoice customer

Invoice item detail

Invoice item detail example json

Invoice item Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this invoice line item
item_number string Product or item number from the item list
description string Description text for this line item
qty integer Quantity of units
uom string C62 Unit of measure (C62,KGS,MTR,LTR,MTK,MTQ,TNE,KWH,DAY,HUR,MIN,KTM)
tax string S S,AA,Z
unit_price float Price per unit
discount float Discount amount or percentage applied to this line
discount_type boolean 1: %, 0: price

Invoice customer detail

Invoice customer detail example json

Invoice customer Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this customer
name string Display name of the customer
address string Street address
zip string Postal/zip code
city string City name
registration_no string Company or personal registration number (kennitala)
email string user@example.com Email address

Invoice item detail for create

Invoice item detail for create example json

Invoice item Object
HideShow
Parameter Type Example Description
guid string GUID of an existing item to use (alternative to item_number)
item_number string required
description string required
qty integer required
uom string C62 required Unit of measure (C62,KGS,MTR,LTR,MTK,MTQ,TNE,KWH,DAY,HUR,MIN,KTM)
unit_price float required
tax string S required S(24%), AA(11%), Z(0%)
discount float Discount amount or percentage applied to this line
discount_type boolean 1: %, 0: price

Invoice customer detail for create

Invoice customer detail for create example json

Invoice customer Object
HideShow
Parameter Type Example Description
output_select string 2: Send e-invoice to a particular Trading Partner ID, 3: Do not send e-invoice(XML), 4: Print - Do not send email
guid string Unique identifier (UUID) of an existing customer to link
name string Display name of the customer
address string Street address
zip string Postal/zip code
city string City name
registration_no string Company or personal registration number (kennitala)
email string user@example.com Email address
term string Default payment terms code for this customer
photo base64string Profile photo encoded as a base64 string
due_date integer Default due date offset in days from invoice date
settlement_date integer Default settlement date offset in days from invoice date
trading_partner_id string Trading partner ID for e-invoice routing
lang string is or en
currency string ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK
tax_exempt boolean Whether this customer is exempt from VAT
updated_timestamp string Timestamp of the last update
phone_number string Contact phone number
vat string VAT rate applied to this customer
is_claim boolean Only available If user has active claim subscription
is_discount boolean Only available If user has active discount subscription

Invoice detail for create

Invoice detail for create example json

Invoice Object
HideShow
Parameter Type Example Description
amount float required
currency string required ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK
issue_date datetime required Format (Y-m-d)
due_date datetime required Format (Y-m-d)
settlement_date datetime required Format (Y-m-d)
description string Description or memo for this invoice
booking string Booking reference or information for this invoice
cost_provide string Cost location or cost provider reference
delivery_date datetime Format (Y-m-d)
terms string Payment or delivery terms text
type string required invoice,credit
items string required list invoice item
customer string required invoice customer
trading_partner_id string Trading partner ID for e-invoice routing
is_claim boolean Whether to submit this invoice to the claim system
is_discount boolean Whether a discount is applied to this invoice
discount_type boolean 1: %, 0: price
discount_value float Discount value (amount or percentage depending on discount_type)
payment_fee float Additional payment fee to add to the invoice
mark_paid boolean Whether to mark the invoice as paid immediately upon creation
files string 1111,1222 Id get from api upload
save boolean Use for save invoice

List Invoices

Get list invoices with konto api

GEThttps://konto.is/api/v1/get-invoices

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
accounting_status string (optional) list accounting status. Example: "Created,Error" or "Skipped" or "Created,Posted,Skipped"
date_filter string optional (created_date, issue_date) default is issue_date
from_date string optional Format (Y-m-d)
to_date string optional Format (Y-m-d)
limit integer (optional) item per page default all invoice
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list invoice
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-invoices?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Count Invoices

Get count invoices with konto api

GEThttps://konto.is/api/v1/get-count-invoices

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
accounting_status string (optional) list accounting status. Example: "Created,Error" or "Skipped" or "Created,Posted,Skipped"
date_filter string optional (created_date, issue_date) default is issue_date
from_date string optional Format (Y-m-d)
to_date string optional Format (Y-m-d)
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is show count invoices
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-count-invoices?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Get Invoice

Get detail invoice with konto api

GEThttps://konto.is/api/v1/get-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result json if status is TRUE is detail invoice
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-invoice?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d&guid=f110ef1e-f080-11e6-a96f-0050560102f2"

Get Invoice PDF

Get invoice PDF as base64 encoded string with konto api

GEThttps://konto.is/api/v1/get-invoice-pdf

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required invoice guid
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe this error
result.guid string invoice guid
result.file_name string PDF file name
result.file string base64 encoded PDF file content
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-invoice-pdf?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d&guid=f110ef1e-f080-11e6-a96f-0050560102f2"

Update Invoice

Update a invoice with konto api

POSThttps://konto.is/api/v1/update-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
data json

							    {
								"accounting_status" :  "Skipped"
								"accounting_message"  :  "Test"
								}
							
(required)
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 -F data="{\"accounting_status\":\"Skipped\",\"accounting_message\":\"Test\"}" https://konto.is/api/v1/update-invoice

Create Invoice

Create invoice with konto api

POSThttps://konto.is/api/v1/create-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data string

							    {
								"amount" :  2
								"currency"  :  "USD"
								"customer"  :  {
										"guid" :  "5a14796e-13c6-11e7-9914-408d5c6208bc"										
								}
								"settlement_date"  :  "2017-5-20"	
								"due_date"  :  "2017-5-20"
								"issue_date"  :  "2017-5-20"
								"type"  :  "invoice"
								"description"  :  "Test"
								"booking"  :  "Test"
								"cost_provide"  :  "Test"
								"terms"  :  "Test"
								"delivery_date"  :  ""
								"is_claim"  :  1
								"is_discount"  :  0
								"discount_type"  :  0
								"discount_value"  :  0
								"payment_fee"  :  0
								"mark_paid"  :  0
								"files"  :  ''
								"save"  :  0
								"items"  :  [{
										"item_number": "1",
										"description": "111"
										"qty": 1
										"uom": "C62"
										"tax": "Z"
										"unit_price": 1
										"discount": 0
										"discount_type": 0
										"add_new": 1
								},
								{
										"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
										"qty": 1
										"discount": 0
										"discount_type": 0
								}]
								
								
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"amount\":2,\"currency\":\"USD\",\"customer\":{\"guid\":\"5a14796e-13c6-11e7-9914-408d5c6208bc\"},\"settlement_date\":\"2017-5-20\",\"due_date\":\"2017-5-20\",\"issue_date\":\"2017-5-20\",\"type\":\"invoice\",\"description\":\"Test\",\"booking\":\"Test\",\"cost_provide\":\"Test\",\"terms\":\"Test\",\"delivery_date\":\"\",\"is_claim\":1,\"mark_paid\":0,\"is_discount\":0,\"discount_type\":0,\"discount_value\":0,\"items\":[{\"item_number\":\"1\",\"description\":\"111\",\"qty\":1,\"uom\":\"C62\",\"tax\":\"Z\",\"unit_price\":1,\"discount\":0,\"save\":0,\"discount_type\":0,\"add_new\":1},{\"guid\":\"43521ec8-3413-11e7-b148-408d5c6208bc\",\"qty\":1,\"discount\":0,\"discount_type\":0}]}" https://konto.is/api/v1/create-invoice

Create Recurring Invoice

Create recurring invoice with konto api

POSThttps://konto.is/api/v1/create-recurring-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data string

							    {
							    "recurring_name" :  Recurring test
							    "recurring_max_invoice" :  3
							    "recurring_interval" :  quarterly // 'weekly','monthly','quarterly','annuall'
							    "recurring_start_date" :  2018-10-10
							    "recurring_link_national" :  0
								"amount" :  2
								"currency"  :  "USD"
								"customer"  :  {
									"guid" :  "5a14796e-13c6-11e7-9914-408d5c6208bc"										
								}
								"settlement_date"  :  "2018-10-10"	
								"due_date"  :  "2018-10-10"
								"issue_date"  :  "2018-09-30"
								"description"  :  "Test"
								"booking"  :  "Test"
								"cost_provide"  :  "Test"
								"terms"  :  "Test"
								"delivery_date"  :  ""
								"is_claim"  :  1
								"is_discount"  :  0
								"discount_type"  :  0
								"discount_value"  :  0
								"items"  :  [{
										"item_number": "1",
										"description": "111"
										"qty": 1
										"uom": "C62"
										"tax": "Z"
										"unit_price": 1
										"discount": 0
										"discount_type": 0
										"add_new": 1
								},
								{
										"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
										"qty": 1
										"discount": 0
										"discount_type": 0
								}]
								}
																
								
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"recurring_name\" : \"Recurring test\",\"recurring_max_invoice\" : 3,\"recurring_interval\" : \"quarterly\",\"recurring_start_date\" : \"2018-10-10\",\"recurring_link_national\" : 0,\"amount\" : 2,\"currency\" : \"USD\",\"customer\" : {\"guid\" : \"5a14796e-13c6-11e7-9914-408d5c6208bc\"},\"settlement_date\" : \"2018-10-10\",\"due_date\" : \"2018-10-10\",\"issue_date\" : \"2018-09-30\",\"description\" : \"Test\",\"booking\" : \"Test\",\"cost_provide\" : \"Test\",\"terms\" : \"Test\",\"delivery_date\" : \"\",\"is_claim\" : 1,\"is_discount\" : 0,\"discount_type\" : 0,\"discount_value\" : 0,\"mark_paid\" : 0,\"items\" : [{\"item_number\": \"1\",\"description\": \"111\",\"qty\": 1,\"uom\": \"C62\",\"tax\": \"Z\",\"unit_price\": 1,\"discount\": 0,\"discount_type\": 0,\"add_new\": 1},{\"guid\": \"43521ec8-3413-11e7-b148-408d5c6208bc\",\"qty\": 1,\"discount\": 0,\"discount_type\": 0}]}" https://konto.is/api/v1/create-recurring-invoice

Attachment Invoice

add attachment to invoice with konto api

POSThttps://konto.is/api/v1/upload-file?username={username}&api_key={api_key}

Fields
HideShow
Parameter Type Example Description
file file required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is file id of attachment invoice
Example
HideShow
curl -X POST "https://konto.is/api/v1/create-recurring-invoice?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d" -H "content-type: multipart/form-data" -F "file=@10121.pdf"

Do Paid Invoice

Mark an invoice as paid with konto api

POSThttps://konto.is/api/v1/do-paid-invoice?username={username}&api_key={api_key}

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required — guid of the invoice to mark as paid
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe the error (invoice not found, cannot be changed, or claim cancellation failed)
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/do-paid-invoice

Cost

Cost detail

Cost detail example json

Cost Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this cost
description string Description or memo for this cost entry
supplier_id string Supplier registration number (kennitala) or identifier
amount float Total amount of the cost
vat_AA float VAT amount at the AA rate (11%)
vat_S float VAT amount at the S rate (24%)
cost_code string Service
Items: Items
Service: Service
Travel: Travel
Sales: Sales
Finance: Finance
RawMaterial: Raw Material Costs
Other: Other
3028: Product consumption / material usage
2173: Purchased labor and services for resale
3033: Salary
3085: Pension fund contribution
3090: Other salary-related expenses
2093: Operating supplies and other production costs
2243: Housing operating costs
2193: Rent / leasing of facilities
2423: Expensed small tools and equipment
2443: Maintenance and repairs
2353: Various purchased services
2383: Miscellaneous office expenses
2403: Leasing of movable assets / financing lease
2263: Sales expenses, advertisements, etc.
3163: Hospitality and gifts to business partners, sponsorships
2333: Travel expenses
3140: Vehicle expenses
2283: Other vehicle expenses
2533: Miscellaneous other expenses
2633: Interest income and other capital income
3653: Interest expenses and other capital expenses
5028: Permanent (capitalized) operating assets
2153: Item
3080: Calc. endurgjald
9535: VAT settlement invoice
how_paid integer 1
1: Account (charged to company account)
2: Debit card / Bank
3: Credit card
4: Owner cash (paid out of pocket)
file base64string Base64-encoded attachment file (receipt or invoice image)
file_name string Original file name of the attachment
file_extension string File extension of the attachment (e.g. pdf, jpg, png)
issue_date datetime Format (Y-m-d)
created_date datetime Format (Y-m-d)
xml base64string Base64-encoded UBL Invoice 2.x / Peppol BIS Billing XML document generated by the accounting system. May be empty if the cost has not yet been processed (check xml_status for processing state).
accounting_status string Created,Posted,Skipped,Error
updated_timestamp datetime Format (Y-m-d)
project_name string Name of the linked project, empty string if no project

List Costs

Get list costs with konto api

GEThttps://konto.is/api/v1/get-costs

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
accounting_status string (optional) list accounting status. Example: "Created,Error" or "Skipped" or "Created,Posted,Skipped"
type string (optional) filter by cost type (cost_code). Allowed values: 3028, 2173, 3033, 3085, 3090, 2093, 2243, 2193, 2423, 2443, 2353, 2383, 2403, 2263, 3163, 2333, 3140, 2283, 2533, 2633, 3653, 5028, 2153, 3080, 9535
supplier_id string (optional) filter by supplier_id (kennitala)
date_filter string optional (created_date, date) default is date
from_date string optional Format (Y-m-d)
to_date string optional Format (Y-m-d)
limit integer (optional) Number of records per page. Defaults to 10. Note: other list endpoints (get-invoices, get-customers) return all records by default — always pass limit and page explicitly for predictable results.
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list cost
hasMore boolean if true it has more items
limit integer item per page
page integer page number
next_url string url next items
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-costs?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Count Costs

Get count costs with konto api

GEThttps://konto.is/api/v1/get-count-costs

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
accounting_status string (optional) list accounting status. Example: "Created,Error" or "Skipped" or "Created,Posted,Skipped"
type string (optional) filter by cost type (cost_code). Allowed values: 3028, 2173, 3033, 3085, 3090, 2093, 2243, 2193, 2423, 2443, 2353, 2383, 2403, 2263, 3163, 2333, 3140, 2283, 2533, 2633, 3653, 5028, 2153, 3080, 9535
supplier_id string (optional) filter by supplier_id (kennitala)
date_filter string optional (created_date, date) default is date
from_date string optional Format (Y-m-d)
to_date string optional Format (Y-m-d)
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is show count costs
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-count-costs?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Get Cost

Get detail cost with konto api

GEThttps://konto.is/api/v1/get-cost

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result json if status is TRUE is detail cost
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-cost?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d&guid=f110ef1e-f080-11e6-a96f-0050560102f2"

Update Cost

Update a cost with konto api

POSThttps://konto.is/api/v1/update-cost

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
data json

							    {
								"accounting_status" :  "Skipped",
								"accounting_message" :  "Duplicate invoice, skipped"
								}
							
(required) JSON object with the following fields:
FieldTypeDescription
accounting_statusstring(required) One of: Created, Posted, Skipped, Error
accounting_messagestring(optional) Human-readable message describing the accounting result or reason for the status. Max 500 characters. Each update overwrites the previous value.
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of cost
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 -F data="{\"accounting_status\":\"Skipped\",\"accounting_message\":\"Test\"}" https://konto.is/api/v1/update-cost

Delete Cost

Delete a cost with konto api

POSThttps://konto.is/api/v1/delete-cost

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/delete-cost

Create Cost

Create a simple cost with konto api

POSThttps://konto.is/api/v1/create-cost

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
date string 2026-01-15 required (unless cost_ai is enabled). Format Y-m-d
file file required Allowed: jpg, jpeg, png, gif, pdf. Max 5MB. Images will be resized to max 1028x1028.
description string (optional) Cost description
Response  201
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe this error
result string if status is TRUE returns the guid of the created cost
queue boolean TRUE when cost_ai is enabled — cost is queued for AI processing
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F date=2026-01-15 -F file=@receipt.jpg https://konto.is/api/v1/create-cost

Create Cost Adv

Create a cost with konto api

POSThttps://konto.is/api/v1/create-cost-adv

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
date string 2026-01-15 required Format Y-m-d
amount number 5000 required Total amount
how_paid integer 4 required 1, 2, 3 or 4
supplier_name string required Supplier name
supplier_id string required Supplier VAT number (kennitala)
type string required Cost type (cost_code). Allowed values: 3028, 2173, 3033, 3085, 3090, 2093, 2243, 2193, 2423, 2443, 2353, 2383, 2403, 2263, 3163, 2333, 3140, 2283, 2533, 2633, 3653, 5028, 2153, 3080, 9535
description string (optional) Cost description
vat_11 number (optional) Thereof 11% VAT amount
vat_24 number (optional) Thereof 24% VAT amount
file file (optional) Attachment file. Allowed: jpg, jpeg, png, gif, pdf. Max 5MB. Images will be resized to max 1028x1028.
Response  201
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe this error
result string if status is TRUE returns the guid of the created cost
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F date=2026-01-15 -F amount=5000 -F how_paid=4 -F supplier_name="Supplier AS" -F supplier_id=1234567890 -F type=Items -F file=@receipt.jpg https://konto.is/api/v1/create-cost-adv

Bookkeeper

Bookkeeper detail

Bookkeeper detail example json

Bookkeeper Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this bookkeeper
name string Full name of the bookkeeper
username string Login username in the Konto system
registration_no string Company registration number (kennitala)
vat_no string VAT number of the bookkeeper
email string Contact email address
service_provider_guid string GUID of the associated service provider
status String Registered,Active,Inactive
count_of_bookkeepers integer Total number of bookkeepers managed by this account
instance_config json JSON configuration settings for this bookkeeper instance

Tenant detail

Tenant detail example json

Tenant Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this tenant
name string Full name of the tenant company
username string Login username in the Konto system
api_key string API authentication key for this tenant
registration_no string Company registration number (kennitala)
vat_no string VAT number of the tenant
email string Contact email address
address string Street address
zip string Postal/zip code
city string City name
phone_number string Contact phone number
bank_account string Bank account number
bank_provider string Name of the bank provider
claim_identifier string Identifier used for claim processing
bank_username string Username for bank integration
bank_password string Password for bank integration (stored encrypted)
claim_branch string Branch code used for claim submissions
bookkeeper_guid string GUID of the assigned bookkeeper
active_plan string Currently active subscription plan name
count_of_payusers integer Number of paying users under this tenant
active_item string GUID or name of the currently active product/service item

Get Bookkeeper

Get detail bookkeeper with konto api

GEThttps://konto.is/api/v1/get-bookkeeper

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result json if status is TRUE is detail bookkeeper
Example
HideShow
curl -k -X GET -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/get-bookkeeper

Get Tenant

Get detail tenant with konto api

GEThttps://konto.is/api/v1/get-tenant

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result json if status is TRUE is detail tenant
Example
HideShow
curl -k -X GET -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/get-tenant

Bookkeeper

Update a bookkeeper with konto api

POSThttps://konto.is/api/v1/update-bookkeeper

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
status string Registered,Active,Inactive
count_of_bookkeepers integer
instance_config json
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of bookkeeper
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 -F status=Active https://konto.is/api/v1/update-bookkeeper

Bill-to-Invoices

Invoice detail for create save

Invoice detail for create save example json

Invoice save Object
HideShow
Parameter Type Example Description
amount float required
currency string required ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK
issue_date datetime required Format (Y-m-d)
due_date datetime required Format (Y-m-d)
settlement_date datetime required Format (Y-m-d)
description string
booking string
cost_provide string
delivery_date datetime Format (Y-m-d)
terms string
type string required invoice,credit
items string required list invoice item
trading_partner_id string
is_claim boolean
is_discount boolean
discount_type boolean 1: %, 0: price
discount_value float
mark_paid boolean
create_type string required user,email
kennitala string 4444444444 required if create_type is user. 10-digit Icelandic national ID.
email string user@example.com required if create_type is email

Create Save Invoice

Create save invoice with konto api

POSThttps://konto.is/api/v1/create-save-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data string

						{
						"amount" :  2
						"currency"  :  "USD"
						"settlement_date"  :  "2017-5-20"	
						"due_date"  :  "2017-5-20"
						"issue_date"  :  "2017-5-20"
						"type"  :  "invoice"
						"description"  :  "Test"
						"booking"  :  "Test"
						"cost_provide"  :  "Test"
						"terms"  :  "Test"
						"delivery_date"  :  ""
						"is_claim"  :  1
						"is_discount"  :  0
						"discount_type"  :  0
						"discount_value"  :  0
						"mark_paid"  :  0
						"create_type"  :  user
						"kennitala"  :  4444444444
						"items"  :  [{
								"item_number": "1",
								"description": "111"
								"qty": 1
								"uom": "C62"
								"tax": "Z"
								"unit_price": 1
								"discount": 0
								"discount_type": 0
								"add_new": 1
						},
						{
								"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
								"qty": 1
								"discount": 0
								"discount_type": 0
						}]
						
						
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer This is GUID of invoice if create_type is "user" and status is "TRUE"
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"amount\":\"2095.6\",\"currency\":\"ISK\",\"create_type\":\"user\",\"kennitala\":\"4444444444\",\"settlement_date\":\"2021-06-09\",\"due_date\":\"2021-06-09\",\"issue_date\":\"2021-06-07\",\"type\":\"invoice\",\"items\":[{\"guid\":\"6be71e6c-d7dd-11e7-b836-005056c00001\",\"qty\":1}]}" https://konto.is/api/v1/create-save-invoice

Order Invoices

Order invoice detail

Order invoice example json

Invoice Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this invoice
number string Invoice number assigned by the system
amount float Total invoice amount
issue_date datetime Format (Y-m-d)

Invoice detail for create save

Invoice detail for create save example json

Invoice save Object
HideShow
Parameter Type Example Description
amount float required
currency string required ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK
settlement_date number required
description string Description or memo for this invoice
booking string required
cost_provide string Cost location or cost provider reference
delivery_date datetime Format (Y-m-d)
terms string Payment or delivery terms text
items string required list invoice item
trading_partner_id string Trading partner identifier for e-invoice routing
is_claim boolean Whether this invoice is submitted to the claim system
is_discount boolean Whether a discount is applied to this invoice
discount_type boolean 1: %, 0: price
discount_value float The discount amount or percentage value
mark_paid boolean Whether to mark the invoice as paid immediately upon creation
kennitala string 4444444444 required 10-digit Icelandic national ID (kennitala).

Invoice detail for update order

Invoice detail for update order example json

Invoice update Object
HideShow
Parameter Type Example Description
amount float Total invoice amount
currency string ISK,EUR,USD,DKK,NOK,SEK,JPY,GBP,AUD,PLN,CAD,CHF,CNY,NZD,MXN,SGD,HKD,KRW,TRY,RUB,INR,VND,BRL,ZAR,UAH,CZK
settlement_date number Number of days until settlement (payment due offset)
description string Description or memo for this invoice
booking string Booking reference or information for this invoice
cost_provide string Cost location or cost provider reference
delivery_date datetime Format (Y-m-d)
terms string Payment or delivery terms text
items string list invoice item
trading_partner_id string Trading partner identifier for e-invoice routing
is_claim boolean Whether this invoice is submitted to the claim system
is_discount boolean Whether a discount is applied to this invoice
discount_type boolean 1: %, 0: price
discount_value float The discount amount or percentage value
mark_paid boolean Whether to mark the invoice as paid immediately
kennitala string 4444444444 10-digit Icelandic national ID (kennitala)

Create Order Invoice

Create order invoice with konto api

POSThttps://konto.is/api/v1/create-order-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data string

						{
						"amount" :  2
						"currency"  :  "USD"
						"settlement_date"  :  10
						"description"  :  "Test"
						"booking"  :  "Test"
						"cost_provide"  :  "Test"
						"terms"  :  "Test"
						"delivery_date"  :  ""
						"is_claim"  :  1
						"is_discount"  :  0
						"discount_type"  :  0
						"discount_value"  :  0
						"mark_paid"  :  0
						"kennitala"  :  4444444444
						"items"  :  [{
								"item_number": "1",
								"description": "111"
								"qty": 1
								"uom": "C62"
								"tax": "Z"
								"unit_price": 1
								"discount": 0
								"discount_type": 0
								"add_new": 1
						},
						{
								"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
								"qty": 1
								"discount": 0
								"discount_type": 0
						}]
						
						
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"amount\":\"2095.6\",\"currency\":\"ISK\",\"kennitala\":\"4444444444\",\"booking\":\"test\",\"settlement_date\":\"10\",\"items\":[{\"guid\":\"6be71e6c-d7dd-11e7-b836-005056c00001\",\"qty\":1}]}" https://konto.is/api/v1/create-order-invoice

Update Order Invoice

Update order invoice with konto api

POSThttps://konto.is/api/v1/update-order-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
data string

						{
						"amount" :  2
						"currency"  :  "USD"
						"settlement_date"  :  "10"
						"description"  :  "Test"
						"booking"  :  "Test"
						"cost_provide"  :  "Test"
						"terms"  :  "Test"
						"delivery_date"  :  ""
						"is_claim"  :  1
						"is_discount"  :  0
						"discount_type"  :  0
						"discount_value"  :  0
						"mark_paid"  :  0
						"kennitala"  :  4444444444
						"items"  :  [{
								"item_number": "1",
								"description": "111"
								"qty": 1
								"uom": "C62"
								"tax": "Z"
								"unit_price": 1
								"discount": 0
								"discount_type": 0
								"add_new": 1
						},
						{
								"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
								"qty": 1
								"discount": 0
								"discount_type": 0
						}]
						
						
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 -F data="{\"amount\":\"2095.6\",\"currency\":\"ISK\",\"kennitala\":\"4444444444\",\"settlement_date\":\"10\",\"items\":[{\"guid\":\"6be71e6c-d7dd-11e7-b836-005056c00001\",\"qty\":1}]}" https://konto.is/api/v1/update-order-invoice

Delete Order Invoice

Delete order invoice with konto api

POSThttps://konto.is/api/v1/delete-order-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/delete-order-invoice

Get Invoice From Order

Get list invoice from order with konto api

POSThttps://konto.is/api/v1/get-invoices-from-order

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
limit integer (optional) item per page default all invoice
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/get-invoices-from-order

Draft Invoices

Create Draft Invoice

Create draft invoice with konto api

POSThttps://konto.is/api/v1/create-draft-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data string

						{
						"amount" :  2
						"currency"  :  "USD"
						"settlement_date"  :  10
						"description"  :  "Test"
						"booking"  :  "Test"
						"cost_provide"  :  "Test"
						"terms"  :  "Test"
						"delivery_date"  :  ""
						"is_claim"  :  1
						"is_discount"  :  0
						"discount_type"  :  0
						"discount_value"  :  0
						"mark_paid"  :  0
						"kennitala"  :  4444444444
						"items"  :  [{
								"item_number": "1",
								"description": "111"
								"qty": 1
								"uom": "C62"
								"tax": "Z"
								"unit_price": 1
								"discount": 0
								"discount_type": 0
								"add_new": 1
						},
						{
								"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
								"qty": 1
								"discount": 0
								"discount_type": 0
						}]
						
						
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"amount\":\"2095.6\",\"currency\":\"ISK\",\"kennitala\":\"4444444444\",\"booking\":\"test\",\"settlement_date\":\"10\",\"items\":[{\"guid\":\"6be71e6c-d7dd-11e7-b836-005056c00001\",\"qty\":1}]}" https://konto.is/api/v1/create-order-invoice

Update Draft Invoice

Update draft invoice with konto api

POSThttps://konto.is/api/v1/update-draft-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
data string

						{
						"amount" :  2
						"currency"  :  "USD"
						"settlement_date"  :  "10"
						"description"  :  "Test"
						"booking"  :  "Test"
						"cost_provide"  :  "Test"
						"terms"  :  "Test"
						"delivery_date"  :  ""
						"is_claim"  :  1
						"is_discount"  :  0
						"discount_type"  :  0
						"discount_value"  :  0
						"mark_paid"  :  0
						"kennitala"  :  4444444444
						"items"  :  [{
								"item_number": "1",
								"description": "111"
								"qty": 1
								"uom": "C62"
								"tax": "Z"
								"unit_price": 1
								"discount": 0
								"discount_type": 0
								"add_new": 1
						},
						{
								"guid": 43521ec8-3413-11e7-b148-408d5c6208bc
								"qty": 1
								"discount": 0
								"discount_type": 0
						}]
						
						
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 -F data="{\"amount\":\"2095.6\",\"currency\":\"ISK\",\"kennitala\":\"4444444444\",\"settlement_date\":\"10\",\"items\":[{\"guid\":\"6be71e6c-d7dd-11e7-b836-005056c00001\",\"qty\":1}]}" https://konto.is/api/v1/update-order-invoice

Delete Draft Invoice

Delete draft invoice with konto api

POSThttps://konto.is/api/v1/delete-draft-invoice

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/delete-order-invoice

Get Invoice From Draft

Get list invoice from draft with konto api

POSThttps://konto.is/api/v1/get-invoices-from-draft

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
limit integer (optional) item per page default all invoice
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/get-invoices-from-order

Dashboard Data

Invoice detail

Invoice detail example json

Invoice Object
HideShow
Parameter Type Example Description
invoice_creator_username string The unique username from Konto system
invoice_issue_date date Format (Y-m-d)
invoice_number string The unique invoice number
invoice_status string Invoice can be either Paid or Not Paid
customer_number string Value from the customer profile (other information) - does not have to be unique - used to group users
customer_name string Customer name - from customer profile
customer_guid string Unique ID for this customer profile
invoice_description string The description value from this invoice
document_type string "Invoice" or "Credit Note"
invoice_booking_information string The booking information value from this invoice
invoice_order_reference string The order reference value from this invoice
invoice_cost_location string The Cost location value selected for this invoice
invoice_total_excluding_vat string Invoice total amount, excluding VAT
invoice_vat_total string Total amount of VAT for this invoice
invoice_total_discount string Total amount discounted from this invoice
invoice_total_including_vat string Invoice total amount, including VAT
items string list invoice item

Invoice item detail

Invoice item detail example json

Invoice item Object
HideShow
Parameter Type Example Description
number string The given Product number
name string The given Product Name
description string Product Description
qty integer Quantity
uom string Unit of measure (C62,KGS,MTR,LTR,MTK,MTQ,TNE,KWH,DAY,HUR,MIN,KTM)
vat_code string S,AA,Z
category_code string Registered value on Product in item-list
guid string Unique ID for this product
product_cost string Product cost value used to calculate the margin and profit
total_excluding_vat float Item line total, excluding the VAT
total_vat float Total VAT on the item-line
total_including_vat float Item line total, including VAT
total_discount float Total amount discounted for this item line (including VAT)
profit number Total amount (excluding VAT) minus the Product cost
margin number Ratio of Product cost and Sales amount

Get data

Get list invoice for dashboard data konto api

POSThttps://konto.is/api/v1/get-dashboard-data

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
start_date date (optional) Format (Y-m-d)
end_date date (optional) Format (Y-m-d)
limit integer (optional) item per page default all invoice
page integer (optional) page number
Response  200
HideShow
list invoice
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F guid=f110ef1e-f080-11e6-a96f-0050560102f2 https://konto.is/api/v1/get-dashboard-data

Task

Task detail

Task example json

Task Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this task
number string Task number assigned by the system
name string Name or title of the task
status string Current status of the task (e.g. open, closed, invoiced)
item object item
customer object customer
start_time datetime Format (d.m.Y H:i)
total_time float Total time logged for this task in hours
invoices array list invoice
logs array list log
canStart boolean Whether the current user can start this task
canStop boolean Whether the current user can stop this task
canDeactive boolean Whether the current user can deactivate this task
project_name string Name of the linked project, empty string if no project

Task log detail

Task log example json

Task Log Object
HideShow
Parameter Type Example Description
guid string Unique identifier (UUID) for this log entry
manual boolean Whether this log entry was entered manually (true) or auto-timed (false)
creation_date datetime Date and time this log entry was created (Format Y-m-d H:i:s)
quantity float Amount of time logged in hours
description string Notes or description for this log entry
advanced boolean Whether this is an advanced log entry (uses from/to date range)
count_of_workers integer Number of workers involved in this log entry
hours_worked_per_day integer Hours worked per day used in advanced mode calculations
from_date datetime Start date of this log period (Format Y-m-d)
to_date datetime End date of this log period (Format Y-m-d)
image string URL or path to an attached image or receipt

Create task

Create task with konto api

POSThttps://konto.is/api/v1/create-task

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
data string

						{
						"customer_guid" :  bc2917d7-2dba-11f0-8f4b-d85ed38291f0
						"name"  :  "test"						
						"item"  :  {
							"guid": "",
							"description": "111"
							"uom": "C62"
							"tax": "Z"
							"unit_price": 1
							"category": Test
						}
						
						
(required) json of detail invoice
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result integer if status is TRUE is GUID of task
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F data="{\"customer_guid\": \"bc2917d7-2dba-11f0-8f4b-d85ed38291f0\",\"name\":\"test\", \"item\": {\"guid\":\"\",\"description\" : \"Test\",\"uom\" : \"KGS\",\"tax\" : \"AA\",\"unit_price\" : \"200\",\"category\" : \"\"}}" https://konto.is/api/v1/create-task

Get Task

Get task with konto api

POSThttps://konto.is/api/v1/get-task

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is get detail task
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d https://konto.is/api/v1/get-task

Get Task

Get list task with konto api

POSThttps://konto.is/api/v1/get-tasks

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
type string optional ('open', 'invoice', 'older') default is open
limit integer (optional) item per page default all task
page integer (optional) page number
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show list task
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d https://konto.is/api/v1/get-tasks

Get Count Task

Get count task with konto api

POSThttps://konto.is/api/v1/get-count-tasks

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
type string optional ('open', 'invoice', 'older') default is open
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
result object if status is TRUE is show count tasks
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d https://konto.is/api/v1/get-cout-tasks

Start Task

Start task with konto api

POSThttps://konto.is/api/v1/start-task

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d https://konto.is/api/v1/start-task

End Task

End task with konto api

POSThttps://konto.is/api/v1/end-task

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
description string Optional notes or description for the completed work
file file Optional file attachment (image or document)
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d description="test" https://konto.is/api/v1/end-task

Log Task

Log task with konto api

POSThttps://konto.is/api/v1/log-task

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
description string Notes or description for this log entry
file file Optional file attachment (image or document)
adv boolean Whether to use advanced logging mode (from/to date range)
date date required Format (Y-m-d)
end_date date required Format (Y-m-d)
h integer Start hour in HH:MM format (used in advanced mode)
p integer End hour in HH:MM format (used in advanced mode)
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d date="2025-10-01" end_date="2025-10-10" description="test" https://konto.is/api/v1/log-task

Delete Log Task

delete log task with konto api

POSThttps://konto.is/api/v1/task-log-delete

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d https://konto.is/api/v1/task-log-delete

Edit Log Task

Edit log task with konto api

POSThttps://konto.is/api/v1/edit-log-task

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required
description string Notes or description for this log entry
file file Optional file attachment (image or document)
adv boolean Whether to use advanced logging mode (from/to date range)
date date required Format (Y-m-d)
end_date date required Format (Y-m-d)
h integer Start hour in HH:MM format (used in advanced mode)
p integer End hour in HH:MM format (used in advanced mode)
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then messge will describe this error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d date="2025-10-01" end_date="2025-10-10" description="test" https://konto.is/api/v1/edit-log-task

Sell Product

Product Sale detail

Product Sale example object

Product Sale Object
HideShow
Parameter Type Example Description
guid string
status integer 1 = open, 0 = closed
is_open boolean
type integer KONTO_SELL_PRODUCT_STAND, KONTO_SELL_PRODUCT_SUB, KONTO_SELL_PRODUCT_DONA, KONTO_SELL_PRODUCT_EVENT
url string Public URL of the selling page
terms string
name string Item description
description string Selling notes
amount float Price including tax
inventory_control boolean
inventory_count integer Remaining stock

Attend detail

Attend row example object (event type only)

Attend Object
HideShow
Parameter Type Example Description
attendee string Name and email of the attendee e.g. "John Doe (john@example.com)"
phone_number string
qty integer Number of tickets
invoice_number string
kennitala string 4444444444 National ID of the buyer (10-digit Icelandic kennitala)
invoice_status string e.g. "Paid", "Not paid on time"
name string Buyer name
zip string Buyer zip/postal code
city string Buyer city
address string Buyer address
message string Message left by buyer
attended string "true" or "false"
fields array [{"label":"Field Name","value":"Field Value"}] Custom fields submitted by the buyer. Each entry has label (field key) and value (field value)

List Product Sales

Get list of product sales with konto api

GEThttps://konto.is/api/v1/get-product-sales

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
search_text string (optional) filter by description
limit integer (optional) items per page, default uses system setting
page integer (optional) page number, default 1
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe the error
result array if status is TRUE shows list of product sale
total integer total number of items
page integer current page number
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-product-sales?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Count Product Sales

Get count of product sales with konto api

GEThttps://konto.is/api/v1/get-count-product-sales

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
search_text string (optional) filter by description
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe the error
result integer if status is TRUE shows count of product sales
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-count-product-sales?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

List Product Sale Attendees

Get list of attendees for an event-type product sale with konto api

GEThttps://konto.is/api/v1/get-product-sale-attends

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
guid string required guid of the selling (must be type event)
limit integer (optional) items per page, default uses system setting
page integer (optional) page number, default 1
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE then message will describe the error
result array if status is TRUE shows list of attend
total integer total number of attendee rows
page integer current page number
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-product-sale-attends?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d&guid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Agent API (OAuth2)

The Agent API lets trusted automation clients (MCP servers, AI assistants) perform actions on Konto on behalf of a user using OAuth2 Bearer tokens and scope-based permissions.

Overview & Flow

Authorization Flow
HideShow
Step 1 — Register your agent client (one time):
  POST /agent/register
  → Receive client_id + client_secret

Step 2 — User grants permission (OAuth2 consent):
  GET /agent/authorize?client_id=xxx&scopes=cost,create_invoice&redirect_uri=xxx
  → User clicks Allow → auth_code returned

Step 3 — Exchange code for Bearer token:
  POST /agent/token
  Body: { "grant_type": "authorization_code", "client_id": "...", "client_secret": "...", "code": "..." }
  → Receive access_token (TTL: 1 day) + refresh_token (TTL: 30 days)

Step 3b — Refresh expired access token (no user re-consent needed):
  POST /agent/token
  Body: { "grant_type": "refresh_token", "client_id": "...", "client_secret": "...", "refresh_token": "..." }
  → Receive new access_token + new refresh_token

Step 4 — Call REST API with token:
  POST /api/v1/agent/invoices
  Header: Authorization: Bearer <token>
  → Receive result + action_id

Available Scopes

Scope Reference
HideShow
Scope Permits
create_invoicePOST /api/v1/agent/invoices, POST /api/v1/agent/quotes
costPOST /api/v1/agent/costs
dashboard_dataGET /api/v1/agent/status
taskPOST /api/v1/agent/tasks, POST /api/v1/agent/tasks/log
bookkeeperBookkeeper actions
recurringRecurring invoice actions
navNAV / government reporting actions

Authentication Methods

Bearer Token (recommended for agents)
HideShow
Authorization: Bearer <token>
Basic Auth (direct API key, for trusted servers)
HideShow
Authorization: Basic base64(username:api_key)

# Optional agent attribution header:
X-Agent-Id: <client_id>

Register Agent Client

Register a new agent application. Returns client_id and client_secret. Store the secret securely — it is shown only once.

POST /agent/register
HideShow
ParameterTypeRequiredDescription
usernamestringYesKonto username (owner)
api_keystringYesKonto API key
namestringYesHuman-readable agent name
descriptionstringNoShort description
redirect_uristringYesOAuth2 callback URL
Response
HideShow
{
  "client_id":     "a1b2c3d4e5f6...",
  "client_secret": "secret_shown_once",
  "name":          "My MCP Server",
  "redirect_uri":  "https://myapp.example.com/callback"
}
Example
HideShow
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "username":     "myuser",
    "api_key":      "my_api_key",
    "name":         "My MCP Server",
    "redirect_uri": "https://myapp.example.com/callback"
  }' \
  https://konto.is/agent/register

User Authorization (Consent Page)

Direct the user to this URL. They will see a consent page listing the requested scopes. On approval, they are redirected to redirect_uri with an code parameter.

GET /agent/authorize
HideShow
ParameterTypeRequiredDescription
client_idstringYesYour agent's client_id
scopesstringYesComma-separated scopes (e.g. cost,create_invoice)
redirect_uristringYesMust match the registered redirect_uri
Example URL
HideShow
https://konto.is/agent/authorize
  ?client_id=a1b2c3d4e5f6
  &scopes=cost,create_invoice
  &redirect_uri=https://myapp.example.com/callback
Callback (on approval)
HideShow
https://myapp.example.com/callback?code=AUTH_CODE_HERE

Exchange Code for Bearer Token

Exchange the auth_code for a Bearer token (valid 1 day) and a refresh token (valid 30 days). Use the access token in the Authorization header for all subsequent API calls. When it expires, use the refresh token to get a new pair without user re-consent.

POST /agent/token
HideShow
ParameterTypeRequiredDescription
grant_typestringYesMust be authorization_code
client_idstringYesYour agent's client_id
client_secretstringYesYour agent's client_secret
codestringYesauth_code from the consent redirect
Response
HideShow
{
  "access_token":  "eyJ...",
  "token_type":    "Bearer",
  "expires_in":    86400,
  "refresh_token": "d4e5f6...",
  "scope":         "cost,create_invoice"
}
Example
HideShow
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type":    "authorization_code",
    "client_id":     "a1b2c3d4e5f6",
    "client_secret": "secret_shown_once",
    "code":          "AUTH_CODE_HERE"
  }' \
  https://konto.is/agent/token

Refresh Access Token

When the access token expires, use the refresh_token to get a new access token + refresh token pair. No user re-consent required. The old refresh token is immediately invalidated.

POST /agent/token
HideShow
ParameterTypeRequiredDescription
grant_typestringYesMust be refresh_token
client_idstringYesYour agent's client_id
client_secretstringYesYour agent's client_secret
refresh_tokenstringYesrefresh_token from previous token response
Example
HideShow
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type":    "refresh_token",
    "client_id":     "a1b2c3d4e5f6",
    "client_secret": "secret_shown_once",
    "refresh_token": "d4e5f6..."
  }' \
  https://konto.is/agent/token

# Response — new token pair (old refresh_token is now invalid):
{
  "access_token":  "eyJ...",
  "token_type":    "Bearer",
  "expires_in":    86400,
  "refresh_token": "g7h8i9..."
}

POST /api/v1/agent/invoices — Create Invoice

Requires scope create_invoice. Accepts the same body parameters as createInvoice.

POST https://konto.is/api/v1/agent/invoices
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "client_kennitala": "1234567890",
    "client_name":      "Test Client",
    "items": [
      { "item_no": "ITEM001", "qty": 1, "price": 5000 }
    ]
  }' \
  https://konto.is/api/v1/agent/invoices

# Response includes action_id for tracking:
{
  "success": true,
  "invoice_id": 42,
  "action_id":  7
}

POST /api/v1/agent/quotes — Create Quote

Requires scope create_invoice. Same body as createInvoice; automatically sets system_type=quote.

POST https://konto.is/api/v1/agent/quotes
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "client_name": "Test Client", "items": [...] }' \
  https://konto.is/api/v1/agent/quotes

POST /api/v1/agent/costs — Register Cost

Requires scope cost. Accepts the same body parameters as createCost.

POST https://konto.is/api/v1/agent/costs
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Office supplies",
    "amount":      1500,
    "date":        "2025-01-15"
  }' \
  https://konto.is/api/v1/agent/costs

# Response:
{
  "success":   true,
  "cost_id":   18,
  "action_id": 9
}

POST /api/v1/agent/tasks — Create Task

Requires scope task. Creates a new task. The data field is a JSON-encoded task object.

POST https://konto.is/api/v1/agent/tasks
HideShow
ParameterTypeRequiredDescription
datastring (JSON)YesJSON-encoded task object (see Task detail)
Example
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "data": "{\"name\":\"Fix bug\",\"item_no\":\"ITEM001\",\"customer_no\":\"C001\"}"
  }' \
  https://konto.is/api/v1/agent/tasks

# Response:
{
  "status":    true,
  "result":    "614669f6-3560-11e7-8d19-408d5c6208bc",
  "action_id": 11
}

POST /api/v1/agent/tasks/log — Log Work on Task

Requires scope task. Logs hours/work against an existing task identified by guid.

POST https://konto.is/api/v1/agent/tasks/log
HideShow
ParameterTypeRequiredDescription
guidstringYesTask GUID (returned from createTask)
qtyfloatYesHours worked (e.g. 1.5)
datestringNoWork date (d.m.Y format, defaults to today)
advboolNoAdvanced log mode
hstringNoStart hour (HH:MM)
pstringNoEnd hour (HH:MM)
Example
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "guid": "614669f6-3560-11e7-8d19-408d5c6208bc",
    "qty":  1.5,
    "date": "15.01.2025"
  }' \
  https://konto.is/api/v1/agent/tasks/log

# Response:
{
  "status":    true,
  "action_id": 12
}

GET /api/v1/agent/status — Account Status

Requires scope dashboard_data. Returns a summary of the user's account.

GET https://konto.is/api/v1/agent/status
HideShow
curl -X GET \
  -H "Authorization: Bearer <token>" \
  https://konto.is/api/v1/agent/status

GET /api/v1/agents — List Authorized Agents

Returns all agents the authenticated user has granted access to.

GET https://konto.is/api/v1/agents
HideShow
curl -X GET \
  -H "Authorization: Basic base64(username:api_key)" \
  https://konto.is/api/v1/agents

# Response:
{
  "data": [
    {
      "agent_id":   "a1b2c3d4e5f6",
      "name":       "My MCP Server",
      "scopes":     ["cost", "create_invoice"],
      "granted_at": "2025-01-15 10:30:00"
    }
  ],
  "total": 1
}

POST /api/v1/agents — Grant Scopes to Agent

Programmatically grant scopes to an agent (alternative to the consent page flow).

POST https://konto.is/api/v1/agents
HideShow
ParameterTypeRequiredDescription
client_idstringYesAgent's client_id to authorize
scopesarray/stringYesArray or comma-separated scope list
Example
HideShow
curl -X POST \
  -H "Authorization: Basic base64(username:api_key)" \
  -H "Content-Type: application/json" \
  -d '{ "client_id": "a1b2c3d4e5f6", "scopes": ["cost","create_invoice"] }' \
  https://konto.is/api/v1/agents

DELETE /api/v1/agents/{agent_id} — Revoke Agent

Revokes an agent's delegation and all its Bearer tokens.

DELETE https://konto.is/api/v1/agents/{agent_id}
HideShow
curl -X DELETE \
  -H "Authorization: Basic base64(username:api_key)" \
  https://konto.is/api/v1/agents/a1b2c3d4e5f6

# Response:
{ "message": "Agent access revoked", "agent_id": "a1b2c3d4e5f6" }

GET /api/v1/agent/audit — Agent Audit Log

Returns a paginated log of all agent API calls made on behalf of the authenticated user.

GET https://konto.is/api/v1/agent/audit
HideShow
ParameterTypeDefaultDescription
agent_idstringFilter by specific agent (optional)
limitint50Max records (1–200)
pageint1Page number
Example
HideShow
curl -X GET \
  -H "Authorization: Bearer <token>" \
  "https://konto.is/api/v1/agent/audit?agent_id=a1b2c3d4e5f6&limit=20&page=1"

# Response:
{
  "data": [
    {
      "agent_id":   "a1b2c3d4e5f6",
      "action":     "create-invoice",
      "ip_address": "1.2.3.4",
      "timestamp":  "2025-01-15 10:31:00"
    }
  ],
  "total": 1,
  "page":  1,
  "limit": 20
}

action_id — Async Action Tracking

Every agent API call returns an action_id. Use it to confirm the operation status.

Check Action Status (legacy API)
HideShow
curl "https://konto.is/api/?action=get-action-status&action_id=7&username=myuser&api_key=my_api_key"

# Response:
{
  "id":            7,
  "api_action":    "create-invoice",
  "status":        "completed",
  "resource_type": "invoice",
  "resource_id":   42,
  "created_at":    "2025-01-15 10:31:00"
}