News

Information about future and past API releases

Home  ⫽ News

Version releases

We are constantly developing new features to Procountor API. This page presents the planned changes in future version releases as well as release notes from past ones. For all interested ones, we recommend subscribing to our mailing list to get notifications from changes to the API.

The currently available API versions are listed below.

API version Release date Support ends
latest monthly release with no extended support
20.01, supported 18-01-2020 July 2020
19.10 19-10-2019 April 2020
13 17-08-2019 April 2020
12 15-06-2019 April 2020
11 18-05-2019 February 2020

Future changes

Planned changes in the next few releases

These features are on the backlog of our development team but not necessarily with a confirmed schedule. They are presented in no specific order.

Other

  • Ability for the user to switch between environments
  • New webhooks

Release notes

Changes in version 20.01

Starting from January 2020, we will enforce a 100 refresh token limitation for (API client, company, user) -tuple. This means that a single user can have at most 100 valid refresh tokens for a single company using the same client software at a time. When new tokens are requested at the limit the oldest tokens get removed.

Starting from 1st of January 2020, the refresh token lifespan will be set to 6 months. The lifespan of tokens created before then is calculated from January 1st. This means that such tokens will expire 1st of July 2020 if not invalidated before then.

Endpoints

  • GET /factoringcontracts - A new endpoint for searching factoring contracts
  • POST /factoringcontracts - A new endpoint for creating factoring contracts
  • GET /status - An endpoint for checking the API health
  • You can now filter invoices returned by GET /invoices endpoint by factoring contract id.
  • PUT /invoices/<invoiceId>/paymentevents/markpaid now returns details of the created payment event.
  • You can now add factoring contract for business partners using POST /businesspartners and PUT /businesspartners/{id} endpoints.
  • You can now filter business partners returned by GET /businesspartners endpoint based on their modification date. The date of the last modification is also returned with every business partner.
  • Missing address.name field has been added to GET /businesspartners/{id} response.

Other

  • Field validations, error messages and documentation have been clarified.

Changes in version 19.12

Endpoints

  • DELETE /products/groups/{groupId} - A new endpoint for removing sales and purchase product groups from the product catalog
  • DELETE /products/{productId} - A new endpoint for removing sales and purchase products from the product catalog
  • We've added a custom ID field to direct salary payment lists. The custom ID can be up to 80 characters in length and can be used to filter the lists returned by GET /payments/directsalarypayments.
  • You can now filter the direct salary payment lists returned by GET /payments/directsalarypayments endpoint by name.

Other

  • The page titles in API login have been changed. The basic login page is now Finago login, the reset page (opened from the Forgot password? link) is Finago password reset and the API password changing page is now titled as Finago password change.
  • A bug where the TRAVEL products were not available from the API in some environments has been fixed.
  • A bug where an invoice creation is erroneously reported as failing when using limited dimensions has been fixed.
  • Security related fixes
  • Small bug fixes and improvements

Changes in version 19.11

Endpoints

Direct salary payments
  • POST /payments/directsalarypayments - A new endpoint for creating a list of direct salary payments which will be processed as a single bundle by Procountor and a bank. Requires 2-factor authentication.
  • GET /payments/directsalarypayments - A new endpoint for accessing created direct salary payment lists.
  • PUT /payments/directsalarypayments/{paymentlistId}/cancel - A new endpoint for cancelling a created direct salary payment list before it is being processed by a bank. Requires 2-factor authentication.
  • PUT /payments/directsalarypayments/{transactionId}/confirm - A new endpoint for following the status of direct salary payment transactions.
  • Two new webhooks related to direct salary payments
    • DIRECT_SALARY_PAYMENTS_CREATED for newly created payment lists
    • DIRECT_SALARY_PAYMENTS_CANCELED for cancelled payment lists
Product endpoints
  • GET /products - The endpoint now returns only SALES and PURCHASE products if a product type is not defined with the type query parameter. TRAVEL products are returned only when the queried type is set to TRAVEL. The startDate and endDate fields are only used with TRAVEL products.
  • GET /products/{productId} - The endpoint now returns startDate and endDate fields only for products whose type is TRAVEL.
  • GET /products/groups - We've renamed the productType query parameter to type in this endpoint. When type is not given the endpoint returns all SALES and PURCHASE product groups. TRAVEL groups are returned only if the type parameter is set to TRAVEL. A matching type field is also returned with all found product groups.
  • POST /products - A new endpoint for adding new sales and purchase products to the product register.
  • PUT /products/{productId} - A new endpoint for modifying existing sales and purchase products in the product register.
  • POST /products/groups - A new endpoint for adding new sales and purchase product groups to the product register.
  • GET /products/groups/{groupId} - A new endpoint for fetching details of individual product groups from the product register.
  • PUT /products/groups/{groupId} - A new endpoint for modifying existing sales and purchase product groups in the product register.
Other endpoints
  • POST /invoices - You can now use the paymentInfo/generatedReferenceType field to specify a type for an automatically created reference code when POSTing invoices.
  • GET /vats/default - We have added vatStatuses list to this endpoint. The list contains the valid VAT statuses for the active environment.

Other

  • A bug in the Invoices API where the user was not always able to fetch a purchase invoice after it had been verified has been fixed.
  • A bug where the user defined KID was substituted with an automatically generated one when POSTing an invoice in an Norwegian environment has been fixed.

Changes in version 19.10 (supported)

Starting from this release the API versioning will follow YY.MM convention. We are also making the API support cycle more consistent. We'll release a new latest version of the API every month. Every three months we release a supported version of the API, which will be available for the following six months.

Other

  • Calling ../{transactionId}/confirm endpoints is no longer necessary in order to execute an API transaction requiring 2-factor confirmation. The confirm endpoint still returns the status of the transaction like before, but the transaction itself is completed once the user accepts it in Finago key application. Changes in a transaction status can be received using webhooks, and the status will also be available through the confirm endpoint for 24 hours from the start of the transaction.
  • We have enhanced the documentation of the webhooks

Changes in version 13.1

Endpoints

  • POST /invoices:
  • The following change affects invoices in all environments:
    • The following optional field has been added to Address model: subdivision
  • The following changes affect Sales and Purchase invoices in Finnish environments:
    • The following optional fields have been added to Invoice model: orderNumber, agreementNumber, accountingCode, deliverySite, tenderReference
  • GET /invoices/{invoiceId}:
  • The following change affects invoices in all environments:
    • The following optional field has been added to Address model: subdivision
  • The following changes affect Sales and Purchase invoices in Finnish environments:
    • The following optional fields have been added to Invoice model: orderNumber, agreementNumber, accountingCode, deliverySite, tenderReference
  • We are introducing webhooks service for subscribing to and receiving push notifications from select events. The following endpoints can be used to control the webhooks:
  • GET /webhooks: for searching subscribed webhooks
  • POST /webhooks: for subscribing to webhooks
  • PUT /webhooks/{uuid}: for updating a webhook
  • DELETE /webhooks/{uuid}: for deleting a webhook

Other

  • The format of the API specification has been changed from "Swagger 2.0" to "OpenAPI 3.0.1".
  • We have improved error handling of our endpoints.
  • There are a number of security related enhancements in this update.

Changes in version 13

Endpoints

  • GET /fiscalyear: The response model has been changed. Field isOpen has been removed and a new field status is introduced.
  • PUT /fiscalyears/{fiscalYearId}/trackingPeriods/{trackingPeriodId}: A new endpoint for changing the status of a tracking period. Currently, it is possible to change the status from OPEN to PENDING.
  • POST /businesspartner: Support for the payment method "NETS" has been added for creating customers. A new field customerAccountNumber can be filled when using NETS as a payment method (NETS is valid payment method for customers in Danish Procountor environments).

Changes in version 12

Endpoints

  • POST /invoices: It is now required to provide the VAT status of the invoices by filling the VATstatus field
  • GET /invoices/{invoiceId}: The invoices now provide the VAT status through the VATstatus field
  • GET: /company: The response model now contains the id of the corresponding accounting office
  • GET /attachments: Fetch attachments from Procountor. The user can search by date (start date - end date), name (file name), user (full name of the user), and receipt types.
  • POST /businesspartner: Create business partners through the API
  • For DELETE endpoints the response is 204 in case of success
  • Messages for wrong requests have been unified
  • Every endpoint response is now in JSON format

Other

VAT status and API versions

The newest API version 12 requires a VAT status when creating new invoices through the API. In case the VATstatus field is empty, invoices cannot be created using API version 12. If necessary, use older API versions to create invoices without providing a VAT status. The VAT status will be populated in Procountor according to the VAT defaults.

Changes in version 11

Endpoints

  • In all endpoints where a 2-factor authentication is required (all /confirm endpoints), the field name value in the response model is changed to transactionIdentifier.
  • POST /payments/directbanktransfers : We added an optional customId field to the parameters. The endpoint processes requests and responds with paymentId, customId pairs, in which customId is given in the request. If customId is not provided in the response field, they are null.
  • POST /payments: We changed the response for the requests sent to this endpoint. The response model now contains a list of pairs of paymentId, invoiceId.
  • GET payments/errormessages: General error message type BANK_TRANSFER is renamed to DIRECT_BANK_TRANSFER.
  • GET payments/errormessages: receiptId is renamed to referenceId, generalReceiptType is renamed to referenceType.
  • PUT /ledgerreceipts/{receiptId}/invalidate: New endpoint to invalidate journal receipts.
  • PUT /ledgerreceipts/{receiptId}/unfinished: New endpoint to set the journal receipt status to unfinished.

Other

TLS Protocols

Procountor will permanently disable support for legacy TLSv1 and TLSv1.1 protocols in API interfaces starting from May 18th at noon (12:00). Currently, the supported version is TLSv1.2. If your API integration does not already use TLSv1.2, the integration will stop working after May 18th. Support for TLSv1.3 protocol will be added at the same time as the old protocols are deprecated. After the release, the supported versions are thus TLSv1.2 and TLSv1.3.

Possibility to change passwords

A new user interface has been added to allow API users to change their password. More information is available on the General Information.

Changes in version 10

Endpoints

  • GET /invoices and /invoices/{invoiceId}: Sales orders, offers and purchase orders are now supported
  • PUT invoices/{invoice-id}/paymentevents/markPaid and invoices/{invoice-id}/paymentevents/markPaid/confirm: Mark as paid for sales invoices has been merged to the same endpoint with other invoice types
  • Key confirmation requirement has been removed for mark as paid (concerns all invoice types)
  • PUT /invoices/{invoiceId}/approve: Invoice approval in API now supports sales invoices
  • PUT /invoices/{invoiceId}/send: API now supports sending sales invoices
  • PUT /users: Users can now update their personal information via PUT /users
  • POST /attachments: API now supports "send with invoice" functionality in sales invoices’ attachments

Changes in version 9

Endpoints

  • PUT /invoices/pay will soon be deprecated
  • GET /invoices/{invoiceId}/comments: New endpoint for getting comments related to invoices
  • POST /invoices/{invoiceId}/comments: New endpoint for posting comments related to invoices
  • PUT /invoices/{invoiceId}/paymentevents/markPaid: New endpoint for marking sales invoices, purchase invoices, travel and expense invoices, salary slips and self-assessed tax returns as Marked paid
  • DELETE /invoices/{invoiceId}/paymentevents/{paymentEventId}/: New endpoint for removing Marked paid payment events. (Note: If the event is related to a real payment, the previously created endpoint DELETE /payments is used instead)

Other

  • API logout now removes the refresh token and all related access tokens
  • GET /invoices: Expanded the parameters with new data fields; createdStartDate, createdEndDate, versionStartDate, versionEndDate, orderByCreated, orderByVersion
  • GET /ledgerreceipts: Expanded the parameters with new data fields; createdStartDate, createdEndDate, versionStartDate, versionEndDate, orderByDate, orderByCreated, orderByVersion
  • POST /payments: Added support for foreign payments, express payments and direct bank transfers

Changes in version 8

Endpoints

  • PUT /invoices/pay will soon be deprecated
  • GET /payments: New endpoint for getting payment transactions
  • POST /payments: New endpoint for paying invoices
    • Supports only bank transfer and requires that the user has full rights to payments and to the receipt type in question
    • This will replace PUT /invoices/pay, which can be still used in version 8 but will be deprecated later
  • PUT /payments/cancel: New endpoint for canceling a payment transaction, when the payment is still waiting to be transferred to bank (payment status is "payment queued")
  • DELETE /payments: New endpoint for removing a payment transaction, when the payment is already transferred to bank (payment status is "payment sent to bank")
  • PUT /payments/confirm: New endpoint for confirming actions
  • GET /invoices/paymentevents: New endpoint for getting all payment data related to the invoices, including "Paid elsewhere"

Other

The new payments endpoint will introduce a new way of 2-step verification via API, which will also be utilized in specific endpoints in the future. We will publish a more specific documentation of the new way on our developer site after the January version release.

Changes in version 7

Endpoints

  • GET /paymenterrors: New endpoint for getting payment errors and their details with creation date or error status
  • PUT /company: New endpoint for updating the basic info of the company in Procountor
  • GET /sessioninfo: New endpoint for getting information of the current user

Other

  • GET /users: expanded with several new data fields; First name, Last name, Email address and Mobile phone number with country code (e.g. +358 50 xxx xxxx)
  • GET /company: expanded with several new data fields; Business ID, Contract type, Postal address, Billing address and in Norwegian environments also MVA (dropdown) and Trade register (checkbox)
  • A limit of 10,000 characters has been set on the invoice field additionalInformation

Changes in version 6

Endpoints

  • GET /businesspartners: New endpoint for getting all business partners (customers, suppliers, persons) from the registers in specific Procountor environment
  • GET /ledgerreceipts: Added support for all ledger receipt types
  • GET /referencepayments: New endpoint for getting reference payment data
  • GET /businesspartners/{id}: Added coverage for several data fields
  • GET /attachments: Added support for reference payments as referenceType
  • POST /attachments: Added support for reference payments as referenceType
  • PUT /businesspartners (customer and supplier): New endpoint for updating customer and supplier information
  • POST /dimensions: New endpoint for creating dimensions and their items

Other

  • Secured token requests Added support for supplying authorization code and especially client secret as request body parameters instead of supplying them as URL parameters when getting access and request tokens.

Changes in version 5.3

During Q2/2018, we have released a few minor updates to API version 5:

Endpoints

  • GET /company: New endpoint for providing basic information regarding currently logged in company.
  • GET /ledgerreceipt: Support for travel and expense invoices.
  • PUT /ledgerreceipt: Support for travel and expense invoices.

Changes in version 5.2

During Q1/2018, we have released a few minor updates to API version 5:

Endpoints

  • GET /products: Added search parameters for product validity. May be used with travel/expense products.
  • POST /invoices: Parameter vatCountry can now be supplied regardless of foreign VAT special right.

Resources

  • Invoice: Added a field for bank clearing code. Allows to post invoices with clearing as payment method.
  • Invoice: Fixed an issue which prevented from creating an invoice without a reference number. Clarified documentation.

Changes in version 5.1

An incremental update to API version 5 took place on 18th December 2017.

  • GET /businesspartners/personaldetails: New endpoint for getting basic information of the current user from the person register.
  • GET /products/({id}): Product objects now contain localised names for travel and expense invoice products when includeLocalizations parameter is given.
  • GET /products/({id}): Travel and expense invoice products no longer require access rights to product register (they are standardised and public information).
  • GET and POST /invoices: Fixed to also work for users with Personnel role in Procountor.

Changes in version 5

Endpoints

  • GET /userinfo/profiles/{userId}: New endpoint for getting basic information of persons in the current company.
  • GET /products/groups: New endpoint for fetching a list of product groups by product type.
  • GET /products: Now accepts type and group parameters for search.
  • GET /currencies: New endpoint for getting all currencies used in Procountor.
  • GET /currencies/company: New endpoint for getting the currency of the current company.
  • GET /currencies/latest: New endpoint for getting the latest currency rates.
  • GET /currencies/exchangerate: New endpoint for getting exchange rates between two currencies for a given day.
  • GET /vats/default: New endpoint for getting all VAT percentages and related information in the current company.
  • GET /vats/country: New endpoint for getting a list of VAT percentages used in a given country.

  • POST /invoices: Now supports travel invoices.

  • PUT /invoices/{invoiceId}/approve: Supports commenting the invoice.
  • PUT /invoices/{invoiceId}/verify: Supports commenting the invoice.
  • PUT /invoices/{invoiceId}/sendToCirculation: New endpoint for sending travel invoices to circulation.

Resources

  • Data model for purchase, travel and expense invoices now contains user IDs of verifiers and approvers.

Other

  • Introducing refresh tokens. Starting from API version 5, access tokens expire in a predefined time and can be renewed by using refresh tokens. Documentation is available here.

Changes in version 4

Endpoints

  • GET /products: Implemented pagination. (breaking change)
  • GET /ledgerreceipts: Implemented and documented proper pagination. (breaking change)
  • GET /invoices: Now supports expense invoices.
  • GET /invoices/{invoiceId}: Now supports travel and expense invoices.
  • PUT /ledgerreceipts/{receiptId}: Now supports ledger receipts for sales and purchase invoices. This functionality allows to e.g. define ledger accounts and add dimensions to invoices.
  • PUT /invoices/{invoiceId}/approve: Now supports travel and expense invoices.
  • PUT /invoices/{invoiceId}/verify: New endpoint for verifying purchase, travel and expense invoices.

Resources

  • Invoice: If referenceNumber field is empty when creating an invoice, a reference number is generated by Procountor.
  • Invoice: Added invoiceNumber field.
  • Invoice: Added attachments field containing a list of attachment details.
  • Invoice: Added fields related to travel/expense invoices.
  • LedgerReceipt: Extended to cover all UI fields.
  • Transaction: Extended to cover all UI fields.
  • Transaction: Removed reversingEntry field and introduced transactionType field. (breaking change)

Other

  • Documented validation error codes.

Changes in version 3

  • Introduced a new endpoint GET /invoices for searching invoices. The endpoint returns a paginated list of invoice metadata. Full invoice details can be fetched by using the GET /invoices/{id} endpoint. The invoice search supports sales, purchase, travel and periodic tax return invoices.
  • GET /invoices/{id} now supports periodic tax return invoices.
  • Added notes field to invoice model.
  • Response for posting an invoice now contains ledgerreceiptId.
  • For consistency with the UI, a BIC code (paymentInfo.bankAccount.bic) cannot be specified for sales invoices anymore.
  • Invoice orderReference field is now limited to max 70 characters as is in the UI.
  • Added support for state parameter in OAuth flow.
  • Improved API documentation.

Changes in version 2

  • New API URLs
  • JSON serialization was changed: empty strings and null values are no longer added to JSON response
  • GET /businesspartners/
  • All three type of Partners can be queried: PERSON, CUSTOMER and SUPPLIER
  • Invoice.deliveryMethod now uses a limited set of values.
  • User rights checks in /products endpoint had a bug that caused them to be too lenient. This has been fixed.
  • Added support for posting sales invoices
  • New endpoint for attachments
  • Sales invoice field "notes" has been renamed "additionalInformation"
  • Added GET /fiscalyears