V2 Migration guide

V1 End of life

Visma eAccounting API V1 has been publicly available for many years, but from 30th of June 2023 it’s time to say goodbye.

It’s been more than four years since we released V2 and the vast majority of users consume the latest version of the API. In order to make room for technical improvements and future versions of the API, we are deprecating V1.

This FAQ is here for you who is in the process of migration to V2.

What do you need to do?

You need to migrate your calls to V2 of each corresponding endpoint. All V1 endpoints have a corresponding V2 endpoint. If you encounter any problems you can always contact our API support: [email protected] (Sweden) / [email protected] (Norway & Netherlands).

The following endpoint will be deprecated and needs to be migrated to its corresponding V2 endpoint:

Version 1 endpointVersion 2 endpoint
GET /v1/accountbalances/{date}GET /v2/accountbalances/{date}
GET /v1/accountbalances/{accountNumber}/{date}GET /v2/accountbalances/{accountNumber}/{date}
GET /v1/accounts/{fiscalyearId}GET /v2/accounts/{fiscalyearId}
GET /v1/accounts/{fiscalyearId}/{accountNumber}GET /v2/accounts/{fiscalyearId}/{accountNumber}
GET /v1/articleaccountcodingsGET /v2/articleaccountcodings
GET /v1/articleaccountcodings/{articleAccountCodingId}GET /v2/articleaccountcodings/{articleAccountCodingId}
GET /v1/articlelabelsGET /v2/articlelabels
POST /v1/articlelabelsPOST /v2/articlelabels
GET /v1/articlelabels/{articleLabelId}GET /v2/articlelabels/{articleLabelId}
PUT /v1/articlelabels/{articleLabelId}PUT /v2/articlelabels/{articleLabelId}
GET /v1/articlesGET /v2/articles
POST /v1/articlesPOST /v2/articles
GET /v1/articles/{articleId}GET /v2/articles/{articleId}
PUT /v1/articles/{articleId}PUT /v2/articles/{articleId}
POST /v1/attachmentlinksPOST /v2/attachmentlinks
GET /v1/attachments/{attachmentId}GET /v2/attachments/{attachmentId}
POST /v1/attachmentsPOST /v2/attachments
GET /v1/bankaccountsGET /v2/bankaccounts
GET /v1/companiesGET /v2/companysettings
GET /v1/costcenteritems/{itemId}GET /v2/costcenteritems/{itemId}
PUT /v1/costcenteritems/{itemId}PUT /v2/costcenteritems/{itemId}
POST /v1/costcenteritemsPOST /v2/costcenteritems
GET /v1/costcentersGET /v2/costcenters
GET /v1/currenciesGET /v2/currencies
GET /v1/customerinvoicedraftsGET /v2/customerinvoicedrafts
POST /v1/customerinvoicedraftsPOST /v2/customerinvoicedrafts
DELETE /v1/customerinvoicedrafts/{invoiceDraftId}DELETE /v2/customerinvoicedrafts/{customerInvoiceDraftId}
GET /v1/customerinvoicedrafts/{invoiceDraftId}GET /v2/customerinvoicedrafts/{invoiceDraftId}
PUT /v1/customerinvoicedrafts/{invoiceDraftId}PUT /v2/customerinvoicedrafts/{customerInvoiceDraftId}
GET /v1/customerinvoicelistitemsGET /v2/customerinvoices
GET /v1/customerinvoicelistitems/{customerId}GET /v2/customerinvoices/ - Filter on CustomerId using $filter oData parameter.
GET /v1/customerinvoices/{invoiceId}GET /v2/customerinvoices/{invoiceId}
POST /v1/customerinvoicespaidbycreditcardPOST /v2/customerinvoices with payment card terms of payment
GET /v1/customerledgeritemsGET /v2/customerledgeritems
POST /v1/customerledgeritemsPOST /v2/customerledgeritems
GET /v1/customerledgeritems/{customerLedgerItemId}GET /v2/customerledgeritems/{customerLedgerItemId}
POST /v1/customerledgeritems/ customerledgeritemswithvoucherPOST /v2/customerledgeritems/ customerledgeritemswithvoucher
GET /v1/customerlistitemsGET /v2/customers
GET /v1/customers/{customerId}GET /v2/customers/{customerId}
PUT /v1/customers/{customerId}PUT /v2/customers/{customerId}
POST /v1/customersPOST /v2/customers
GET /v1/deliverymethodsGET /v2/deliverymethods
GET /v1/deliverytermsGET /v2/deliveryterms
GET /v1/fiscalyearsGET /v2/fiscalyears
GET /v1/fiscalyears/{id}GET /v2/fiscalyears/{id}
GET /v1/foreignpaymentcodesGET /v2/foreignpaymentcodes
GET /v1/orderlistitemsGET /v2/orders
GET /v1/orderlistitems/{customerId}GET /v1/orders - Filter on CustomerId using $filter oData parameter.
GET /v1/orders/{orderId}GET /v2/orders/{orderId}
PUT /v1/orders/{orderId}PUT /v2/orders/{orderId}
POST /v1/ordersPOST /v2/orders
DELETE /v1/partnerresourcelinks/{partnerResourceLinkId}DELETE /v2/partnerresourcelinks/{partnerResourceLinkId}
GET /v1/partnerresourcelinks/{partnerResourceLinkId}GET /v2/partnerresourcelinks/{partnerResourceLinkId}
PUT /v1/partnerresourcelinks/{partnerResourceLinkId}PUT /v2/partnerresourcelinks/{partnerResourceLinkId}
GET /v1/partnerresourcelinksGET /v2/partnerresourcelinks
POST /v1/partnerresourcelinksPOST /v2/partnerresourcelinks
GET /v1/projectsGET /v2/projects
POST /v1/projectsPOST /v2/projects
GET /v1/projects/{projectId}GET /v2/projects/{projectId}
PUT /v1/projects/{projectId}PUT /v2/projects/{projectId}
DELETE /v1/supplierinvoicedrafts/{supplierInvoiceDraftId}/ allocationperiodsDELETE /v2/supplierinvoicedrafts/{supplierInvoiceDraftId}/allocationperiods
GET /v1/supplierinvoicedrafts/{supplierInvoiceDraftId}/ allocationperiodsGET /v2/allocationperiods- Filter on SupplierInvoiceDraftId using $filter oData parameter.
POST /v1/supplierinvoicedrafts/{supplierInvoiceDraftId}/ allocationperiodsPOST /v2/allocationperiodsusing the new properties for SupplierInvoiceDraftId and SupplierInvoiceDraftRow
PUT /v1/supplierinvoicedrafts/{supplierInvoiceDraftId}/ allocationperiodsPUT /v2/allocationperiods/ using the new properties for SupplierInvoiceDraftId and SupplierInvoiceDraftRow. Can only changed unbooked allocations
GET /v1/supplierinvoicedraftsGET /v2/supplierinvoicedrafts
POST /v1/supplierinvoicedraftsPOST /v2/supplierinvoicedrafts
GET /v1/supplierinvoicedrafts/{supplierInvoiceDraftId}GET /v2/supplierinvoicedrafts/{supplierInvoiceDraftId}
PUT /v1/supplierinvoicedrafts/{supplierInvoiceDraftId}PUT /v2/supplierinvoicedrafts/{supplierInvoiceDraftId}
GET /v1/supplierinvoicesGET /v2/supplierinvoices
GET /v1/supplierinvoices/{supplierInvoiceId}GET /v2/supplierinvoices/{supplierInvoiceId}
GET /v1/supplierlistitemsGET /v2/suppliers
GET /v1/suppliers/{supplierId}GET /v2/suppliers/{supplierId}
PUT /v1/suppliers/{supplierId}PUT /v2/suppliers/{supplierId}
POST /v1/suppliersPOST /v2/suppliers
GET /v1/termsofpaymentGET /v2/termsofpayments
GET /v1/termsofpayment/{id}GET /v2/termsofpayments/{id}
GET /v1/unitsGET /v2/units
GET /v1/units/{id}GET /v2/units/{id}
GET /v1/vatcodesGET /v2/vatcodes
GET /v1/vatcodes/{id}GET /v2/vatcodes/{id}
GET /v1/vouchers/{fiscalyearId}GET /v2/vouchers/{fiscalyearId}
GET /v1/vouchers/{fiscalYearId}/{voucherId}GET /v2/vouchers/{fiscalYearId}/{voucherId}
POST /v1/vouchersPOST /v2/vouchers

New features in V2

There are quite some benefits you get when migrating from V1 to V2: