Goto APIs

Invoices API

General:

Basics:

Base-URL: https://capi.lagerkoll.com/v1/invoices/
Parameters in the url should all be encoded and all data sent should be UTF-8

MAX number of requests per minute is set to 200.
When the limit is hit an error with code 429 is returned, with the header "Retry-After" containing the number of seconds you have to wait for your next request.

Headers:

There are 2 ways to be authenticated when using this API. in both ways you add headers to the request.
1) Use an API-key together with store-id. This would be used when communicating machine to machine and no real person is involved. The API-key is available from where you activated the API. The store-id is also available in the same place.
2) Use a user_id and user_token together with a store-id. You get these values from the login-request. The values are connected to a person and are gained when an actual login to the system has been made.
store: <<STORE>>
user_id: <<USER_ID>>
user_token: <<USER_TOKEN>>
api_key: <<API_KEY>>
Accept: application/json
Content-Type: application/json

Errors:

Code Description
900001 Credentials don't match
900101 Common error
900429 Too many requests
901801 Error when getting invoice draft
901802 Error when adding invoice draft
901803 Error when updating invoice draft
901804 Error when deleting invoice draft
901805 Error when invoicing draft
{
  "errorCode" : 900101,
  "errorMessage" : "Something went wrong on the server",
  "errorField" : null,
  "errorData" : null
}

Invoices API:

Invoice drafts

Get invoice drafts

GETUrl: /drafts
Headers:
Accept: application/json or application/xml
Get a list of invoice drafts

Valid parameters:

Parameter Description Default value Allowed values
query
type ALL ALL, PROJECT, CUSTOMER_ORDER
return_invoiced_rows true
page 0
limit 100
sort_column created type, article_id, article_name, user, created
sort_order desc asc,desc

Body:
Successfull response:

{ "invoiceDrafts": [{ "createdByName": "createdByName", "amount": 7119.661133967219, "articleName": "articleName", "pricelistId": 4754, "endDate": 1679786367575, "rentalAmount": 5385.911016123658, "created": 1679786367575, "dataType": "dataType", "articleId": "articleId", "isInvoiced": false, "rentalCurrency": "rentalCurrency", "dataId": 7722, "price": 6696.658140937733, "isProcessed": false, "dataArticleId": 4152, "currency": "currency", "comment": "comment", "invoiceId": "invoiceId", "id": 2659, "startDate": 1679786367575, "createdById": 4235 }], "ordersCount": 512, "pages": 302, "pageSize": 2618, "page": 2718 }

Create invoice draft

POSTUrl: /drafts/customer_order/{order_id}
Headers:
Accept: application/json or application/xml
Content-type: application/json or application/xml
Create invoice drafts for articles in customer order
Body:
Successfull response:

{ "invoiceDrafts": [{ "createdByName": "createdByName", "amount": 2916.131751143932, "articleName": "articleName", "pricelistId": 1381, "endDate": 1679786367575, "rentalAmount": 169.52279138153892, "created": 1679786367575, "dataType": "dataType", "articleId": "articleId", "isInvoiced": true, "rentalCurrency": "rentalCurrency", "dataId": 1841, "price": 2349.443710814779, "isProcessed": true, "dataArticleId": 5161, "currency": "currency", "comment": "comment", "invoiceId": "invoiceId", "id": 2158, "startDate": 1679786367575, "createdById": 6547 }], "ordersCount": 2471, "pages": 2312, "pageSize": 7152, "page": 1461 }

Invoice drafts

PUTUrl: /drafts/invoice
Headers:
Accept: application/json or application/xml
Content-type: application/json or application/xml
Send existing invoice drafts to external integrations and sets the draft to invoiced
Body:

{ "type": "type", "invoiceDraftIds": [{}] }
Successfull response:

{ "invoiceDrafts": [{ "createdByName": "createdByName", "amount": 7446.809331024006, "articleName": "articleName", "pricelistId": 5847, "endDate": 1679786367575, "rentalAmount": 4575.882661553933, "created": 1679786367575, "dataType": "dataType", "articleId": "articleId", "isInvoiced": false, "rentalCurrency": "rentalCurrency", "dataId": 272, "price": 2399.9701757671933, "isProcessed": true, "dataArticleId": 9284, "currency": "currency", "comment": "comment", "invoiceId": "invoiceId", "id": 1907, "startDate": 1679786367575, "createdById": 4201 }], "articles": [{ "articleName": "articleName", "snId": "snId", "invoicedAmount": 3659.9313494013873, "batchSnBestBefore": 3845, "accountName": "accountName", "articleId": "articleId", "priceListId": 6574, "batchId": "batchId", "rentalCurrency": "rentalCurrency", "accountId": 2041, "checkoutDate": 6162, "isRental": true, "price": 50.03919275560098, "comment": "comment", "id": 1997, "projectId": 6638, "checkoutAmount": 4837.261071149188, "checkinConsumeDate": 1679786367575, "checkinAmount": 3992.983151694145, "consumedAmount": 1777.6354065596056 }] }

Classes:

InvoiceDraft

Field Type Description Default Mandatory Accepted values Example values Access
id long R
dataType String R
dataId Long R
dataArticleId Long R
articleId String R
articleName String R
amount Double R
price Double R
pricelistId long R
currency String R
rentalCurrency String R
startDate Date R
endDate Date R
rentalAmount Double R
comment String R
isInvoiced boolean Indicates if row has been marked as invoiced R
isProcessed boolean Indicates if row has been completely processed as invoiced R
invoiceId String If row has been invoiced, this is id of the created invoice R
createdById Long R
createdByName String R
created Date R

InvoiceDraftIdsRequest

Field Type Description Default Mandatory Accepted values Example values Access
invoiceDraftIds List R,W
type String invoice, cash, card, ag R

InvoiceDraftsResponse

Field Type Description Default Mandatory Accepted values Example values Access
page int R
pages int R
pageSize int R
ordersCount int R
invoiceDrafts List R

InvoiceProjectArticlesResponse

Field Type Description Default Mandatory Accepted values Example values Access
articles List R
invoiceDrafts List R

ProjectArticle

Field Type Description Default Mandatory Accepted values Example values Access
id long R,W
projectId long R,W
articleId String R,W
articleName String R,W
batchId String R,W
snId String R,W
batchSnBestBefore Long R,W
checkoutAmount Double R,W
checkinAmount Double R,W
consumedAmount Double R,W
invoicedAmount Double R,W
priceListId long R,W
isRental boolean R,W
price double R,W
rentalCurrency String R,W
comment String R,W
accountId long R,W
accountName String R,W
checkoutDate Long R,W
checkinConsumeDate Date R,W