---
title: "Webhooks"
description: "Webhooks notify changes in table rows, enabling your app to retrieve updates via GraphQL. Notifications include table ID, primary key, change type, and can be verified using a shared key."
lang: en
languages:
  en: https://docs.vismasoftware.no/businessnxtapi/webhooks/index.md
lastmod: 2026-07-10
---

> Documentation index: https://docs.vismasoftware.no/businessnxtapi/webhooks/llms.txt


# Webhooks

Last modified July 10, 2026

> Webhooks notify changes in table rows, enabling your app to retrieve updates via GraphQL. Notifications include table ID, primary key, change type, and can be verified using a shared key.


The Business NXT webhooks will notify when a change has been made in a table row. Your application will need an endpoint capable of receving an HTTP POST request from Visma Connect. The request will contain a signature that can be verified by your application using a shared key.

The payload contains the following fields:

| Field | Data type | Explanation |
| ----- | --------- | ----------- |
| `tableIdentifier` | `string` | Table that has been modified, corresponds to the table name in GraphQL. |
| `customerNo` | `int` | The customer number the table belongs to, can be 0 if `companyNo` is non-zero. |
| `companyNo` | `int` | The company number of the company the table belongs to, can be 0 if the table is a customer level table. As general advice rely on `companyNo`first to identify the tenant, and only if it's 0 check `customerNo`. |
| `event` | `string [INSERT\|UPDATE\|DELETE]` | The performed row action, three possible values `INSERT`, `UPDATE`, and `DELETE`. |
| `primaryKeys` | `array [[string: int64\|string]]` | The primary key represented as an array of key value pairs between the primary key column name and its value. Can contain multiple elements if the table has a composite primary key. The column name corresponds to its name in GraphQL. Note that integral values are signed and can be 64 bit. |
| `timestamp` | `string` | UTC timestamp of when the webhook was created, should only be used for `DELETE` events. It's usually stamped slightly later than the `changedTimestamp`/`createdTimestamp` found in `changedColumns` and through GraphQL queries. The `changedTimestamp` value is the perfered value. This field is no longer neccessary for `INSERT` and `UPDATE` events after the introduction of the `changedTimestamp` and `createdTimestamp` column. |
| `changedByUser` | `string` | The user name of the user performing the action, the information can also be found in changedColumns for `INSERT` and `UPDATE` events. |
| `changedColumns` | `array [[string: int64\|decimal\|string]]` | Array with key value pairs of all changed/inserted column names and values in `UPDATE` and `INSERT` events, similar to the primary key field. Binary columns' values are their length and not the binary content. The field is not present for `DELETE` events. |

Below is an example payload for updating an order line, some elements have been omitted from `changedColumns` for brevity.

```json { title = "Update order line example" }
{
    "tableIdentifier":"OrderLine",
    "customerNo":4801958,
    "companyNo":5199768,
    "event":"INSERT",
    "primaryKeys": [
        {"OrderNo":3},
        {"LineNo":1}
    ],
    "timestamp":"2025-02-06T21:15:28.3971469Z",
    "changedByUser":"ola.normann",
    "changedColumns":[
        {"Description":"Hello webhook"},
        {"ChangedDate":20250206},
        {"ChangedTime":2215},
        {"ChangedByUser":"ola.normann"},
        {"ChangeTimeInMs":80128366},
        {"ChangedTimestamp":20250206211528366}
    ]
}
```


---

[View this page](https://docs.vismasoftware.no/businessnxtapi/webhooks/)


## In this section


- [Visma Developer Portal](https://docs.vismasoftware.no/businessnxtapi/webhooks/connect/index.md): Guide on subscribing to Business NXT webhooks via the Visma Developer Portal, including setup steps, retry configurations, and securing the signature key.

- [Business NXT configuration](https://docs.vismasoftware.no/businessnxtapi/webhooks/bnxt/index.md): Guide to configuring Business NXT - Create and link User, WebhookTarget, and Webhook Subscription tables. Support outlined for multiple targets and…

- [Samples](https://docs.vismasoftware.no/businessnxtapi/webhooks/samples/index.md): Integration samples are available on GitHub, including contributions by Ole Melhus. Visit the links for examples and layouts.
