Visma Budget API

The Budget API from Visma — 1 operation(s) for budget.

Operations 3

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 #

Documentation

Specifications

Other Resources

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-budget-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-budget-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Visma.net ERP Budget API
  version: v1
servers:
- url: https://api.finance.visma.net
tags:
- name: Budget
paths:
  /v1/budget:
    get:
      tags:
      - Budget
      summary: Get a range of General Ledger Budget Figures - ScreenId=GL302010
      operationId: Budget_GetAll
      parameters:
      - name: isReleased
        in: query
        description: True to get released budgets.
        schema:
          type: boolean
      - name: greaterThanValue
        in: query
        description: Filter by from date.
        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: orderBy
        in: query
        description: Order by Last modified date and time.
        schema:
          type: string
      - 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.


          Accepted format:

          * ```yyyy-MM-dd```

          * ```yyyy-MM-dd HH:mm:ss```

          * ```yyyy-MM-dd HH:mm:ss.FFF```

          * ```yyyy-MM-ddTHH:mm:ss```

          * ```yyyy-MM-ddTHH:mm:ss.FFF```


          _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.


          Accepted values (without the single quotes):

          * ''>'' for greater than

          * ''<'' for less than

          * ''>='' for greater than or equal

          * ''<='' for less than or equal


          _Note:_ __LastModifiedDateTime__ and __LastModifiedDateTimeCondition__ are __mutually inclusive__.'
        schema:
          type: string
      - name: branch
        in: query
        description: Mandatory. Filter by budgets Branch.
        required: true
        schema:
          type: string
      - name: ledger
        in: query
        description: Mandatory. The budgets Ledger
        required: true
        schema:
          type: string
      - name: financialYear
        in: query
        description: The budgets financial year.
        required: true
        schema:
          type: string
      - name: subaccount
        in: query
        description: The Subaccount of the budget article.
        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.

          Supported values:

          * 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.

          * "none" (without quotes): Fire and forget; no notification will be sent when background operation is finished.

          * "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.

          Optionally 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.


          To 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/BudgetDto'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BudgetDto'
        '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:
      - interactiveapi: []
    put:
      tags:
      - Budget
      summary: Update a specific Budget
      description: 'Response Message has StatusCode NoContent if PUT operation succeed


        Response Message has StatusCode BadRequest if PUT operation failed


        The response headers include an ETag after a successful PUT operation.'
      operationId: Budget_Put
      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.

          Supported values:

          * 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.

          * "none" (without quotes): Fire and forget; no notification will be sent when background operation is finished.

          * "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.

          Optionally 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.


          To 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.

          The If-Match header should be included in the request headers using the following syntax: If-Match: "etag_value"

          * If the update is successful, the server responds with 204 No Content and includes the new ETag value in the response headers.

          * 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 data for the Budget to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          text/json:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          application/xml:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          text/xml:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
        required: true
        x-bodyName: budget
      responses:
        '204':
          description: NoContent
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
        '412':
          description: Budget 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:
      - interactiveapi: []
    post:
      tags:
      - Budget
      summary: Create a Budget
      description: 'Response Message has StatusCode Created if POST operation succeed


        The response headers include an ETag after a successful POST operation.


        Response Message has StatusCode BadRequest or InternalServerError if POST operation failed'
      operationId: Budget_CreateBudget
      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.

          Supported values:

          * 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.

          * "none" (without quotes): Fire and forget; no notification will be sent when background operation is finished.

          * "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.

          Optionally 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.


          To 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 Budget to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          text/json:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          application/xml:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          text/xml:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BudgetUpdateDto'
        required: true
        x-bodyName: budget
      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:
      - interactiveapi: []
components:
  schemas:
    subaccountInBudgetDto:
      properties:
        active:
          type: boolean
        id:
          type: string
          description: Click on the magnifier. &gt; The identifier.
        description:
          type: string
          description: Click on the magnifier. &gt; The description.
      description: 'Mandatory field: The budget area &gt; The budget articles pane &gt; Subaccount* &gt; The subaccount of the budget article if the article is a leaf on the budget tree.'
    BackgroundApiAcceptedDto:
      type: object
      properties:
        id:
          type: string
        stateLocation:
          type: string
    DtoValueOfString:
      type: object
      properties:
        value:
          type: string
    branchNumberInBudgetDto:
      properties:
        number:
          type: string
          description: Click the magnifier. &gt; The identifier.
        name:
          type: string
          description: Click the magnifier. &gt; The name.
      description: The Top part &gt; Branch &gt; Click the magnifier
    FinancialPeriodAmountDto:
      type: object
      properties:
        periodId:
          type: string
        amount:
          type: number
          format: double
    accountInBudgetDto:
      properties:
        type:
          enum:
          - Asset
          - Liability
          - Income
          - Expense
          type: string
          description: Account &gt; The account number.
        externalCode1:
          type: string
          description: Account class &gt; The identifier of the account class.
        externalCode2:
          type: string
          description: Account class &gt; The name of the account class.
        active:
          type: boolean
        number:
          type: string
          description: Number of item
        description:
          type: string
          description: Name of item/description
      description: 'Mandatory field: The budget area &gt; The budget articles pane &gt; Account* &gt; The account of the budget article if the article is a leaf on the budget tree.'
    DtoValueOfDecimal:
      type: object
      properties:
        value:
          type: number
          format: double
    SegmentUpdateDto:
      type: object
      properties:
        segmentId:
          type: integer
          format: int32
        segmentValue:
          type: string
    BudgetUpdateDto:
      type: object
      properties:
        ledger:
          $ref: '#/components/schemas/DtoValueOfString'
        financialYear:
          $ref: '#/components/schemas/DtoValueOfString'
        account:
          $ref: '#/components/schemas/DtoValueOfString'
        subaccount:
          type: array
          items:
            $ref: '#/components/schemas/SegmentUpdateDto'
        description:
          $ref: '#/components/schemas/DtoValueOfString'
        amount:
          $ref: '#/components/schemas/DtoValueOfDecimal'
        branchNumber:
          $ref: '#/components/schemas/DtoValueOfString'
        periods:
          type: array
          items:
            $ref: '#/components/schemas/FinancialPeriodAmountUpdateDto'
    FinancialPeriodAmountUpdateDto:
      type: object
      properties:
        operation:
          enum:
          - Insert
          - Update
          - Delete
          type: string
        periodId:
          $ref: '#/components/schemas/DtoValueOfString'
        amount:
          $ref: '#/components/schemas/DtoValueOfDecimal'
    BudgetDto:
      type: object
      properties:
        financialYear:
          type: string
          description: 'Mandatory field: The top part &gt; Financial year* &gt; The financial year of the budget.'
        released:
          type: boolean
          description: The budget area &gt; The budget articles pane &gt; Released &gt; A check box that indicates (if selected) that the budget article has been released.
        releasedAmount:
          type: number
          description: The budget area &gt; The budget articles pane &gt; Released amount &gt; The amount that has been released for this article.
          format: double
        account:
          $ref: '#/components/schemas/accountInBudgetDto'
        subaccount:
          $ref: '#/components/schemas/subaccountInBudgetDto'
        description:
          type: string
          description: 'Mandatory field: The budget area &gt; The budget articles pane &gt; Description* &gt; A description of the budget article.By default, this column displays the account description.'
        amount:
          type: number
          description: The budget area &gt; The budget articles pane &gt; Amount &gt; The article amount.
          format: double
        distributedAmount:
          type: number
          description: The budget area  The budget articles pane &gt; Distributed amount &gt; The amount distributed over the periods.
          format: double
        periods:
          type: array
          items:
            $ref: '#/components/schemas/FinancialPeriodAmountDto'
          description: The budget area The budget articles pane &gt; Period XX &gt; Amount per period within the financial year.
        lastModifiedDateTime:
          type: string
          description: A system generated date/time not visible in the window.
          format: date-time
        branchNumber:
          $ref: '#/components/schemas/branchNumberInBudgetDto'
        timeStamp:
          type: string
          description: The timestamp of the budget article, used for concurrency control.
          format: byte
  securitySchemes:
    interactiveapi:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://connect.visma.com/connect/authorize
          tokenUrl: https://connect.visma.com/connect/token
          scopes:
            vismanet_erp_interactive_api:read: vismanet_erp_interactive_api:read
            vismanet_erp_interactive_api:update: vismanet_erp_interactive_api:update
            vismanet_erp_interactive_api:create: vismanet_erp_interactive_api:create
            vismanet_erp_interactive_api:delete: vismanet_erp_interactive_api:delete
            vismanet_erp_interactive_api:ui-extension: vismanet_erp_interactive_api:ui-extension