Endpoints for Customer Ledger
/vismanetapi/setting-up-your-integration/how-tos/customerledgerendpoint
section
In this article, you will find guidelines on how to use Visma Net API endpoints connected to the Customer Ledger.
2025-11-28T09:30:17+01:00
# Endpoints for Customer Ledger
In this article, you will find guidelines on how to use Visma Net API endpoints connected to the Customer Ledger.
For more information regarding the endpoints, query parameters, and other endpoints for all areas, please read the [Swagger Documentation](https://finance.visma.net/swaggerui/index.html).
Customer
/vismanetapi/setting-up-your-integration/how-tos/customerledgerendpoint/customer
section
Common usage example for Customer(ScreenId=AR303000)
2025-11-28T09:30:17+01:00
# Customer
Common usage example for Customer(ScreenId=AR303000)
URL: `https://api.finance.visma.net/v1/customer`
For information about the ERP logic behind Customers, please refer to the [ERP Manual Help: Customers](https://help.content.visma.net/Sweden/SE_EN/online-help/o2c/ar303000-ref.html)
## Methods
---
### GET All Customers
URL: `https://api.finance.visma.net/v1/customer`
#### Query Parameters
- `lastModifiedDateTime=YYYY-MM-DD`
As of today Filtering Parameters does not accept certain characters such as W-Z
These are the formats for Filtering
- `2001-01-01`
- `2001-01-01 13:13:13`
- `2001-01-01 13:13:13.133`
#### Compare Operators for lastModifiedDateTimeCondition
- `>` - Greater than
- `<` - Less than
- `<=` - Less than or equal to
- `>=` - Greater than or equal to
#### Usage Example
This query will return customers updated on 2025-01-14 or later:
**GET** `https://api.finance.visma.net/v1/customer?lastModifiedDateTime=2025-01-14&lastModifiedDateTimeCondition=>=`
---
### POST Customer
URL: `https://api.finance.visma.net/v1/customer`
This example shows the minimum fields you should send to be able to post a new Customer, if you are using automatic numbering you can omit the “number” field.
#### JSON Request body
```json
{
"number": {
"value": "10000"
},
"name": {
"value": "NewCustomer"
},
"overrideWithClassValues": true,
"customerClassId": {
"value": "1"
},
"mainAddress": {
"value": {
"addressLine1": {
"value": "TestRoad 13"
},
"postalCode": {
"value": "0101"
},
"countryId": {
"value": "NO"
}
}
}
}
```
If sent successfully, the API will return:

---
### POST action/createDunningLetter
URL: `https://api.finance.visma.net/v1/customer/{customerNumber}/action/createDunningLetter`
#### JSON Request body
```json
{
"dunningLetterDate": "2025-01-21T09:39:48.538Z",
"levelFrom": 1,
"levelTo": 2
}
```
If successful the API will return a message as below:

Response body:
```json
{
"actionId": "2ddece9b-a89b-4f5a-a251-2cf14837bb2d",
"actionResult": "Done"
}
```
---
### PUT Customer
URL:
PUT `https://api.finance.visma.net/v1/customer/{customerNumber}`
When using PUT, you only send the fields you want to update. In the below example, we update the mainAddress of the customer:
URL: `https://api.finance.visma.net/v1/customer/{customerNumber}`
#### JSON Request body
```json
{
"mainAddress": {
"value": {
"addressLine1": {
"value": "TestRoad 50"
},
"postalCode": {
"value": "0101"
},
"countryId": {
"value": "NO"
}
}
}
}
```
If successful the API will return a message as below:

---
Customer Credit Note
/vismanetapi/setting-up-your-integration/how-tos/customerledgerendpoint/customercreditnote
section
Common usage example for Customer Credit Note (ScreenId=AR301000)
2025-11-28T09:30:17+01:00
# Customer Credit Note
Common usage example for Customer Credit Note (ScreenId=AR301000)
URL: `https://api.finance.visma.net/v1/CustomerCreditNote`
For information about the ERP logic behind Customer Credit Note, please refer to the [ERP Manual Help: Sales invoices of type Credit note](https://help.content.visma.net/Sweden/SE_EN/online-help/o2c/ar301000-ref.html)
## Methods
---
### All Customer Credit Notes
URL: `https://api.finance.visma.net/v1/CustomerCreditNote`
#### Query Parameters
- financialPeriod=YYYYMM
Lets you define what financialPeriod to include in the response
- status=string
Limits response to CreditNotes with a status
- expandAttachments=boolean
Lets you decide if you want attachments to be expanded or not.
- expandTaxDetails=boolean
Lets you decide if you want tax detail lines to be expanded or not.
#### Usage Example
This will return Customer CreditNotes in the financial period 01-2020 that have the status “balanced”, and will not expand attachments or tax detail lines.
**GET** `https://api.finance.visma.net/v1/customerCreditNote?financialPeriod=202001&status=balanced&expandAttachments=false&expandTaxDetails=false`
---
### POST CustomerCreditNote
URL: `https://api.finance.visma.net/v1/CustomerCreditNote`
This example shows the minimum fields you should send to be able to post a new Customer Credit Note, if you are using automatic numbering you can omit the “referenceNumber” field.
#### JSON Request body
```json
{
"currencyId": {
"value": "NOK"
},
"externalReference": {
"value": "ExRef"
},
"lines": [
{
"operation": "Insert",
"inventoryNumber": {
"value": "A"
},
"quantity": {
"value": 1
},
"unitPriceInCurrency": {
"value": 1
}
}
],
"customerNumber": {
"value": "10000"
},
"referenceNumber": {
"value": "25698"
},
"documentDate": {
"value": "2025-11-21"
},
"postPeriod": {
"value": "112025"
},
"financialPeriod": {
"value": "202511"
}
}
```
If sent successfully, the API will return:

---
### PUT CustomerCreditNote
URL: `https://api.finance.visma.net/v1/CustomerCreditNote/{creditNoteNumber}`
When using PUT, you only send the fields you want to update. In the below example, we update the first line of the Credit Note:
URL:
PUT `https://api.finance.visma.net/v1/CustomerCreditNote/25698`
#### JSON Request body
```json
{
"lines": [
{
"operation": "Update",
"lineNumber": {
"value": 1
},
"inventoryNumber": {
"value": "6"
},
"quantity": {
"value": 1
},
"unitPriceInCurrency": {
"value": 1
}
}
]
}
```
If sent successfully, the API will return:

---
Customer Debit Note
/vismanetapi/setting-up-your-integration/how-tos/customerledgerendpoint/customerdebitnote
section
Common usage example for Customer Debit Note (ScreenId=AR301000)
2025-11-28T09:30:17+01:00
# Customer Debit Note
Common usage example for Customer Debit Note (ScreenId=AR301000)
URL: `https://api.finance.visma.net/v1/CustomerDebittNote`
For information about the ERP logic behind Customer Debit Note, please refer to the [ERP Manual Help: Sales invoices of type Debit note](https://help.content.visma.net/Sweden/SE_EN/online-help/o2c/ar301000-ref.html)
## Methods
---
### All Customer Debit Notes
URL: `https://api.finance.visma.net/v1/CustomerDebitNote`
#### Query Parameters
- Project=String
Will limit response to documents with the specified project
#### Usage Example
This will return Customer Debit Notes with projectID 20.
**GET** `https://api.finance.visma.net/v1/customerDebitNote?project=20`
---
### POST CustomerDebitNote
URL: `https://api.finance.visma.net/v1/CustomerDebitNote`
This example shows the minimum fields you should send to be able to post a new Customer Debit Note, if you are using automatic numbering you can omit the “referenceNumber” field.
#### JSON Request body
```json
{
"lines": [
{
"operation": "Insert",
"description": {
"value": "Test"
},
"quantity": {
"value": 2
},
"unitPriceInCurrency": {
"value": 2
},
"uom": {
"value": "STK"
}
}
],
"customerNumber": {
"value": "10000"
},
"referenceNumber": {
"value": "000050"
},
"documentDate": {
"value": "2025-01-16"
},
"postPeriod": {
"value": "012025"
},
"financialPeriod": {
"value": "202501"
},
"invoiceText": {
"value": "DebitNote"
}
}
```
If sent successfully, the API will return:

---
### PUT CustomerDebitNote
URL: `https://api.finance.visma.net/v1/CustomerDebitNote/{debitNoteNumber}`
When using PUT, you only send the fields you want to update. In the below example, we update the first line of the Debit Note:
URL:
PUT `https://api.finance.visma.net/v1/CustomerDebitNote/000050`
#### JSON Request body
```json
{
"lines": [
{
"operation": "Insert",
"lineNumber": {
"value": 1
},
"inventoryNumber": {
"value": "6"
},
"quantity": {
"value": 1
},
"unitPriceInCurrency": {
"value": 1
}
}
]
}
```
If sent successfully, the API will return:

Customer Invoice
/vismanetapi/setting-up-your-integration/how-tos/customerledgerendpoint/customerinvoice
section
Common usage example for Customer Invoice (ScreenId=AR301000)
2025-11-28T09:30:17+01:00
# Customer Invoice
Common usage example for Customer Invoice (ScreenId=AR301000)
URL: `https://api.finance.visma.net/v1/CustomerInvoice`
For information about the ERP logic behind Customer Invoice, please refer to the [ERP Manual Help: Sales invoices of type Invoice](https://help.content.visma.net/Sweden/SE_EN/online-help/o2c/ar301000-ref.html)
## Methods
---
### All Customer Invoice
URL: `https://api.finance.visma.net/v1/CustomerInvoice`
#### Query Parameters
- `lastModifiedDateTime=YYYY-MM-DD`
As of today Filtering Parameters does not accept certain characters such as W-Z
These are the formats for Filtering
- `2001-01-01`
- `2001-01-01 13:13:13`
- `2001-01-01 13:13:13.133`
#### Compare Operators for lastModifiedDateTimeCondition
- `>` - Greater than
- `<` - Less than
- `<=` - Less than or equal to
- `>=` - Greater than or equal to
#### Usage Example
This query will return suppliers updated on 2025-01-14 or later:
**GET** `https://api.finance.visma.net/v1/CustomerInvoice?lastModifiedDateTime=2025-01-14&lastModifiedDateTimeCondition=>=`
---
### POST Customer Invoice
URL: `https://api.finance.visma.net/v1/CustomerInvoice`
This example shows the minimum fields you should send to be able to post a new Customer Invoice, if you are using automatic numbering you can omit the “referenceNumber” field.
#### JSON Request body
```json
{
"invoiceLines": [
{
"operation": "Insert",
"inventoryNumber": {
"value": "222"
},
"quantity": {
"value": 500
},
"uom": {
"value": "STK"
}
}
],
"referenceNumber": {
"value": "156589"
},
"customerNumber": {
"value": "10000"
},
"documentDate": {
"value": "2025-01-27"
},
"invoiceText": {
"value": "Payment for potatoes"
}
}
```
If sent successfully, the API will return:

---
### PUT CustomerInvoice
URL: `https://api.finance.visma.net/v1/CustomerInvoice/{InvoiceNumber}`
When using PUT, you only send the fields you want to update. In the below example, we update the first line of the Invoice:
URL:
PUT `https://api.finance.visma.net/v1/CustomerInvoice/003547`
#### JSON Request body
```json
{
"invoiceLines": [
{
"operation": "Insert",
"lineNumber": {
"value": 1
},
"inventoryNumber": {
"value": "6"
},
"quantity": {
"value": 1
},
"unitPriceInCurrency": {
"value": 1
}
}
]
}
```
If sent successfully, the API will return:
