Visma.net ERP API

REST API for Visma.net ERP (Visma Net Financials) covering general ledger, accounts receivable and payable, customers, suppliers, sales orders, purchase orders, inventory, projects and dimensions. 395 paths / 511 operations, published as OpenAPI 3.0.4 in two flavours that share an identical path and schema surface but differ in OAuth flow: the Service API uses client credentials, the Interactive API uses authorization code with named scopes.

Operations 511

Showing the first 250 of 511. The full set is in the contract, and via get_provider_operations.

GET /v1/account/{accountCd} Get a specific Account - ScreenId=GL202500 #
PUT /v1/account/{accountCd} Updates an account #
GET /v1/account Get a range of General ledger accounts - ScreenId=GL202500 #
POST /v1/account Creates an account #
GET /v1/attachment/{attachmentId} Get latest revision of a specific Attachment #
PUT /v1/attachment/{attachmentId} Update a specific Attachment #
GET /v1/attribute/{attributeId} Get specific Attribute #
PUT /v1/attribute/{attributeId} Updates an attribute #
DELETE /v1/attribute/{attributeId} Deletes an attribute #
GET /v1/attribute Get a range of General ledger attributes - screen ID: CS205000. Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata info #
POST /v1/attribute Creates an attribute #
GET /v1/background/{requestId} Gets the state of a previously started background API operation #
GET /v1/background/{requestId}/content Gets the response content, if any, of a previously started background API operation that has finished #
GET /v1/blob/download/{blobId} Get a specific blob (attachment) #
GET /v1/blob/presignedurl Get a presigned URL to download a specific blob (attachment) #
GET /v1/blob/metadata/{blobId} Get metadata for a specific blob (attachment) #
GET /v1/branch/{branchNumber} Get a specific branch #
GET /v1/branch Get a range of Branches - ScreenId=CS101500 #
PUT /v1/branch/{branchNumber}/BankSettings Update bank settings for branch. #
GET /v1/budget Get a range of General Ledger Budget Figures - ScreenId=GL302010 #
PUT /v1/budget Update a specific Budget #
POST /v1/budget Create a Budget #
GET /v1/carrier/{carrierName} Get a specific Carrier #
GET /v1/carrier Get a range of Carriers - ScreeId=CS207500 #
GET /v1/cashaccount/{accountNumber} Get a specific cash account #
GET /v1/cashaccount Get all Cash Accounts - ScreenId=CA202000 #
GET /v1/cashsale/{documentNumber} Get a specific Cash Sale #
PUT /v1/cashsale/{documentNumber} Update a specific Cash Sale #
GET /v1/cashsale Get a range of Cash Sales - ScreenId=AR304000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. If reques #
POST /v1/cashsale Create a Cash Sale #
GET /v1/cashTransaction/{referenceNbr} Get a specific Transaction - ScreenID=CA304000 #
PUT /v1/cashTransaction/{referenceNbr} Update a specific CashTransaction - ScreenID=CA304000 #
GET /v1/cashTransaction Get all Transaction - ScreenID=CA304000 #
POST /v1/cashTransaction Create a Cash Transaction- ScreenID=CA304000 #
POST /v1/cashTransaction/{referenceNbr}/action/release Release cash transaction - ScreenID=CA304000 #
POST /v1/cashTransaction/{referenceNbr}/action/reverse Reverse a Cash Transaction- ScreenID=CA304000 #
POST /v1/cashTransaction/{referenceNbr}/attachment Creates an attachment and associates it with a cash transaction document. If the file already exists, a new revision is created. #
GET /v1/contact/{contactId} Get a specific Contact #
PUT /v1/contact/{contactId} Update a specific Contact #
GET /v1/contact Get a range of Contacts - ScreenId=CR302000 #
POST /v1/contact Create a Contact #
GET /v1/contractTemplate Get a range of Contract Templates - ScreenId=CT202000 #
GET /v1/contractUsage/{contractId} Get a specific Contract Usage #
PUT /v1/contractUsage/{contractId} Update a specific Contract Usage #
GET /v1/contractUsage Get a range of Contract Usage - ScreenId=CT303000 #
GET /v1/country/{countryId} Get a specific Country #
GET /v1/country Get a range of Countries - ScreenId=CS20400S Please use a page size lower or equal to the allowed max page size which is returned as part of the metadata information. If requested #
GET /v1/creditNote/{creditNoteNumber} Get a specific Credit Note - Method is deprecated start using the new method in endpoint Customer Credit Note #
PUT /v1/creditNote/{creditNoteNumber} Update a specific Credit Note - Method is deprecated start using the new method in endpoint Customer Credit Note #
GET /v1/creditNote Get a range of Credit Notes - Method is deprecated start using the new method in endpoint Customer Credit Note #
POST /v1/creditNote Create a Credit Note - Method is deprecated start using the new method in endpoint Customer Credit Note #
POST /v1/creditNote/{creditNoteNumber}/attachment Creates an attachment and associates it with a Credit Note. If the file already exists, a new revision is created. - Method is deprecated start using the new method in endpoint Cus #
POST /v1/creditNote/{creditNoteNumber}/{lineNumber}/attachment Creates an attachment and associates it with a certain Credit Note line. If the file already exists, a new revision is created. - Method is deprecated start using the new method in #
POST /v1/creditNote/{creditNoteNumber}/action/release Release credit note operation - Method is deprecated start using the new method in endpoint Customer Credit Note #
GET /v1/creditTerm Get a range of credit terms - ScreenId=CS206500 #
GET /v1/currency/{curyId} Get a specific Currency - ScreenId=CM202000 #
GET /v1/currency Get all available Currencies - ScreenId=CM202000 #
GET /v2/currencyrate Get all currency rates. #
POST /v2/currencyrate Create currency rate. #
PUT /v2/currencyrate/{currencyRateId} Update Currency rate. #
GET /v2/currencyratetype Get currency rate types. #
POST /v2/currencyratetype Create currency rate type. #
GET /v1/customer/customerClass Get Customer Classes - ScreenId=AR201000 #
GET /v1/customer/customerClass/{customerClassId} Get a specific customer class - ScreenId=AR201000 #
GET /v1/customer/{customerCd}/balance Get a specific customer's balance - ScreenId=AR303000 #
GET /v1/customer/{customerCd}/directdebit Get direct debit information for a specific customer(only for Netherlands) #
GET /v1/customer/{customerCd}/salesorder Get a range of SO Orders of a specific customer #
GET /v1/customer/{customerCd}/salesorderbasic Get a range of SO Orders Basic of a specific customer #
GET /v1/customer/{customerCd}/contact Get a range of Contacts of a specific customer #
GET /v1/customer/{customerCd}/salespersons Get a range of Sales Persons of a specific customer #
GET /v1/customer/balance Get the balance for a range of customers #
GET /v1/customer/{customerCd}/note Get a specific customer's note #
GET /v1/customer/internal/{internalID} Get a specific customer by internalID #
PUT /v1/customer/internal/{internalID} Updates a specific customer using the internalID #
GET /v1/customer/{customerCd} Get a specific customer #
PUT /v1/customer/{customerCd} Updates a specific customer #
GET /v1/customer Get a range of customers - ScreenId=AR303000 #
POST /v1/customer Creates a customer #
GET /v1/customer/{customerNumber}/invoice Get a range of invoices for a specific customer #
GET /v1/customer/{customerNumber}/cashSale Get a range of cash sales for a specific customer #
GET /v1/customer/{customerNumber}/document Gets a range of documents for a specific customer #
POST /v1/customer/{customer}/action/createDunningLetter Creates dunning letters for a specific customer #
POST /v1/customer/action/changeCustomerCd/{internalId} Updates the CustomerNr for the specified Customer #
GET /v1/customerContract/{contractId} Get a specific Customer Contract #
PUT /v1/customerContract/{contractId} Update a specific CustomerContract #
GET /v1/customerContract Get a range of Customer Contracts, a filter needs to be specified - ScreenId=CT301000 #
POST /v1/customerContract Create a CustomerContract #
GET /v1/customerContract/{contractId}/summary Get a specific Customer Contract Summary #
GET /v1/customerContract/{contractId}/details Get a specific Customer Contract Details #
GET /v1/customerContract/{contractId}/recurringSummary Get a specific Customer Contract Recurring Summary #
POST /v1/customerContract/{contractId}/action/setupContract Setup contract operation #
POST /v1/customerContract/{contractId}/action/activateContract Activate contract operation #
POST /v1/customerContract/{contractId}/action/setupAndActivateContract Setup and Activate contract operation #
POST /v1/customerContract/{contractId}/action/terminateContract Terminate contract operation #
POST /v1/customerContract/{contractId}/action/upgradeContract Upgrade contract operation #
POST /v1/customerContract/{contractId}/action/activateUpgrade Activate upgrade contract operation #
GET /v1/customerCreditNote/{creditNoteNumber} Get a specific Customer Credit Note #
PUT /v1/customerCreditNote/{creditNoteNumber} Update a specific Credit Note #
DELETE /v1/customerCreditNote/{creditNoteNumber} Deletes a specific Customer Credit Note #
GET /v1/customerCreditNote Get a range of Customer Credit Notes - ScreenId=AR301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information #
POST /v1/customerCreditNote Create a Credit Note. Method is deprecated and will be removed starting May 2021 - start using new method CustomerCreditNoteV2 endpoint. #
GET /v1/customerCreditNote/{creditNoteNumber}/print Get the print report of a Customer Credit Note #
POST /v1/customerCreditNote/{creditNoteNumber}/action/release Release credit note operation #
POST /v1/customerCreditNote/{creditNoteNumber}/action/sendToAutoInvoice SendToAutoInvoice credit note operation #
POST /v1/customerCreditNote/{creditNoteNumber}/attachment Creates an attachment and associates it with a credit note. If the file already exists, a new revision is created. #
POST /v1/customerCreditNote/{creditNoteNumber}/{lineNumber}/attachment Creates an attachment and associates it with a certain credit note line. If the file already exists, a new revision is created. #
POST /v2/customerCreditNote Create a Customer Credit Note. ScreenID=AR301000 #
GET /v1/customerCreditWriteOff/{creditWriteOffNumber} Get a specific Customer Credit WriteOff #
GET /v1/customerCreditWriteOff Get a range of Customer Credit WriteOffs - ScreenId=AR301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata informa #
GET /v1/customerDebitNote/{debitNoteNumber} Get a specific Customer Debit Note #
PUT /v1/customerDebitNote/{debitNoteNumber} Update a specific Debit Note #
GET /v1/customerDebitNote Get a range of Customer Debit Notes - ScreenId=AR301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. #
POST /v1/customerDebitNote Create a Debit Note. Method is deprecated and will be removed starting May 2021 - start using new method CustomerDebitNoteV2 endpoint. #
POST /v1/customerDebitNote/{debitNoteNumber}/action/release Release debit note operation #
POST /v1/customerDebitNote/{debitNoteNumber}/action/sendToAutoInvoice SendToAutoInvoice debit note operation #
POST /v1/customerDebitNote/{debitNoteNumber}/attachment Creates an attachment and associates it with a debit note. If the file already exists, a new revision is created. #
POST /v1/customerDebitNote/{debitNoteNumber}/{lineNumber}/attachment Creates an attachment and associates it with a certain debit note line. If the file already exists, a new revision is created. #
GET /v1/customerDebitNote/{debitNoteNumber}/print Get the print report of a Customer Debit Note #
POST /v2/customerDebitNote Create a Customer Debit Note. ScreenID=AR301000 #
GET /v1/customerdocument Gets a range of Customer Documents - ScreenId=AR301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. #
GET /v1/customerinvoice/worktypes Get all Work Types #
GET /v1/customerinvoice/{invoiceNumber} Get a specific Invoice #
PUT /v1/customerinvoice/{invoiceNumber} Update a specific Invoice #
DELETE /v1/customerinvoice/{invoiceNumber} Deletes a specific Customer Invoice #
GET /v1/customerinvoice/{refNbr}/rotrut Get Rot Rut informations for a Customer Invoice #
GET /v1/customerinvoice/{refNbr}/print Get the print report of a Customer Invoice #
GET /v1/customerinvoice Get a range of Invoices - ScreenId=AR301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. If requeste #
POST /v1/customerinvoice Create an Invoice. Method is deprecated and will be removed starting May 2021 - start using new method CustomerInvoiceV2 endpoint. #
POST /v1/customerinvoice/{invoiceNumber}/attachment Creates an attachment and associates it with an invoice. If the file already exists, a new revision is created. #
POST /v1/customerinvoice/{invoiceNumber}/{lineNumber}/attachment Creates an attachment and associates it with a certain invoice line. If the file already exists, a new revision is created. #
POST /v1/customerinvoice/{invoiceNumber}/action/release Release invoice operation #
POST /v1/customerinvoice/{invoiceNumber}/action/sendToAutoInvoice SendToAutoInvoice invoice operation #
POST /v1/customerinvoice/{invoiceNumber}/action/correct Create a correction document for a released document #
POST /v1/customerinvoice/{invoiceNumber}/action/reverse Reverse an Invoice #
POST /v1/customerinvoice/{invoiceNumber}/action/reverseandapplytonote Reverse and Apply to Note #
POST /v2/customerinvoice Create an Invoice. ScreenID=AR301000 #
GET /v1/customerOverdueCharge/{overdueChargeNumber} Get a specific Customer Overdue Charge #
PUT /v1/customerOverdueCharge/{overdueChargeNumber} Update a specific Overdue Charge #
GET /v1/customerOverdueCharge Get a range of Customer Overdue Charges - ScreenId=AR301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata informat #
POST /v1/customerOverdueCharge/{overdueChargeNumber}/action/release Release overdue charge operation #
POST /v1/customerOverdueCharge/{overdueChargeNumber}/attachment Creates an attachment and associates it with an overdue charge. If the file already exists, a new revision is created. #
POST /v1/customerOverdueCharge/{overdueChargeNumber}/{lineNumber}/attachment Creates an attachment and associates it with a certain overdue charge line. If the file already exists, a new revision is created. #
GET /v1/customerPayment/{paymentNumber} Get a specific Payment #
PUT /v1/customerPayment/{paymentNumber} Update a specific Payment #
GET /v1/customerPayment Get a range of Payments. - SceenId=AR302000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. If requeste #
POST /v1/customerPayment Create a Payment #
POST /v1/customerPayment/{paymentNumber}/action/release Release payment operation #
POST /v1/customerPayment/{paymentNumber}/action/void Void payment operation #
GET /v1/customerpaymentmethod/{customerId}/{customerPaymentMethodId} Get one specific Customer payment method for one specific customer. ScreenId=AR303010 #
PUT /v1/customerpaymentmethod/{customerId}/{customerPaymentMethodId} Update a specific Customer payment method #
GET /v1/customerpaymentmethod/{customerId} Get all Customer payment methods for one specific customer. ScreenId=AR303010 and AR303000 #
GET /v1/customerpaymentmethod Get Customer payment methods #
POST /v1/customerpaymentmethod Create a Customer payment method #
GET /v1/customerSalesPrice Get a range of Customer Sales Prices - ScreenId=AR202000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information #
POST /v1/customerSalesPrice Create a new Customer Sales Price #
GET /v1/customerSalesPrice/{recordId} Get a specific Customer Sales Price by recordId #
PUT /v1/customerSalesPrice/{recordId} Update an existing Customer Sales Price #
GET /v2/customer/balance Get the balance for one or multiple customers #
GET /v1/deferralCode/{deferralCodeId} Get a specific DeferralCode #
GET /v1/deferralCode Get a range of DeferralCodes - ScreenId=DR2020PL Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. If req #
GET /v1/department/{departmentId} Get a specific department #
PUT /v1/department/{departmentId} Updates a specific department #
GET /v1/department Get a range of departments - ScreenId=EP201500 #
POST /v1/department Creates a department #
GET /v1/dimension Get a list of all Dimension names/IDs ScreenId=CS202000 #
GET /v1/dimension/{dimensionId} Get a specific Dimension #
GET /v1/dimension/{dimensionId}/{segmentId} Get a specific Segment for a specific Dimension #
PUT /v1/dimension/{dimensionId}/{segmentId} Update a Segment #
GET /v1/dimension/{dimensionId}/{segmentId}/{valueId} Get a specific SegmentValue for a specific Segment for a specific Dimension #
GET /v1/dimension/{dimensionId}/{segmentId}/publicid/{publicId} Get a specific SegmentValue for a specific Segment for a specific Dimension #
GET /v1/discount Get a range of discounts - ScreenId=AR209500 #
POST /v1/discount Creates a new discount #
PUT /v1/discount/{discountCode}/{series} Update a discount #
DELETE /v1/discount/{discountCode}/{series} #
POST /v1/discount/{discountCode}/{series}/{filerDate}/action/updateDiscounts Update discounts using a filter date. #
POST /v1/discount/{discountCode}/{series}/action/updateDiscounts Update discounts #
GET /v1/discountCode Get a range of discount codes - ScreenId=AR209000 #
GET /v2/discountCode Get a range of discount codes - ScreenId=AR209000 #
GET /v2/discount Get a range of discounts - ScreenId=AR209500 #
GET /v1/earningtype/{typeCd} Get a specific earning type #
GET /v1/earningtype Get a range of earningtypes - ScreenId=EP102000 #
GET /v1/employee/{employeeCd} Get a specific employee #
PUT /v1/employee/{employeeCd} Updates a specific employee #
GET /v1/employee Get a range of employees - ScreenId=EP203000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. If request #
POST /v1/employee Create an employee #
GET /v1/employee/{EmployeeCd}/timecards Get a specific employee time cards #
GET /v1/employee/{employeeCd}/expenseClaim Get expense claims for a specific employee #
GET /v1/employee/{employeeCd}/expenseReceipt Get expense receipts for a specific employee #
POST /v1/employee/action/changeEmployeeCd/{internalId} Updates the EmployeeNr for the specified employee #
GET /v1/expenseClaim/{expenseClaimNbr} Get a specific Expense Claim #
PUT /v1/expenseClaim/{expenseClaimNbr} Update a specific ExpenseClaim #
DELETE /v1/expenseClaim/{expenseClaimNbr} Deletes a specific ExpenseClaim #
GET /v1/expenseClaim Get a range of Expense Claims, a filter needs to be specified. ScreenId=EP301000 Request page size must be lower or equal to the allowed max page size which is returned as part of #
POST /v1/expenseClaim Create an ExpenseClaim #
POST /v1/expenseClaim/{expenseClaim}/action/hold Put ExpenseClaim on hold #
POST /v1/expenseClaim/{expenseClaim}/action/submit Submit Expense Claim operation #
POST /v1/expenseClaim/{expenseClaim}/action/approval Send Expense Claim to approval #
GET /v1/expenseReceipt/{receiptNumber} Get a specific ExpenseReceipt #
PUT /v1/expenseReceipt/{receiptNumber} Update a Expense Receipt #
DELETE /v1/expenseReceipt/{receiptNumber} Deletes a specific Expense Receipt #
GET /v1/expenseReceipt Get a range of Expense Receipts, a filter needs to be specified. ScreenId=EP301020 #
POST /v1/expenseReceipt Create a Expense Receipt #
POST /v1/expenseReceipt/{receiptNumber}/attachment Creates an attachment and associates it with an expense receipt. If the file already exists, a new revision is created. #
GET /v1/featuresset Get all available features configured for the company. On UI, users will see a subset of features based on the active license. If no filters are supplied, all features will be retu #
GET /v1/financialPeriod Get a range of Financial Periods - ScreenId=GL201000 #
GET /v1/financialPeriod/{financialPeriodId} Get a specific Financial Period - ScreenId=GL201000 #
GET /v1/firstTimeStartup/status Get the status for FTS #
GET /v1/fixedAsset/{FixedAssetID} Get a specific Fixed Asset - Screen ID:FA303000 #
GET /v1/fixedAsset Get a range of Fixed Assets - Screen ID:FA303000 #
GET /v1/fixedAssetClass/{ClassID} Get a specific Fixed Asset Class - Screen ID:FA201000 #
GET /v1/fixedAssetClass Get a range of Fixed Asset Classes - Screen ID:FA201000 #
GET /v1/fixedAssetPropertyTaxGroup/{PropertyTaxID} Get a specific Fixed Asset Property Tax Group - Screen ID: FA209000 #
GET /v1/fixedAssetPropertyTaxGroup Get a range of Fixed Asset Property Tax Groups - Screen ID: FA209000 #
GET /v1/fixedAssetTransaction/{RefNo} Get transactions for a specific Asset - Screen ID:FA301000 #
GET /v1/fixedAssetTransaction Get a range of transactions - Screen ID:FA301000 #
GET /v2/generalLedgerBalance Get a range of General Ledger Balances. Complete documentation can be found under 8.21 release notes. Please use a page size lower or equal to the allowed max page size which is re #
GET /v1/GeneralLedgerTransactions Get a range of General Ledger Transactions - ScreenId=GL404000 Please use a page size lower or equal to the allowed max page size which is returned under metadata. If pagesize is g #
GET /v1/inventory/itemClass Get Inventory Item Classes #
GET /v1/inventory/itemclass/{itemClassNumber} Get Specific Inventory Item Class #
GET /v1/inventory/itemPostClass Get Inventory Item Post Classes #
GET /v1/inventory/internal/{inventoryId} Get a specific Inventory item by its internal ID #
GET /v1/inventory/{inventoryNumber} Get a specific Inventory item #
PUT /v1/inventory/{inventoryNumber} Update a specific inventory item #
GET /v1/inventory Get a range of Inventory items - ScreenId=IN202000 and IN202500 #
POST /v1/inventory Create an inventory item #
GET /v1/inventory/barcode/shipment/{shipmentNbr} Get a range of barcodes for a specific shipment #
GET /v1/inventory/barcode/salesorder/{orderNbr} Get a range of barcodes for a specific sales order #
GET /v1/inventory/barcode/stocktake/{referenceNumber} Get a range of barcodes for a specific stock count #
GET /v1/inventory/barcode/purchasereceipt/{receiptNbr} Get a range of barcodes for a specific purchase receipt #
GET /v1/inventory/{inventoryNumber}/crossReferences Get a range of cross-reference for a specific inventory #
POST /v1/inventory/{inventoryNumber}/crossReferences Creates a cross reference for a specific inventory #
POST /v1/inventory/{inventoryCd}/action/updateCost Update Cost action on Non-Stock Item #
POST /v1/inventory/{inventoryNumber}/attachment Creates an attachment and associates it with a Inventory Item. If the file already exists, a new revision is created. #
POST /v1/inventory/action/changeInventoryNbr/{internalId} Updates the InventoryNbr for the specified Inventory #
PUT /v1/inventory/internal/{inventoryID} Update a specific inventory item #
PUT /v1/inventory/{inventoryNumber}/crossReferences/{alternateType}/{alternateId} Updates a specific cross reference for a specific inventory #
GET /v1/inventoryadjustment/{inventoryAdjustmentNumber} Get a specific Inventory Adjustment document #
PUT /v1/inventoryadjustment/{inventoryAdjustmentNumber} Update a specific inventory item #
GET /v1/inventoryadjustment Get a range of Inventory Adjustment Dto - ScreenId=IN303000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata informat #
POST /v1/inventoryadjustment Create an inventory item #
POST /v1/inventoryadjustment/{adjRefNumber}/action/release Release inventory document action #
GET /v1/inventoryissue/{inventoryIssueNumber} Get a specific Inventory Issue document #
PUT /v1/inventoryissue/{inventoryIssueNumber} Update a specific inventory item #
GET /v1/inventoryissue Get a range of Inventory items - ScreenId=IN302000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. If r #
POST /v1/inventoryissue Create an inventory item #
POST /v1/inventoryissue/{invoiceNumber}/action/release Release inventory operation #
GET /v1/inventoryReceipt/{inventoryReceiptNumber} Get a specific Inventory Receipt document #
PUT /v1/inventoryReceipt/{inventoryReceiptNumber} Update a specific inventory item #
GET /v1/inventoryReceipt Get a range of Inventory Receipts - ScreenId=IN301000 Request page size must be lower or equal to the allowed max page size which is returned as part of the metadata information. I #
POST /v1/inventoryReceipt Create an inventory item #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/visma-net-erp-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

visma-net-erp-service-api-openapi.json Raw ↑
{
  "openapi": "3.0.4",
  "info": {
    "title": "Visma.net ERP API",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.finance.visma.net"
    }
  ],
  "paths": {
    "/v1/account/{accountCd}": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get a specific Account - ScreenId=GL202500",
        "description": "Data for Account<br></br>\r\n            The response headers include an ETag after a successful GET operation.",
        "operationId": "Account_GetByaccountCd",
        "parameters": [
          {
            "name": "accountCd",
            "in": "path",
            "description": "Return the Information from Chart of account for the specified AccountCD",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountDto"
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Account"
        ],
        "summary": "Updates an account",
        "description": "Response Message has StatusCode NoContent if PUT operation succeed<br></br>\r\n            Response Message has StatusCode BadRequest if PUT operation failed<br></br>\r\n            The response headers include an ETag after a successful PUT operation",
        "operationId": "Account_PutByaccountCd",
        "parameters": [
          {
            "name": "accountCd",
            "in": "path",
            "description": "Identifies the account to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "If-Match",
            "in": "header",
            "description": "The If-Match HTTP header allows clients to update a resource only if its current version matches a specific ETag. This mechanism helps prevent conflicts when multiple clients attempt to modify the same resource simultaneously.\r\nThe If-Match header should be included in the request headers using the following syntax: If-Match: \"etag_value\"\r\n* If the update is successful, the server responds with 204 No Content and includes the new ETag value in the response headers.\r\n* If the ETag on the server does not match the value provided in the If-Match header, the server responds with 412 Precondition Failed.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Defines the fields and field values to be updated",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "text/xml": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            }
          },
          "required": true,
          "x-bodyName": "accountUpdateDto"
        },
        "responses": {
          "204": {
            "description": "NoContent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              },
              "text/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "412": {
            "description": "Account version does not match with If-Match header",
            "content": {
              "application/json": { },
              "text/json": { }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      }
    },
    "/v1/account": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get a range of General ledger accounts - ScreenId=GL202500",
        "description": "Data for Account",
        "operationId": "Account_GetAll",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "description": "Set to True to select active accounts.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "includeAccountClassDescription",
            "in": "query",
            "description": "Set to True to include AccountClass description.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "greaterThanValue",
            "in": "query",
            "description": "Enter the from-value for Account no.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publicCode",
            "in": "query",
            "description": "Filter by the Public code 1, authorities mapped code to the account.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalCode1",
            "in": "query",
            "description": "Filter by External code 1 (field used for sorting and inquiries.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalCode2",
            "in": "query",
            "description": "Filter by External code 2 (field used for sorting and inquiries.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "analysisCode",
            "in": "query",
            "description": "Filter by Analysis code (field used for sorting and inquiries.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "numberToRead",
            "in": "query",
            "description": "This field has been deprecated and will be removed in future versions.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "skipRecords",
            "in": "query",
            "description": "This field has been deprecated and will be removed in future versions.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "lastModifiedDateTime",
            "in": "query",
            "description": "This value, generated by the system, indicates the last time the record was modified. Use it to retrieve all records that have been modified since that time, up to the present.\r\n\r\nAccepted format:\r\n* ```yyyy-MM-dd```\r\n* ```yyyy-MM-dd HH:mm:ss```\r\n* ```yyyy-MM-dd HH:mm:ss.FFF```\r\n* ```yyyy-MM-ddTHH:mm:ss```\r\n* ```yyyy-MM-ddTHH:mm:ss.FFF```\r\n\r\n_Note:_ __LastModifiedDateTime__ and __LastModifiedDateTimeCondition__ are __mutually inclusive__.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lastModifiedDateTimeCondition",
            "in": "query",
            "description": "This value represents the condition to be applied when retrieving records.\r\n\r\nAccepted values (without the single quotes):\r\n* '&gt;' for greater than\r\n* '&lt;' for less than\r\n* '&gt;=' for greater than or equal\r\n* '&lt;=' for less than or equal\r\n\r\n_Note:_ __LastModifiedDateTime__ and __LastModifiedDateTimeCondition__ are __mutually inclusive__.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountDto"
                  }
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "Account"
        ],
        "summary": "Creates an account",
        "description": "Response Message has StatusCode Created if POST operation succeed<br></br>\r\n            The response headers include an ETag after a successful POST operation.<br></br>\r\n            Response Message has StatusCode BadRequest or InternalServerError if POST operation failed",
        "operationId": "Account_Post",
        "parameters": [
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Defines the fields and field values to be set on created account",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "text/xml": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdateDto"
              }
            }
          },
          "required": true,
          "x-bodyName": "accountUpdateDto"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              },
              "text/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      }
    },
    "/v1/attachment/{attachmentId}": {
      "get": {
        "tags": [
          "Attachment"
        ],
        "summary": "Get latest revision of a specific Attachment",
        "operationId": "Attachment_GetByattachmentId",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Identifies the attachment",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              },
              "text/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Attachment"
        ],
        "summary": "Update a specific Attachment",
        "description": "The the Response Message has StatusCode NoContent if Put operation succeed",
        "operationId": "Attachment_PutByattachmentId",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "Identifies the Attachment to update",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Defines the data for the Attachment to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentMetadataUpdateDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentMetadataUpdateDto"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentMetadataUpdateDto"
              }
            },
            "text/xml": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentMetadataUpdateDto"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentMetadataUpdateDto"
              }
            }
          },
          "required": true,
          "x-bodyName": "metadataDto"
        },
        "responses": {
          "204": {
            "description": "NoContent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              },
              "text/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      }
    },
    "/v1/attribute/{attributeId}": {
      "get": {
        "tags": [
          "Attribute"
        ],
        "summary": "Get specific Attribute",
        "operationId": "Attribute_GetAttributeByattributeId",
        "parameters": [
          {
            "name": "attributeId",
            "in": "path",
            "description": "Identifies the attribute",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttributeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttributeDto"
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Attribute"
        ],
        "summary": "Updates an attribute",
        "description": "Response Message has StatusCode NoContent if PUT operation succeed",
        "operationId": "Attribute_PutByattributeId",
        "parameters": [
          {
            "name": "attributeId",
            "in": "path",
            "description": "Identifies the attribute to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscription[:<name_1>=<value_1>,..,<name_n>=<value_n>]\" (without quotes): when the background operation is finsihed, a notification is posted to the Webhook subscription set up in Developer Portal for your integration client.\r\nOptionally a set of name-value pairs can be added. These will be sent as headers in the POST request to the Webhook subscription's url.\r\n\r\nTo find status and details of a background-api operation, GET .. v1/background/{id}. To get the response payload of a background-api operation, if any, GET .. v1/background/{id}/content",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Defines the fields and field values to be updated",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttributeUpdateDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttributeUpdateDto"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/AttributeUpdateDto"
              }
            },
            "text/xml": {
              "schema": {
                "$ref": "#/components/schemas/AttributeUpdateDto"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/AttributeUpdateDto"
              }
            }
          },
          "required": true,
          "x-bodyName": "attributeUpdateDto"
        },
        "responses": {
          "204": {
            "description": "NoContent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              },
              "text/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Server accepted and queued the request for background execution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundApiAcceptedDto"
                }
              }
            }
          }
        },
        "security": [
          {
            "serviceapi": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Attribute"
        ],
        "summary": "Deletes an attribute",
        "description": "Response Message has StatusCode NoContent if DEL operation succeed",
        "operationId": "Attribute_DeleteByattributeId",
        "parameters": [
          {
            "name": "attributeId",
            "in": "path",
            "description": "Identifies the attribute to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "erp-api-background",
            "in": "header",
            "description": "Accepts the request and queues it to be executed in the background by our least busy worker. Responds with 202 Accepted and a document containing a JobId reference and details state location.\r\nSupported values:\r\n* a URL: when the background operation is finished, a notification will be posted to the URL with a document containing a reference id, status code and a details state location.\r\n* \"none\" (without quotes): Fire and forget; no notification will be sent when background operation is finished.\r\n* \"subscr

# --- truncated at 32 KB (4217 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visma/refs/heads/main/openapi/visma-net-erp-service-api-openapi.json