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
ref_invoice_guid string required when type is credit — GUID of the original invoice being credited. Must belong to the same user and have type_outsite = invoice
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. Cannot be true when mark_paid or is_payment_link is true
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. When true, is_claim and is_payment_link must be false
method_payment integer 1 (optional) Payment method. Only accepted when mark_paid is true and is_claim is false. Allowed values: 1=Cash, 2=Visa credit, 3=Visa debit, 4=MasterCard credit, 5=MasterCard debit, 6=Amex, 7=Customer Account, 8=Other, 9=Direct deposit
is_payment_link boolean (optional) Whether to generate a payment link for this invoice. Only available if user has an active payment link subscription. Cannot be true when mark_paid or is_claim is true. When set, the response includes a payment_link URL
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) Filter by accounting status. Valid values: Created, Posted, Skipped, Error. Comma-separate for multiple: e.g. Created,Posted. An unrecognised value returns a 400 error with error_code=invalid_accounting_status.
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
sort string date_desc (optional) Sort order. Allowed values: date_desc (default — most recent issue date first), date_asc (oldest first), created_desc, created_asc.
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) Filter by accounting status. Valid values: Created, Posted, Skipped, Error. Comma-separate for multiple: e.g. Created,Posted. An unrecognised value returns a 400 error with error_code=invalid_accounting_status.
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"
								"ref_invoice_guid"  :  ""
								"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 kennitala (Icelandic national ID, 10 digits)
amount float Total amount of the cost
currency string ISK Currency code for this cost. Supported values: 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
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|null Base64-encoded attachment file (receipt or invoice image). null if the cost has no attachment.
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 XML. null if not yet processed.
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) Filter by accounting status. Valid values: New, Created, Posted, Skipped, Error. Comma-separate for multiple: e.g. New,Created. An unrecognised value returns a 400 error with error_code=invalid_accounting_status.
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. Must be a numeric cost_code.
supplier_id string (optional) Filter by supplier kennitala (Icelandic national ID, 10 digits)
date_filter string optional — date (default, filters by cost issue date) or created_date (filters by record creation timestamp). Dates are matched in server time (UTC). Only records with show_api = true are returned — records still being processed by AI may not yet appear.
from_date string optional, format Y-m-d. Inclusive lower bound for the selected date_filter field.
to_date string optional, format Y-m-d. Inclusive upper bound (matches up to 23:59:59 on this day). To match records created today, pass both from_date and to_date as today's date. If a newly created record is not returned, the record may still be in AI processing (show_api = false); retry after a few seconds.
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.
sort string date_desc (optional) Sort order. Allowed values: date_desc (default — most recent issue date first), date_asc (oldest first), created_desc, created_asc.
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) Filter by accounting status. Valid values: New, Created, Posted, Skipped, Error. Comma-separate for multiple: e.g. New,Created. An unrecognised value returns a 400 error with error_code=invalid_accounting_status.
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. Must be a numeric cost_code.
supplier_id string (optional) Filter by supplier kennitala (Icelandic national ID, 10 digits)
date_filter string optional — date (default, filters by cost issue date) or created_date (filters by record creation timestamp). Dates are matched in server time (UTC). Only records with show_api = true are counted.
from_date string optional, format Y-m-d. Inclusive lower bound for the selected date_filter field.
to_date string optional, format Y-m-d. Inclusive upper bound (matches up to 23:59:59 on this day).
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: Posted, Skipped, Error. The record must currently have accounting_status = Created for this call to succeed. State machine: NewCreated (set internally after processing) → Posted / Skipped / Error (set here by bookkeeping software). Created is written internally and cannot be set via the API.
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, one of: "Accounting status must be one of: Posted, Skipped, Error" (invalid value); "Only costs with accounting_status Created can be updated via the API" (current status is not Created — either still New/processing or already in a terminal state)
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

Move Cost to New

Re-open an approved (Created) cost so it can be edited and re-approved, which regenerates its XML. Only a cost that is approved and not yet Posted can be moved — this is the API equivalent of the "move to New" action in the UI.

POSThttps://konto.is/api/v1/move-cost-to-new

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, one of: "Field guid is required"; "No cost found" (guid does not exist, or does not belong to the authenticated account); "This cost cannot be moved to New (only approved, non-Posted costs can be re-opened for editing)" (cost is not currently approved, or has already been Posted)
result string 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 https://konto.is/api/v1/move-cost-to-new

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, one of: "This cost cannot be deleted. It may have been posted by bookkeeping or is still being processed" (accounting_status is Posted, or record is still being processed — if newly created, retry after ~1 s); "No cost found" (guid not found or belongs to another user)
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. Must be a positive number (credit notes are marked with the credit_note flag, not a negative amount).
how_paid integer 4 required 1, 2, 3 or 4
supplier_name string required Supplier name
supplier_id string required Supplier kennitala (Icelandic national ID, 10 digits)
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. The stored cost_code is always the numeric value you send; category-name strings (Items, Service, etc.) are not accepted.
description string (optional) Cost description
vat_11 number (optional) Thereof 11% VAT amount
vat_24 number (optional) Thereof 24% VAT amount
credit_note boolean 1 (optional) Set to mark this cost as a credit note (refund). Amount stays positive; the flag is what marks it as a credit.
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

Bookkeeper Invitations

Invitation Object

Invitation object returned by the list endpoint

Invitation Object
HideShow
Parameter Type Example Description
id integer Unique numeric ID of the invitation
email string user@example.com Email address the invitation was sent to
sent_date string|null 2026-06-20 Date the invitation was last (re)sent. null if never sent via resend.
last_reminder_sent_at string|null 2026-06-20 14:30:00 Datetime the last reminder was sent. null if no reminder has been sent yet.

Get Invitations

Get all pending bookkeeper invitations sent by the authenticated user

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

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 message will describe this error
result array if status is TRUE, array of invitation objects
Example
HideShow
curl -k -X GET "https://konto.is/api/v1/get-bookkeeper-invitations?username=testuser&api_key=3a62cd2568635f115c975b8bd1317e3d"

Resend Invitation

Resend a bookkeeper invitation with a new invite code. The old invite link is invalidated. Can only be called once every 48 hours per invitation.

POSThttps://konto.is/api/v1/resend-bookkeeper-invitation

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
id integer required — ID of the invitation to resend
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE, describes the error (e.g. too soon, not found)
sent_date string 2026-06-20 Updated sent date in Y-m-d format
Notes
HideShow
A new invite code is generated on each resend, invalidating the previous invite link.
Returns an error if fewer than 48 hours have passed since the last sent_date.
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F id=42 https://konto.is/api/v1/resend-bookkeeper-invitation

Remind Invitation

Send a reminder for an existing invitation using the same invite code. Can only be called once every 48 hours per invitation.

POSThttps://konto.is/api/v1/remind-bookkeeper-invitation

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
id integer required — ID of the invitation to remind
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE, describes the error (e.g. too soon, not found)
last_reminder_sent_at string 2026-06-20 14:30:00 Updated datetime of the reminder in Y-m-d H:i:s format
Notes
HideShow
Unlike resend, the existing invite code is reused — the original link remains valid.
Returns an error if fewer than 48 hours have passed since last_reminder_sent_at.
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F id=42 https://konto.is/api/v1/remind-bookkeeper-invitation

Revoke Invitation

Delete a pending bookkeeper invitation. The invite link is permanently invalidated.

POSThttps://konto.is/api/v1/revoke-bookkeeper-invitation

Fields
HideShow
Parameter Type Example Description
username string required
api_key string required
id integer required — ID of the invitation to revoke
Response  200
HideShow
Parameter Type Example Description
status boolean Return TRUE when success
message string if status is FALSE, describes the error
Example
HideShow
curl -k -X POST -F username=testuser -F api_key=3a62cd2568635f115c975b8bd1317e3d -F id=42 https://konto.is/api/v1/revoke-bookkeeper-invitation

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

Invoice Summaries

getInvoiceSummaries

Returns pre-computed invoice summary cards (count + total amount) grouped by status and currency for a given period. Data is read from the invoice_summary_buckets table — O(1) cost regardless of invoice volume.

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

Period Parameters (pick one mode)
HideShow
Parameter Type Example Description
year integer 2026 Calendar year. Combined with month for a single month, with from_month+to_month for a multi-month range, or alone for a full year.
month integer 4 (optional) 1–12. Use with year to select a single month.
from_month integer 1 (optional) Start month 1–12. Use with year and to_month for a multi-month range within the same year (e.g. VSK period).
to_month integer 3 (optional) End month 1–12. Use with year and from_month.
from_date date 2026-01-01 (optional) Start of a custom date range. Format Y-m-d. Use together with to_date.
to_date date 2026-04-30 (optional) End of a custom date range. Format Y-m-d. Use together with from_date.
Period Modes
HideShow
Mode Parameters Example
Single month year + month ?year=2026&month=4
Multi-month (VSK period) year + from_month + to_month ?year=2026&from_month=1&to_month=3
Full year year ?year=2026
Custom date range from_date + to_date ?from_date=2026-01-15&to_date=2026-04-15
Response  200
HideShow
Field Type Description
status boolean true on success
period.from date Resolved start of the period (first day of start month). Format Y-m-d.
period.to date Resolved end of the period (last day of end month). Format Y-m-d.
summaries array One entry per status. First entry is always total (sum of all statuses). Followed by paid, sent, overdue, collection (only statuses that have data are included).
summaries[].status string total | paid | sent | overdue | collection
summaries[].count integer Number of invoices in this status bucket for the period.
summaries[].amounts array One entry per currency. Each entry has currency (ISO-4217 code, e.g. ISK) and total (decimal amount, negative for credit notes).
Status Definitions
HideShow
Status Meaning
paid Invoice is paid. Credit notes are excluded from this bucket.
sent Invoice is sent and not yet past its due date, with no active collection process.
overdue Invoice is past its due date and unpaid, with no active collection process.
collection Invoice has an active collection process.
total Computed sum of all four statuses above. Not stored in the database — calculated at response time.
Example Response
HideShow
{
  "status": true,
  "period": { "from": "2026-01-01", "to": "2026-03-31" },
  "summaries": [
    { "status": "total",      "count": 42, "amounts": [{ "currency": "ISK", "total": 500000 }] },
    { "status": "paid",       "count": 30, "amounts": [{ "currency": "ISK", "total": 400000 }] },
    { "status": "sent",       "count":  5, "amounts": [{ "currency": "ISK", "total":  50000 }] },
    { "status": "overdue",    "count":  4, "amounts": [{ "currency": "ISK", "total":  30000 }] },
    { "status": "collection", "count":  3, "amounts": [{ "currency": "ISK", "total":  20000 }] }
  ]
}
Example Requests
HideShow
# Single month (April 2026)
curl -k -X GET "https://konto.is/api/v1/invoice-summaries?year=2026&month=4" \
  -H "Authorization: Basic $(echo -n 'testuser:YOUR_API_KEY' | base64)"

# Multi-month range (Q1 2026)
curl -k -X GET "https://konto.is/api/v1/invoice-summaries?year=2026&from_month=1&to_month=3" \
  -H "Authorization: Basic $(echo -n 'testuser:YOUR_API_KEY' | base64)"

# Full year
curl -k -X GET "https://konto.is/api/v1/invoice-summaries?year=2026" \
  -H "Authorization: Basic $(echo -n 'testuser:YOUR_API_KEY' | base64)"

# Custom date range
curl -k -X GET "https://konto.is/api/v1/invoice-summaries?from_date=2026-01-15&to_date=2026-04-15" \
  -H "Authorization: Basic $(echo -n 'testuser:YOUR_API_KEY' | base64)"

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=create_invoice,manage_customers&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
navGET /api/v1/agent/invoices, GET /api/v1/agent/invoices/count, GET /api/v1/agent/invoices/{id}, PUT /api/v1/agent/invoices/{id}, GET /api/v1/agent/items, GET /api/v1/agent/items/count, GET /api/v1/agent/items/{id}, POST /api/v1/agent/items, PUT /api/v1/agent/items/{id}
create_invoicePOST /api/v1/agent/invoices, POST /api/v1/agent/quotes
recurringPOST /api/v1/agent/recurring-invoices
manage_customersGET /api/v1/agent/customers, GET /api/v1/agent/customers/count, POST /api/v1/agent/customers, GET /api/v1/agent/customers/{guid}, PUT /api/v1/agent/customers/{guid}
costGET /api/v1/agent/costs, GET /api/v1/agent/costs/count, POST /api/v1/agent/costs, POST /api/v1/agent/costs/advanced, GET /api/v1/agent/costs/{id}, PUT /api/v1/agent/costs/{id}, DELETE /api/v1/agent/costs/{id}, POST /api/v1/agent/costs/{id}/move-to-new
taskGET /api/v1/agent/tasks, GET /api/v1/agent/tasks/count, POST /api/v1/agent/tasks, GET /api/v1/agent/tasks/{guid}, POST /api/v1/agent/tasks/{guid}/start, POST /api/v1/agent/tasks/{guid}/end, POST /api/v1/agent/tasks/{guid}/deactivate, POST /api/v1/agent/tasks/log, PUT /api/v1/agent/tasks/log, DELETE /api/v1/agent/tasks/log/{id}
sell_productGET /api/v1/agent/product-sales, GET /api/v1/agent/product-sales/count, GET /api/v1/agent/product-sales/{id}/attendees
dashboard_dataGET /api/v1/agent/status, GET /api/v1/agent/invoice-summaries
bookkeeperBookkeeper 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, on creation or rotation, client_secret. Store the secret securely — it is returned only once, on creation or rotation, and cannot be retrieved later.

Idempotent. The identity key is (user, name, redirect_uri). Calling register again with the same key does not create a duplicate client and does not return a secret — it returns the existing client_id with "existing": true and "client_secret": null. To replace a lost secret, send "rotate_secret": true; this invalidates the old secret immediately for future /agent/token calls while leaving already-issued access/refresh tokens valid.

Per environment. Clients are scoped to the environment they were registered in — a client registered on dev.konto.is does not exist on konto.is, and vice versa.

Authentication (any one of): session cookie (web UI), HTTP Basic auth base64(username:api_key), or username + api_key in the JSON body (shown below).

POST /agent/register
HideShow
ParameterTypeRequiredDescription
usernamestringYes*Konto username (owner). *Required only for the body-credential auth mode; omit when using a session cookie or Basic auth.
api_keystringYes*Konto API key. *See note on username.
namestringYesHuman-readable agent name (part of the idempotency key)
descriptionstringNoShort description
redirect_uristringYesOAuth2 callback URL — must be https:// (part of the idempotency key)
rotate_secretbooleanNoDefault false. When true and the client already exists, generates a new secret and invalidates the old one.
Response
HideShow
// 200 — new client created (secret returned once)
{
  "status":        true,
  "existing":      false,
  "client_id":     "a1b2c3d4e5f6...",
  "client_secret": "secret_shown_once",
  "name":          "My MCP Server",
  "redirect_uri":  "https://myapp.example.com/callback"
}

// 200 — client already exists (no secret returned)
{
  "status":        true,
  "existing":      true,
  "client_id":     "a1b2c3d4e5f6...",
  "client_secret": null,
  "name":          "My MCP Server",
  "redirect_uri":  "https://myapp.example.com/callback"
}

// 200 — secret rotated (rotate_secret: true; old secret now invalid)
{
  "status":        true,
  "existing":      true,
  "rotated":       true,
  "client_id":     "a1b2c3d4e5f6...",
  "client_secret": "NEW_secret_shown_once",
  "name":          "My MCP Server",
  "redirect_uri":  "https://myapp.example.com/callback"
}

// Error responses
// 401 { "status": false, "code": "invalid_credentials", "message": "..." }
// 403 { "status": false, "code": "webservice_required",  "message": "..." }
// 422 { "status": false, "code": "validation_error",     "message": "Field \"redirect_uri\" must be an https URL." }
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. create_invoice,manage_customers)
redirect_uristringYesMust match the registered redirect_uri
Example URL
HideShow
https://konto.is/agent/authorize
  ?client_id=a1b2c3d4e5f6
  &scopes=create_invoice,manage_customers
  &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":         "create_invoice,manage_customers"
}
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/costs/{id}/move-to-new — Move Cost to New

Requires scope cost. Re-opens an approved (Created) cost for editing by resetting it back to the New state; re-approving it afterwards regenerates its XML. This is the API equivalent of the "move to New" action in the UI. Only a cost that is approved and not yet Posted can be moved — otherwise the call fails.

POST https://konto.is/api/v1/agent/costs/{id}/move-to-new
HideShow
ParameterTypeRequiredDescription
idstringYesCost GUID, passed as a URL path segment
Response  200
HideShow
FieldTypeDescription
statusbooleantrue on success
resultstringGUID of the cost that was moved back to New
Errors
HideShow
// Missing id
{ "status": false, "message": "Field guid is required", "result": "" }

// Cost not found, or does not belong to the authenticated account
{ "status": false, "message": "No cost found", "result": "" }

// Cost is not approved, or is already Posted
{ "status": false, "message": "This cost cannot be moved to New (only approved, non-Posted costs can be re-opened for editing)", "result": "" }

// Wrong HTTP method
{ "error": true, "message": "Method not allowed — expected POST", "code": 405 }

// Missing "cost" scope
{ "error": true, "message": "Agent token does not include the required scope: cost", "code": 403 }
Example
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  https://konto.is/api/v1/agent/costs/614669f6-3560-11e7-8d19-408d5c6208bc/move-to-new

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

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 the authenticated account's company name, registration number, and username.

GET https://konto.is/api/v1/agent/status
HideShow
Response  200
HideShow
FieldTypeDescription
company_namestringRegistered company name for this account
registration_nostringCompany kennitala (registration number)
usernamestringKonto username of the authenticated user
Example
HideShow
curl -X GET \
  -H "Authorization: Bearer <token>" \
  https://konto.is/api/v1/agent/status

# Response:
{
  "company_name":    "Acme ehf.",
  "registration_no": "5501012345",
  "username":        "myuser"
}

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":     ["create_invoice", "manage_customers"],
      "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": ["create_invoice","manage_customers"] }' \
  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
}

POST /api/v1/agent/customers — Create Customer

Requires scope manage_customers. Creates a new customer profile and returns its GUID. Send customer fields as a flat JSON object or nested under a data key.

POST https://konto.is/api/v1/agent/customers
HideShow
FieldTypeRequiredDescription
kennitalastringYesRegistration number (10 digits)
namestringYesCustomer name
output_selectintYes2 = XML e-invoice, 3 = Email, 4 = PDF only
langstringYesis or en
currencystringYese.g. ISK, EUR, USD
emailstringRequired when output_select ≠ 4Customer email address
trading_partner_idstringRequired when output_select = 2E-invoice routing ID
addressstringNoStreet address
zipstringNoPostal code
citystringNoCity
phone_numberstringNoPhone number
vatstringNoVAT number
due_dateintNoDefault due date offset in days (default 3)
settlement_dateintNoDefault settlement date offset in days (default 7)
tax_exemptboolNoExempt from VAT
Example
HideShow
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "kennitala":     "1234567890",
    "name":          "Test Customer",
    "output_select": 3,
    "email":         "customer@example.com",
    "lang":          "is",
    "currency":      "ISK",
    "address":       "Laugavegur 1",
    "zip":           "101",
    "city":          "Reykjavik"
  }' \
  https://konto.is/api/v1/agent/customers

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

GET /api/v1/agent/customers/{guid} — Get Customer

Requires scope manage_customers. Returns the full Customer Object for the given GUID.

GET https://konto.is/api/v1/agent/customers/{guid}
HideShow
curl -X GET \
  -H "Authorization: Bearer <token>" \
  https://konto.is/api/v1/agent/customers/614669f6-3560-11e7-8d19-408d5c6208bc

# Response:
{
  "status": true,
  "result": {
    "guid":            "614669f6-3560-11e7-8d19-408d5c6208bc",
    "name":            "Test Customer",
    "registration_no": "1234567890",
    "output_select":   "3",
    "email":           "customer@example.com",
    "lang":            "is",
    "currency":        "ISK",
    "address":         "Laugavegur 1",
    "zip":             "101",
    "city":            "Reykjavik"
  }
}

PUT /api/v1/agent/customers/{guid} — Update Customer

Requires scope manage_customers. Updates an existing customer. Send only the fields you want to change. Same body format as POST /customers.

PUT https://konto.is/api/v1/agent/customers/{guid}
HideShow
curl -X PUT \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "output_select": 4,
    "email":         "newemail@example.com"
  }' \
  https://konto.is/api/v1/agent/customers/614669f6-3560-11e7-8d19-408d5c6208bc

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

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"
}