👍

New properties on Allocationperiod

New properties on GET /v2/allocationperiods:

CustomerInvoiceDraftId
CustomerInvoiceDraft
RowSourceDate
Description
NumberAndNumberSeries
AllocationPeriodRowType

What's new?

We've implemented a new customer type in Visma Online (our platform) for sandbox companies. That means newly registered sandbox companies will use our production environment with test companies as well as new IdentityServer clients in the production environment. They'll be suffixed automatically with "sandbox" in the company name so there's no risk of mixing them up with a real company.

Visma Lön Smart in Sweden!

Visma Lön Smart is the latest addition to our payroll suite in Sweden.

We are soon releasing Visma Lön Smart's API and it's a part of the sandbox package for swedish partners. You'll be able to integrate seamlessly with both products using the same authorization flow, separated with scopes.

The API is currently in the last phase of development, but the Visma Lön Smart service will be provisioned together with Visma eAccounting already.

Why?

This will easily solve most of the known issues with the existing sandbox environment. Deployment frequency, improved performance and multi user support are just a few of them. It will be more production-like for you as developers, which is something we've heard you have wanted for quite some time.

What do I need to do?

Register a new sandbox account here . You'll get a new sandbox company and new oAuth credentials in the production environment. For your integration code, you need to swap the clientid,clientsecretand IdentityServer base URL from https://identity-sandbox.test.vismaonline.com to https://identity.vismaonline.com and API base URL from https://eaccountingapi-sandbox.test.vismaonline.com to https://eaccountingapi.vismaonline.com.

When do I need to do that?

The old sandbox environment will be up and running until 2024-08-31. After this date, the following URLs will stop function and the companies will be removed permanently:

What about my data?!

You'll be able to export articles, customers, suppliers, chart of accounts, vouchers and more from Visma eAccounting. Just go to Settings > Import & Export. This data can then be imported in your new sandbox company. If that doesn't fulfill your needs, you can use the API to get the data you need and post to the new company.

After 2024-08-31 all old sandbox data will be deleted permanently!

Notice anything weird? Don't hesitate to contact us at [email protected].

👍

New error codes

Several new error codes have been added.

Error Codes

4026 - This error is thrown when you try to post a voucher in a locked bookkeping period.
4028 - This error is thrown when trying to undo an order that has backorders connected to it.
4029 - This error is thrown when a invalid social security number is provided for ROT/RUT input.
4032 - This error is thrown when a supplier invoice rows doesn't balance.
4033 - This error is thrown when the attempted action breaks the rules of approval flow.

📘

New bugfix

Bug fix to allow creating sales invoices to domestic customers with foreign currency with 4 decimals in UnitPrice in the API.

Affected endpoint:
POST v2/customerinvoices

📘

ShippedDateTime is set to null

ShippedDateTime will now show today's date when completing an order via the API. Also, when voiding an order completed via the API, we won't throw an error anymore.

Affected endpoints:
POST v2/orders/{id}/completed
POST v2/orders/{id}/voided

👍

New properties

We added currency fields in the API for Articles.

We also added VoucherId on AllocationPeriods.

Properties added:
CurrencyCode, PurchasePriceWithCurrency and FreightCostWithCurrency

Endpoints affected:
v2/articles
v2/articles/{articleid}

Properties added
VoucherId

Endpoints affected:
V2/AllocationPeriods

📘

Several new filters

We have added many new filters, see below

Added the possibility to filter by negative amounts

Properties: -TotalAmount, -TotalVatAmount, -TotalRoundings, -RemainingAmount

Affected endpoints:

v2/customerinvoices
v2/customerinvoices/statistics

Possibility to filter by customer ID on quotes

We have made it possible to filter by customer ID when fetching quotes.

Affected endpoint:

GET v2/quotes

Added the possibility to filter on Row/Text

Affected endpoints:

GET /v2/customerinvoices

Added the possibility to filter on Row/ArticleNumber

Affected endpoints:

GET /v2/customerinvoicedrafts

Filtering by properties 'HasAutoInvoiceError' and 'TotalAmountInvoiceCurrency'

In the v2/customerinvoices and v2/customerinvoices/statistics endpoints we are missing properties 'HasAutoInvoiceError' and 'TotalAmountInvoiceCurrency'. Those have been added and the filtering is now possible, the same as in the web.

Affected endpoints:

GET /v2/customerinvoices?$filter=HasAutoInvoiceError eq true
GET /v2/customerinvoices/statistics?$filter=HasAutoInvoiceError eq true

GET v2/customerinvoices?$filter=RemainingAmountInvoiceCurrency eq -TotalAmountInvoiceCurrency or RemainingAmountInvoiceCurrency eq TotalAmountInvoiceCurrency
GET v2/customerinvoices/statistics?$filter=RemainingAmountInvoiceCurrency eq -TotalAmountInvoiceCurrency or RemainingAmountInvoiceCurrency eq TotalAmountInvoiceCurrency

Filter customer invoices by text row

Search for invoices with tex rows that contain a specific text.

New endpoints:

GET v2/customerinvoices?$filter=Rows/any(c: contains(c/Text,'anytext'))

👍

We have added many new properties that we see add value for you developers

We added new properties wich affects PeppolID, CustomerNumber in orders and qoutes, settings for email for qoutes & orders and so on.

Expose CustomerNumber in quotedrafts, quotes and orders

New endpoints have been added to the quotedrafts, quotes and orders to expose the customerNumber in the same way as customerInvoices.

Affected endpoints:

GET v2/quotedrafts
GET v2/quotes
GET v2/orders

New property "PeppolId" added

PeppolID is now exposed in the API. The property is readonly.

Effected endpoint:

GET v2/companysettings

New properties "MessageThreads" and "Notes"

The following properties "MessageThreads" and "Notes" has been ** added to the customerinvoicedrafts endpoints. The new properties can be used to get a message thread or note by id.
Effected endpoints:

GET v2/customerinvoicedrafts
GET v2/customerinvoicedrafts/{id}

New properties EmailAddressQuote and EmailAddressOrder

These new properties will allow the user to add different recipients for quotes and orders.

Affected endpoints:

GET v2/customers
GET v2/customers/{id}
POST v2/customers
PUT v2/customers/{id}

The logic of the new endpoints below is that if the email property in the request body is empty, then the document should be sent to the default email, which comes from the email Order/Quote field. If this field is empty then the default email is the email from the email invoice field. If the email invoice field is empty you get an exception that the email was not sent.

Affected endpoints:

POST v2/quotes/{id}/email
POST v2/orders/{id}/email

📘

Here is a list of the latest bugfixes we've done

The parts we have solved affects both green technology, correct VAT numbers and so on.

Create a green tech invoice with 20 percentage for solar panel installation

This update makes it possible to create invoices with 20% and not only 15% as before, which are the only allowed values. The user has the option to change this by opening company settings and then invoice settings.

Affected endpoints:

POST v2/quotes
POST v2/orders
POST v2/customerinvoices
POST v2/quotedraft
POST v2/customerinvoicedrafts

Fix the e-mail layout formatting for quotes/orders/invoices

The formatting of the e-mail is now fixed so that it matches the one sent from the web.

Affected endpoints:

v2/quotes/{id}/email
v2/orders/{id}/email
v2/customerinvoices/{id}/email

Validate VAT number on customers

If a VAT number is added to a customer it needs to be valid according to VIES. This change will apply when creating new customers or changing existing ones. This behaviour will align with the current validation in the web application.

Affected endpoints:

POST v2/customers
PUT v2/customers/{id}

Invoice date on sales invoice drats

Today we always show the original invoice date, regardless of the company setting for “KeepOriginalDraftDate”.

This update will change the behavior to:

Keep today's date if the setting is OFF or NULL
Use the original draft date if the setting is ON
Affected endpoints:

GET v2/customerinvoicedrafts
GET v2/customerinvoicedrafts/{id}

👍

New endpoints for SalesPriceList and DiscountAgreement

We now, in eAccounting, support creating several price lists, therefore you can have specific sales prices for an article to specific customers. Also, we support creating multiple discount agreements that could be linked to a customer. These endpoints are available only for PRO variants.

Existing salespricelists and discountagreements can now be fetched in the API.

Changelog

  • Affected endpoints:

GET /v2/salespricelists
GET /v2/salespricelists/{salesPriceListId}
GET /v2/salespricelists/prices
GET /v2/salespricelists/prices/{salesPriceListId}/{articleId}
GET /v2/discountagreements
GET /v2/discountagreements/{discountAgreementId}