Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Visma.net ERP Journal Transaction V2 API
version: v1
servers:
- url: https://api.finance.visma.net
tags:
- name: JournalTransactionV2
paths:
/v2/journaltransaction/{journalTransactionNumber}:
get:
tags:
- JournalTransactionV2
summary: Get a specific Journal Transaction
description: 'Data for Journal Transaction
The response headers include an ETag after a successful GET operation.'
operationId: JournalTransactionV2_GetSpecificJournalTransactionsByjournalTransactionNumber
parameters:
- name: journalTransactionNumber
in: path
description: Identifies the Journal Transaction
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.
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:
$ref: '#/components/schemas/JournalTransactionDto'
text/json:
schema:
$ref: '#/components/schemas/JournalTransactionDto'
'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:
- JournalTransactionV2
summary: Update a Journal Transaction
description: 'Response Message has StatusCode NoContent if PUT operation succeed
The response headers include an ETag after a successful PUT operation.
Response Message has StatusCode BadRequest if PUT operation failed'
operationId: JournalTransactionV2_PutByjournalTransactionNumber
parameters:
- name: journalTransactionNumber
in: path
description: Identifies the Journal Transaction 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.
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 Journal Transaction to update
content:
application/json:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
application/xml:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
text/xml:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
required: true
x-bodyName: journalTransaction
responses:
'204':
description: NoContent
content:
application/json:
schema:
type: object
text/json:
schema:
type: object
'412':
description: JournalTransaction 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: []
/v2/journaltransaction:
get:
tags:
- JournalTransactionV2
summary: Get a range of Journal Transactions - ScreenId=GL301000.
description: Data for Journal Transaction
operationId: JournalTransactionV2_GetAllJournalTransactions
parameters:
- name: periodId
in: query
description: 'Financial Period to query data for. Mandatory if ''LastModifiedDateTime'' not provided. Format: YYYYPP'
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.\nMandatory if 'PeriodId' is not provided. \n\nAccepted format:\n* ```yyyy-MM-dd```\n* ```yyyy-MM-dd HH:mm:ss```\n* ```yyyy-MM-dd HH:mm:ss.FFF```\n* ```yyyy-MM-ddTHH:mm:ss```\n* ```yyyy-MM-ddTHH:mm:ss.FFF```"
schema:
type: string
- name: module
in: query
description: 'Module to query data for. Allowed values: GL, AP, AR, CM, CA, IN, DR, FA, PM'
schema:
type: string
- name: status
in: query
description: 'Journal transaction status to query data for. Available statuses : Hold, Balanced, Unposted, Posted, Voided, Scheduled, Unreleased.'
schema:
enum:
- Hold
- Balanced
- Unposted
- Posted
- Voided
- Scheduled
- Unreleased
type: string
- name: expandAttachments
in: query
description: If true, includes all attachments for batch. Default is false.
schema:
type: boolean
- name: branch
in: query
description: Branch to query data for.
schema:
type: string
- name: pageNumber
in: query
description: Pagination parameter. Page number.
schema:
type: integer
format: int32
- name: pageSize
in: query
description: 'Pagination parameter. Number of items to be collected.
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 page size is greater than allowed max page size, request will be limited to max page size.'
schema:
type: integer
format: int32
- 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/JournalTransactionDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/JournalTransactionDto'
'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:
- JournalTransactionV2
summary: Create a Journal Transaction
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: JournalTransactionV2_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.
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 Journal Transaction to create
content:
application/json:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
application/xml:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
text/xml:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/JournalTransactionUpdateDto'
required: true
x-bodyName: journalTransaction
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: []
/v2/journaltransaction/{journalTransactionNumber}/action/release:
post:
tags:
- JournalTransactionV2
summary: Release journal transaction operation
description: 'The action result dto contains information about the result of running the action
Response Message has StatusCode BadRequest or InternalServerError if POST operation failed'
operationId: JournalTransactionV2_ReleaseJournalTransactionByjournalTransactionNumber
parameters:
- name: journalTransactionNumber
in: path
description: Reference number of the journal transaction to be released
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.
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 POST operation is successful, the server responds with 200 OK 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
responses:
'412':
description: JournalTransaction version does not match with If-Match header
content:
application/json: {}
text/json: {}
application/xml: {}
text/xml: {}
'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'
application/xml:
schema:
$ref: '#/components/schemas/BackgroundApiAcceptedDto'
text/xml:
schema:
$ref: '#/components/schemas/BackgroundApiAcceptedDto'
security:
- interactiveapi: []
/v2/journaltransaction/module/{module}/{journalTransactionNumber}/attachment:
post:
tags:
- JournalTransactionV2
summary: Creates an attachment and associates it with an journalTransaction.
description: 'Response Message has StatusCode Created if POST operation succeed
Response Message has StatusCode BadRequest if POST operation failed'
operationId: JournalTransactionV2_AddHeaderAttachmentBymodulejournalTransactionNumber
parameters:
- name: module
in: path
description: 'Identifies journal transaction module allowed values are: GL, AP, AR, CM, CA, IN, DR, FA, PM, TX, SO, PO.'
required: true
schema:
type: string
- name: journalTransactionNumber
in: path
description: Identifies the journal transaction number
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.
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:
'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: []
/v2/journaltransaction/module/{module}/{journalTransactionNumber}/{lineNumber}/attachment:
post:
tags:
- JournalTransactionV2
summary: Creates an attachment and associates it with a certain journalTransaction line.
description: 'Response Message has StatusCode Created if POST operation succeed
Response Message has StatusCode BadRequest or NotFound if POST operation failed'
operationId: JournalTransactionV2_AddLineAttachmentBymodulejournalTransactionNumberlineNumber
parameters:
- name: module
in: path
description: 'Identifies journal transaction module allowed values are: GL, AP, AR, CM, CA, IN, DR, FA, PM, TX, SO, PO.'
required: true
schema:
type: string
- name: journalTransactionNumber
in: path
description: Identifies the journalTransaction
required: true
schema:
type: string
- name: lineNumber
in: path
description: Identifies line number
required: true
schema:
type: integer
format: int32
- 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:
'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:
BackgroundApiAcceptedDto:
type: object
properties:
id:
type: string
stateLocation:
type: string
JournalTransactionDto:
type: object
properties:
module:
enum:
- ModuleGL
- ModuleAP
- ModuleAR
- ModuleCA
- ModuleCM
- ModuleIN
- ModuleSO
- ModulePO
- ModuleDR
- ModuleFA
- ModuleEP
- ModulePM
- ModuleTX
- ModuleCR
type: string
description: The top part > Workspace > The workspace where the batch originates. New batches can be created only for General ledger.
batchNumber:
type: string
description: The top part > Batch number > The unique ID of the batch, which is generated by the numbering sequence assigned to batches in the GL102000 window.
status:
enum:
- Hold
- Balanced
- Unposted
- Posted
- Completed
- Voided
- Released
- PartiallyReleased
- Scheduled
type: string
description: 'The top part > Status > The current status of the batch. The status defines what processing can be applied to the batch. The following options are available: On hold, Balanced, Scheduled, Unposted, Posted, Void.'
hold:
type: boolean
description: The top part > Hold > A check box that indicates (if selected) that the batch has the On hold status and cannot be released or posted. You can clear the check box only if the batch has total debits equal to total credits.
transactionDate:
type: string
description: 'Mandatory field: The top part > Transaction date* > The date when the batch was created, which relates to the transaction dates of the journal entries.'
format: date-time
postPeriod:
type: string
description: 'Mandatory field: The top part > Post period* > The financial period to which the transactions recorded in the document should be posted. Format MMYYYY.'
financialPeriod:
type: string
description: 'Mandatory field: The top part Post period* > The financial period to which the transactions should be posted. Format YYYYMM.'
ledger:
type: string
description: 'Mandatory field: The top part > Ledger* > The unique ID of the ledger to which batch transactions are posted. By default, it is the default posting ledger specified for the branch in the GL101010 window, but another posting ledger can be selected.'
ledgerDescription:
type: string
description: 'Mandatory field: The top part > Ledger* > Click the magnifier > The description of the ledger to which batch transactions are posted. By default, it is the default posting ledger specified for the branch in the GL101010 window, but another posting ledger can be selected.'
currencyId:
type: string
description: The top part > Currency > The currency used for all the journal transactions in the selected batch.
exchangeRate:
type: number
description: Ingformation collected from the system to calculate currency amount.
format: double
autoReversing:
type: boolean
description: The top part > Automatic reversing > A check box that indicates (if selected) that the batch is auto-reversing.
reversingEntry:
type: boolean
description: The top part > Reversing entry > A check box that indicates (if selected) that the batch is a reversing batch. The Orig.batch number field displays the ID of the batch that was reversed by this batch.
description:
type: string
description: The top part > Description > A description of the batch.
originalBatchNumber:
type: string
description: The top part > Orig. batch number > For a scheduled or auto-reversing batch, the reference number of the batch used as a template.
debitTotal:
type: number
description: The top part > Debit total > The total of transaction debit amounts for the batch; the value is calculated automatically.
format: double
debitTotalInCurrency:
type: number
description: Background calculation giving you the Debit total in your default currency. This field is applicable if the amount is given in another currency than your default.
format: double
creditTotal:
type: number
description: The top part > Credit total > The total of transaction credit amounts for the batch; the value is calculated automatically.
format: double
creditTotalInCurrency:
type: number
description: Background calculation giving you the Credit total in your default currency. This field is applicable if the amount is given in a another currency than your default.
format: double
controlTotal:
type: number
description: The top part > Control total > The control total of the batch, which is used for batch status validation.
format: double
controlTotalInCurrency:
type: number
description: Background calculation giving you the Control total in your default currency. This field is applicable if the amount is given in another currency than your default.
format: double
createVatTransaction:
type: boolean
description: The top part > Create VAT transactions > A check box that indicates (if selected) that a VAT-related transaction can be created manually; select this check box when you begin to create the transaction.
skipVatAmountValidation:
type: boolean
description: The top part > Skip VAT amount validation > A check box that (if selected) causes automatic validation of a VAT-related transaction that you create manually to be skipped.
lastModifiedDateTime:
type: string
description: System generated information.
format: date-time
transactionCode:
type: string
transactionCodeDescription:
type: string
description: The Table part > Transaction description > A description of the transaction or any comments relevant to the transaction.
branch:
type: string
description: The top part > Branch > The branch to which this batch is related. This field is available if your company is set up with branches.
timeStamp:
type: string
description: 'Identifier that represents a specific version of the resource.
It helps to prevent simultaneous updates of the resource from overwriting each other (by using ETags and If-Match headers)'
format: byte
journalTransactionLines:
type: array
items:
$ref: '#/components/schemas/JournalTransactionLineDto'
attachments:
type: array
items:
$ref: '#/components/schemas/AttachmentDto'
errorInfo:
type: string
metadata:
$ref: '#/components/schemas/MetadataDto'
description: This class represents a journal transaction in JournalTransactionController. Used by getting data.
DtoValueOfDecimal:
type: object
properties:
value:
type: number
format: double
SegmentUpdateDto:
type: object
properties:
segmentId:
type: integer
format: int32
segmentValue:
type: string
JournalTransactionLineDto:
type: object
properties:
lineNumber:
type: integer
description: The table > Number at the left indicating the line number of the table.
format: int32
accountNumber:
type: string
description: 'Mandatory field: The table > Account* > The account (associated with the specified branch) whose balance will be updated by the journal entry.'
description:
type: string
description: The table > Description > A detailed description provided by a user or generated by the system.
subaccount:
$ref: '#/components/schemas/subaccountInJournalTransactionLineDto'
referenceNumber:
type: string
description: The table > Ref. no. > The reference number of the external or internal document associated with the journal transaction.
debitAmount:
type: number
description: The table > Debit amount > The debit amount of the journal entry.
format: double
debitAmountInCurrency:
type: number
d
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visma/refs/heads/main/openapi/visma-journaltransactionv2-api-openapi.yml