Version releases
We are constantly adding new features to Procountor API. This page has the planned changes in future releases as well as release notes for the current ones. For anyone interested, we recommend subscribing to our mailing list to get notifications about API changes as soon as they become available.
Currently available API versions
API Path | Version | Release Date | Support Ends |
---|---|---|---|
/latest |
Monthly release with no extended support. However, if new API version isn't released, it will continue to have the previous release | ||
/supported |
24.02 | Updated to the latest numbered version every three months | |
/v2402 |
24.02 | 2024-02-17 | mid-Nov 2024 |
/v2311 |
23.11 | 2023-11-18 | mid-Aug 2024 |
/v2308 |
23.08 | 2023-08-19 | mid-May 2024 |
You can find the version update schedule from Procountor news and announcements site.
Release notes
Planned for future
Upcoming API breaking changes
- In Procountor release version 88.0 (May 2024),
base_url
anddocumentation
fields fromGET /status
will be removed GET /users/rights
will be updated to align it with Procountor UI (Management > Users and user rights)
Changes in version 24.04
Endpoints
- We have added a new endpoint
GET /invoices/personalverifications
to fetch invoice ids waiting for verification from the currently logged in user, including those invoices where the user has been assigned as a substitute. Details of the returned invoice can be fetched fromGET /invoices/{invoiceId}
. This endpoint returns empty list- If the user doesn’t have any invoice to verify
- Invoice circulation is disabled for all the supported invoice types (
useForPurchaseInvoices
anduseForTravelAndExpenseInvoices
arefalse
inGET /company/invoicecirculation/settings
) - If the user doesn't have "All rights" to verify (
verification
inPurchasesRights
inGET users/rights
)
This endpoint supports required query parameter types
, which accepts more than one type, separated by comma. Available values are PURCHASE_INVOICE
,TRAVEL_INVOICE
, BILL_OF_CHARGES
. If the user doesn’t have required permission to the given invoice types
, 403
error is returned.
- We have also added a new endpoint
GET /invoices/personalapprovals
to fetch invoice ids waiting for approval from the currently logged in user, including those invoices where the user has been assigned as a substitute. Details of the returned invoice can be fetched fromGET /invoices/{invoiceId}
. This endpoint returns empty list- If the user doesn’t have any invoice to approve
- Invoice circulation is disabled for all the supported invoice types (
useForPurchaseInvoices
anduseForTravelAndExpenseInvoices
arefalse
inGET /company/invoicecirculation/settings
) - If the user doesn't have "All rights" to approve (
approval
inPaymentTransactionsRights
inGET users/rights
)
This endpoint supports required query parameter types
, which accepts more than one type, separated by comma. Available values are PURCHASE_INVOICE
,TRAVEL_INVOICE
, BILL_OF_CHARGES
. If the user doesn’t have required permission to the given invoice types
, 403
error is returned.
Others
- API reference documentation has been updated
- Endpoints that support batch requests, their ID parameter is now of
type
string
andformat
multi
- Endpoints that accept
integer
parameters,format
of those parameters have been changed fromint64
toint32
- Endpoints that support batch requests, their ID parameter is now of
This has been fixed for all API versions.
Changes in version 24.03
Endpoints
-
From now onwards following endpoints check whether usage settings (in Procountor UI: Management > Company info > Usage settings) to use cash discount is in use or not. If cash discount is not in use, API returns
400
error code when request is sent withcashDiscount
. This affects all API versions.POST /businesspartners
PUT /businesspartners/{id}
PATCH /businesspartners/{id}
-
GET/businesspartners/{id}
andGET/invoices/{id}
endpoints from now onwards do not returncashDiscount
inBusinessPartnerPaymentInfo
andPaymentInfo
object respectively, when there is no cash discount or cash discount is not in use (in Usage settings). This affects all API versions -
In Swedish and Danish environments,
GET /ledgerreceipts
andGET /ledgerreceipts/{receiptId}
endpoints now return optionalserialNumber
, if it exists.SerialNumber
object consists ofseries
andnumber
.
Others
API Developers portal has been updated with own links for Sweden (e.g. Swedish Procountor API Terms of Use, General use and customer agreement terms, Partner program for Swedish software companies, Support and consultancy, Procountor customer service).
Changes in version 24.02
Endpoints
- To ensure that only the latest invoice is updated and there are no multiple accounting pages for the same invoice, it is now mandatory to send the latest invoice version in
version
when callingPUT /invoices/{invoiceId}
endpoint. UseGET /invoices
orGET /invoices/{invoiceId}
to obtain the latest invoice version. When trying to update invoice with an older invoice version, API now returns error code400
with proper error message. Note this change applies only to the latest API version.
No new API release in January, 2024
Changes in version 23.12
Endpoints
-
From
GET /businesspartners/personaldetails
endpoint, following fields inBusinessPartnerPaymentDetails
have been removed as they do not belong to a Person in Person register:cashDiscountDays
cashDiscountPercentage
-
Documentation for query parameter
originalInvoiceNumber
inGET /invoices
endpoint has been changed frominteger
tostring
in all API versions. Note, API request was already acceptingstring
.
-
POST /invoices
,PUT /invoices/{invoiceId}
andGET /invoices/{invoiceId}
endpoints now support 1 - 3 cash discount options inCashDiscountOption
. When sending more than 1 cash discount option inPOST /invoices
orPUT /invoices/{invoiceId}
endpoint:numberOfDays
anddiscountPercentage
must be unique- Smaller
numberOfDays
must have biggerdiscountPercentage
discountPercentage
must be less than 100
Otherwise in the above cases, API returns
400
error response.Provided cash discount options are saved in ascending order by
numberOfDays
. -
POST /businesspartners
,PUT /businesspartners/{id}
,PATCH /businesspartners/{id}
andGET /businesspartners/{id}
endpoints now support 1 - 3 cash discount options inCashDiscountOption
. When sending more than 1 cash discount option inPOST /businesspartners
,PUT /businesspartners/{id}
orPATCH /businesspartners/{id}
endpoint:numberOfDays
anddiscountPercentage
must be unique- Smaller
numberOfDays
must have biggerdiscountPercentage
discountPercentage
must be less than 100
Otherwise in the above cases, API returns
400
error response.Provided cash discount options are saved in ascending order by
numberOfDays
. -
GET /businesspartners/personaldetails
endpoint now returns currently logged in user's invoicing information from Person register in the newly added objectBasicInvoicingInfo
, which containscustomerNumber
,identifierType
andidentifier
. If the values for these fields are missing, emptyinvoicingInfo
is returned. -
From now on
PUT /invoices/{invoiceId}/verify
andPUT /invoices/{invoiceId}/approve
endpoints will validate VAT status / VAT% combination when verifying or approving invoices. If the invoice row has VAT% other than 0%, VAT status must be 'Domestic'. If this validation fails, API sends400
error and invoice status isn't changed.
Changes in version 23.11
Endpoints
-
Following new optional fields have been added to
cashDiscount
inpaymentInfo
used in Invoice endpoints:GET /invoices/{invoiceId}
,POST /invoices
,PUT /invoices/{invoiceId}
, and Business partners endpoints:GET /businesspartners/{id}
,POST /businesspartners
,PUT /businesspartners/{id}
,PATCH /businesspartners/{id}
optionList
that containsnumberOfDays
anddiscountPercentage
cashDiscountsTermType
that indicates the start point for payment due date calculation and can be eitherFROM_INV_DATE
orFROM_END_OF_MONTH
.FROM_INV_DATE
is default for all countries.FROM_END_OF_MONTH
can be used only in Denmark.Still maximum 1 cash discount option is supported. Any additional cash discount options sent in
POST /invoices
,PUT /invoices/{invoiceId}
,POST /businesspartners
,PUT /businesspartners/{id}
orPATCH /businesspartners/{id}
request will be ignored.
-
We have added a new validation rule when setting business partner group to inactive in
PUT /businesspartners/groups/{id}
. If a business partner group has been set as the Maksuvahti automated invoice sending exclusion group, that group cannot be set to inactive. If that is attempted,400
error response is returned with descriptive error message. You should remove the group from Maksuvahti's "Prevent automatic transferring" setting in Procountor UI Management > Company info > Debt collection settings, to be able to set the business partner group inactive again. GET /businesspartners/groups
now supports filtering bytype
. Supported types areCUSTOMER
,SUPPLIER
andPERSON
. For other type, API returns400
error response.
Changes in version 23.10
Endpoints
-
In Swedish and Danish environments, receipts are now automatically assigned a new serial number when financial year is closed. This is to ensure an unbroken receipt series and prevent invalidation after year is closed.
- Purchase invoice, sales invoice, expense claim, travel invoice and journal with a serial number can not be invalidated anymore with
PUT /invoices/{invoiceId}/invalidate
request. Otherwise,400
error response is returned. - Journal with a serial number can not be invalidated anymore with
PUT /ledgerreceipts/{receiptId}/invalidate
request. Otherwise,400
error response is returned. - Journal with a serial number can not change its status to Unfinished through
PUT /ledgerreceipts/{receiptId}/unfinished
request. Otherwise,400
error response is returned.
- Purchase invoice, sales invoice, expense claim, travel invoice and journal with a serial number can not be invalidated anymore with
-
We have added a new optional field
receiptNumber
that returns number of the ledger receipt inGET /ledgerreceipts
endpoint. - From now on, API sends
403
error response when trying to delete payment event inMARKED_PAID
status that was created by credit invoice allocation viaDELETE /invoices/{invoiceId}/paymentevents/{paymentEventId}
endpoint. - Bug in
PUT /invoices/{invoiceId}/sendToCirculation
that sentINVALID_BIC
error when trying to approve Swedish purchase e-invoice, where the payment method was Bankgiro or Plusgiro has been fixed.
Others
- Link to Privacy policy has been added to API login page. This has been implemented for all API versions.
- Earlier in API login page, when trying to navigate back from “Company select” view, previous API UI login page was not displayed. This has now been fixed.
- Examples of curl request for sending sensitive information has been added to API authentication and M2M authentication pages in API documentation.
Changes in version 23.09
Endpoints
-
To increase security, from now onwards request sent with URL parameters during API and M2M authentication in the following endpoints will receive HTTP
403
error code. This affects all API versions. But if you are already sending request parameters in body and not as params in URL - no change is required on your side./api/oauth/token
/api/oauth/key
-
We have added a new endpoint
GET /invoice/{invoiceId}/image
to fetch invoice image as PNG, one page at a time. GET /products
endpoint now supports filtering by product name, including part of product name.- In
GET /businesspartners
endpoint, it is now possible to filter business partners by part of partner name. Earlier,name
header parameter supported only full match.
Changes in version 23.08
Endpoints
- Following query parameters will no longer be supported. This change will affect all API versions. Those sensitive data need to be provided instead in their respective HTTP request headers.
username
inGET /attachments
accountNumber
inGET /bankstatements
name
andidentifier
inGET /businesspartners
accountNumber
inGET /referencepayments
Older release notes
Older release notes can be found from their own page.