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: ![Created](201created2.png) --- ### 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: ![Created](201created2.png) 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: ![No Content](nocontent.png) --- 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: ![Created](201created5.png) --- ### 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: ![No Content](nocontent2.png) --- 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: ![Created](201created4.png) --- ### 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: ![No Content](nocontent3.png) 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: ![Created](201created3.png) --- ### 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: ![No Content](nocontent2.png)