Hello everyone, and welcome back to those returning from vacation! We hope summer treated you well. ☀️
Time to get back in the game — here’s what’s new in our API.

🆕 Added


🐛 Fixed

Error handling for order drafts:

  • GET /v2/orders/{id}/print now returns a ValidationException with the message "Order drafts cannot be printed", when called for an order draft.
  • POST /v2/orders/{id}/email now returns a ValidationException with the message "Order drafts cannot be sent by e-mail", when called for an order draft.

Any questions? You know what to do ➡️ Support. 📫

Hey dev peeps! 🍀

Summer is here, and so are the new updates in our API. Let's dive in!

🆕 Added

  • New endpoint: GET /v2/backgrounds. This endpoint lets you get all available document backgrounds.

  • New property for DocumentApi. Affected endpoint: GET /v2/documents/{id}.
    • Title - Represents the title or descriptive name of the document.





As always, if there're any questions, don't hesitate to reach out. Support 📫.

We're excited to announce that Visma Spcs is now Spiris.
This also means a small change in product naming:

  • In Sweden, Visma eEkonomi is now called Bokföring & Fakturering/Bookkeeping & Invoicing.
  • In all other markets, the product name remains eAccounting.

Our API continues to support integrations across borders, and these naming updates will not affect your existing setups.

Read more about this here.
If you have any questions, don’t hesitate to reach out. We're here to help.

Hello, dev people! 👋
Just stopping by with a few new updates. No brand new endpoints this time – but, we've given the old ones some well-deserved attention. Here's what's new:

🆕Added


  • New error messages now visable.
    We've added a few error messages to the documentation that were already in use behind the scenes. Now they're properly listed, so you'll know exactly what to expect if things go sideways. You can find them here.


As always, let us know if anything looks funky or if you've got questions. Until next time – happy coding! 💻

Howdy, code wranglers! 🤠
Spring is in the air, and we've got some fresh updates for you. Let's get down to business:

🆕Added

  • New property for AttachmentResultApi. Affected endpoint GET /v2/attachments, GET /v2/attachments/{attachmentId}

    • Photosource
      • Unknown = 0
      • VismaScannerApp = 1
      • CompanyEmail = 2
      • EmployeeEmail = 3
      • DragAndDrop = 100
      • eInvoice = 101
      • ScanPDF = 102
      • ScanLetter = 103
      • Integration = 105
  • Four new properties for CompanySettingsApi. Affected endpoint GET /v2/companysettings, PUT /v2/companysettings

    • UsesSupplierInvoiceEdit - Allow editing of purchase invoices.
    • UsesAdvancedMode - Show debit and credit on purchase invoices.
    • FirstPaymentReminderWithoutFee - Describes if first payment reminder is free of charge. To skip updating this property, set it to null.
    • LatePaymentFee - Late payment fee. To skip updating this property, set it to null.

As always, if there are any questions, just toss them our way and let's tackle them together. Happy coding, everyone! 🌞

Hey developers! We've got some exciting updates for you:

🆕 Added

Time to integrate and make your applications even more powerful! Happy coding! 😎

Payroll API news

by Emelie Gasslander

Greetings, developers! 🧑‍💻
We've got some new and shiny updates for you. Let's dive right into the details:

🆕 Added

New property for CreateEmployeeContractRequest. Affected endpoint: POST /v2/employees

  • TimeReserveType - Timebank reserve type
    • 1 = WorkingTimeReserve
    • 2 = WorkingTimeAcount

New properties for CreateEmployeeResponse and EmployeeResponse. Affected endpoints: POST /v2/employees, GET /v2/employees, GET /v2/employees/{employeeId}

  • TimeResereveType - Timebank reserve type
    • 1 = WorkingTimeReserve
    • 2 = WorkingTimeAcount
  • TimeResereveInMinutes - Amount of minutes accumulated in timebank reserve

New property for CreateTimebankRequest and TimebankUpdateRequest. Affected endpoints: POST /v2/shortcuts/timebank, PUT /v2/shortcuts/timebank/{id}

  • PayOutSource - Type of hours balance, which will be decreased by the shortcut
  • 1 = CompensationTime
  • 2 = WorkingTimeReserve
  • null will be interpreted as CompensationTime

New property for TimebankResponse. Affected endpoints: POST /v2/shortcuts/timebank , GET /v2/shortcuts/timebank/{timebankId} , GET /v2/shortcuts/timebank/{startDate}/{endDate} , PUT /v2/shortcuts/timebank/{id}

  • PayOutSource - Type of hours balance, which will be decreased by the shortcut
    • 1 = CompensationTime
    • 2 = WorkingTimeReserve

💀 Deprecated

Deprecated properties for CreateTimebankRequest and TimebankUpdateRequest. Affected endpoints: POST /v2/shortcuts/timebank , PUT /v2/shortcuts/timebank/{id}

  • ScheduleStartTime - Deprecated (value will be ignored)
  • ScheduleEndTime - Deprecated (value will be ignored)
  • ScheduledDayBreakTime - Deprecated (value will be ignored)

Deprecated properties for TimebankResponse Affected endpoints: POST /v2/shortcuts/timebank , GET /v2/shortcuts/timebank/{timebankId} , GET /v2/shortcuts/timebank/{startDate}/{endDate} , PUT /v2/shortcuts/timebank/{id}\

  • ScheduleStartTime - Deprecated (value will always be null)
  • ScheduleEndTime - Deprecated (value will always be null)
  • ScheduledDayBreakTime - Deprecated (value will always be 0)

Happy coding! If you have any more questions or need further clarification, feel free to ask. Support 📧

Moving forward this will be the new format of delivering news, we'll make our best to publish news once every month. A lot of new stuff since last time 😄 Enjoy!

🆕 Added

  • New endpoint: POST /v2/customerinvoices/{invoiceId}/einvoice. This endpoint lets you send a existing customer invoice electronically using e-invoice.
  • New endpoint: GET /v2/foreignpaymentcodes/{foreignPaymentCodeId}. This endpoint lets you fetch a foreign payment code by id.
  • New properties for CustomerInvoiceApi. Affected endpoints: GET /v2/customerinvoices, GET /v2/customerinvoices/{invoiceId} and POST /v2/customerinvoices.
    • PaymentRemindersCount - Read only. Number of payment reminders sent for the overdue invoice.
    • LastPaymentReminderSentDate - Read only. Last payment reminder date for the overdue invoice. Null if no payment reminder has been sent.
    • TaxDeductionStatus- Read only. Represents the status of an invoice with applicable tax deduction in relation to export to tax authority. Possible values:
      • 0 - None. The invoice has not yet fully been paid by the customer.
      • 1 - ApplicableForDeductionExport. The invoice has been fully paid and can be exported to tax authority.
      • 2 - ExportedToTaxAuthority. The invoice has been exported to tax authority.
      • 3 - RejectedByTaxAuthority. The invoice has been rejected by tax authority.
    • IsQuickInvoice - Read only. Indicates if the invoice was created from journal entries posted manually or imported from another program.
    • IsCollectiveInvoice- Read only. Indicates if the invoice was created from more than one order.
    • CollectiveCustomerInvoiceRowsRelationToOrders- Read only. When IsCollectiveInvoice is true, this property is a populated list of the relation between the collective invoice rows and the orders that the invoice is generated from.
  • New properties for CustomerApi. Affected endpoints: GET /v2/customers, GET /v2/customers/{customerId}, POST /v2/customers and PUT /v2/customers/{customerId}.
    • PropertyType- Represents type of property, Possible values:
      • 1 - Apartment
      • 2 - Property
    • PropertyReference- Reference of the property.
    • TaxDeductionNumber- Tax Deduction Number related to the customer/property.
  • New property for ArticleApi. Affected endpoints: GET /v2/articles, GET /v2/articles/{articleId}, POST /v2/articles and PUT /v2/articles/{articleId}.
    • SupplierId- Id of the main supplier for the article. Clear by setting to empty GUID. Only available when stock module is activated.
    • OrderingPoint- Sets the ordering point of the article. Used when stock module is activated and article sales category type is Goods.
  • New property for SupplierInvoiceDraftApi. Affected endpoints: GET /v2/supplierinvoicedrafts and GET /v2/supplierinvoicedrafts/supplierInvoiceDraftId.
    • IsAutoInvoiceInterimSupplier - Read only. If e-invoice and doesn't have a supplier already registered then this value is true.
  • New property for SupplierApi. Affected endpoints: GET /v2/suppliers and GET /v2/suppliers/supplierId.
    • LastInvoiceDate - Read only. If there's been an invoice sent from this supplier the last invoice date will be represented here.
  • New property for CompanySettingsApi. Affected endpoints: GET /v2/companysettings and PUT /v2/companysettings.
    • VismaWebshopStatus - Read only. Status of synchronization with Visma Webshop. Possible values:
      • 0 - No synchronization
      • 1 - Synchronization is enabled
      • 2 - Synchronization not wanted (disabled)
      • 3 - Synchronization requested
    • UsesVatTriangulationRules- When set to true, EU triangular transactions involve three parties and direct goods shipping, with the end VAT-registered customer liable for VAT.
  • New property for OrderApi. Affected endpoints: GET /v2/orders, GET /v2/orders/{id}, POST /v2/orders/ and PUT /v2/orders/{id}.
    • CreatedFromQuoteId- Read only. If order was created from a quote, the quote id will be represented here.
    • TermsOfPaymentId- If this is set, the specific term of payment id will be used for this specific order instead of using the default term from the customer.
  • New properties for WebshopOrderApi. Affected endpoints: GET /v2/webshoporders and GET /v2/webshoporders/{webshopOrderId}. Added several properties related to customer information, notes and message threads.

Changed

🐛 Fixed

We're making a minor change to newly created Identity Server clients. In order to decrease complexity we are changing the way refresh tokens behaves. As of today refresh tokens are always renewed when requesting new tokens (requests towards https://identity.vismaonline.com/connect/token with grant_type=refresh_token). Going forward new clients will not have a rotating refresh token, instead it will be reusable.

If you are an existing integration partner and want to opt-in on this you can always contact our API support:

Swedish partners: [email protected]

Norwegian partners: [email protected]

Dutch partners: [email protected]

If you want to read more on this we recommend this article written by the team from Duende Software.

Status?

We are glad to inform you all that we are on track with development when it comes to the new feature discount in fixed amount.
Hope you all have read in our previous post about this feature otherwise we recommend you all do and prepare for being able to put these new properties into use!


What is next?

So on October the 14:th we will remove the read only to be able to create, read, update and write (all CRUD functionality) in both the API endpoints and the eAccounting Web UI with the new properties IsDiscountInFixedAmount (boolean, optional) and DiscountFixedAmount (number, optional, 2 decimals).

Questions? Don't hesitate to contact support!