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 Payment API
version: v1
servers:
- url: https://api.finance.visma.net
tags:
- name: Payment
paths:
/v1/payment/{paymentNumber}:
get:
tags:
- Payment
summary: Get a specific Payment Payment is deprecated, please use CustomerPayment instead
operationId: Payment_GetBypaymentNumber
parameters:
- name: paymentNumber
in: path
description: Identifies the Payment
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/PaymentDto'
text/json:
schema:
$ref: '#/components/schemas/PaymentDto'
'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'
deprecated: true
security:
- interactiveapi: []
put:
tags:
- Payment
summary: Update a specific Payment Payment is deprecated, please use CustomerPayment…
description: Response Message has StatusCode NoContent if PUT operation succeed
operationId: Payment_PutBypaymentNumber
parameters:
- name: paymentNumber
in: path
description: Identifies the Payment 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
requestBody:
description: Defines the data for the Payment to update
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
application/xml:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
text/xml:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
required: true
x-bodyName: payment
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'
deprecated: true
security:
- interactiveapi: []
/v1/payment:
get:
tags:
- Payment
summary: Get a range of Payments - ScreenId=AP302000 Payment is deprecated, please use…
operationId: Payment_GetAllPayments
parameters:
- name: paymentNbr
in: query
description: Payment number
schema:
type: string
- name: paymentType
in: query
description: Select Type
schema:
enum:
- Payment
- CreditNote
- Prepayment
- Refund
- VoidPayment
- SmallBalanceWo
- VoidRefund
- Undefined
type: string
- name: customer
in: query
description: Enter Customer
schema:
type: string
- name: greaterThanValue
in: query
description: Enter the from-value for Ref. no.
schema:
type: string
- name: invoiceRefNbr
in: query
description: Enter Invoice Ref Nbr
schema:
type: string
- name: status
in: query
description: The status of the document. Use the dropdown to select status.
schema:
enum:
- Hold
- Balanced
- Voided
- Scheduled
- Open
- Closed
- PendingPrint
- PendingEmail
- CreditHold
- CcHold
- Reserved
type: string
- name: numberToRead
in: query
description: This field has been deprecated and will be removed in future versions. Use pagenumber and pagesize for pagination purposes. Pagenumber and pagesize does not work with NumberToRead and SkipRecords.
schema:
type: integer
format: int32
- name: skipRecords
in: query
description: This field has been deprecated and will be removed in future versions. Use pagenumber and pagesize for pagination purposes. Pagenumber and pagesize does not work with NumberToRead and SkipRecords.
schema:
type: integer
format: int32
- name: orderBy
in: query
description: Enter field to order your records by.
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: Filter by Branch
schema:
type: string
- name: docDate
in: query
description: 'This value indicates the document date. Use it to retrieve all records that have the Document Date since that time, up to the future.
Accepted format:
* ```yyyy-MM-dd```
* ```yyyy-MM-dd```
* ```yyyy-MM-dd```
* ```yyyy-MM-dd```
* ```yyyy-MM-dd```
_Note:_ __DocDate__ and __DocDateCondition__ are __mutually inclusive__.'
schema:
type: string
format: date-time
- name: docDateCondition
in: query
description: 'This value represents the condition to be applied to the Document Date 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:_ __DocDate__ and __DocDateCondition__ are __mutually inclusive__.'
schema:
type: string
- name: financialPeriod
in: query
description: Filter by financial period, format YYYYPP
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/PaymentDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/PaymentDto'
'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'
deprecated: true
security:
- interactiveapi: []
post:
tags:
- Payment
summary: Create a Payment Payment is deprecated, please use CustomerPayment instead
description: Response Message has StatusCode Created if POST operation succeed
operationId: Payment_CreatePayment
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 Payment to create
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
application/xml:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
text/xml:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PaymentUpdateDto'
required: true
x-bodyName: payment
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'
deprecated: true
security:
- interactiveapi: []
/v1/payment/{paymentNumber}/action/release:
post:
tags:
- Payment
summary: Release payment operation Payment is deprecated, please use CustomerPayment…
description: The action result dto contains information about the result of running the action
operationId: Payment_ReleasePaymentBypaymentNumber
parameters:
- name: paymentNumber
in: path
description: Reference number of the payment 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
requestBody:
description: Contains the type of the payment
content:
application/json:
schema:
$ref: '#/components/schemas/ReleasePaymentActionDto'
text/json:
schema:
$ref: '#/components/schemas/ReleasePaymentActionDto'
application/xml:
schema:
$ref: '#/components/schemas/ReleasePaymentActionDto'
text/xml:
schema:
$ref: '#/components/schemas/ReleasePaymentActionDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ReleasePaymentActionDto'
required: true
x-bodyName: releaseActionDto
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReleasePaymentActionResultDto'
text/json:
schema:
$ref: '#/components/schemas/ReleasePaymentActionResultDto'
application/xml:
schema:
$ref: '#/components/schemas/ReleasePaymentActionResultDto'
text/xml:
schema:
$ref: '#/components/schemas/ReleasePaymentActionResultDto'
'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'
deprecated: true
security:
- interactiveapi: []
/v1/payment/{paymentNumber}/action/void:
post:
tags:
- Payment
summary: Void payment operation Payment is deprecated, please use CustomerPayment instead
description: The action result dto contains information about the result of running the action
operationId: Payment_VoidPaymentBypaymentNumber
parameters:
- name: paymentNumber
in: path
description: Reference number of the payment 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
requestBody:
description: Contains the type of the payment
content:
application/json:
schema:
$ref: '#/components/schemas/VoidPaymentActionDto'
text/json:
schema:
$ref: '#/components/schemas/VoidPaymentActionDto'
application/xml:
schema:
$ref: '#/components/schemas/VoidPaymentActionDto'
text/xml:
schema:
$ref: '#/components/schemas/VoidPaymentActionDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/VoidPaymentActionDto'
required: true
x-bodyName: voidActionDto
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VoidPaymentActionResultDto'
text/json:
schema:
$ref: '#/components/schemas/VoidPaymentActionResultDto'
'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'
deprecated: true
security:
- interactiveapi: []
components:
schemas:
currencyInPaymentUpdateDto:
properties:
value:
type: string
description: The top part > Currency > The currency of the payment document. Once the customer is selected, the system inserts the customer's default currency.
DtoValueOfCustomerDocumentTypes:
type: object
properties:
value:
enum:
- Invoice
- DebitNote
- CreditNote
- Payment
- VoidPayment
- Prepayment
- Refund
- FinCharge
- SmallBalanceWo
- SmallCreditWo
- CashSale
- CashReturn
- Undefined
- NoUpdate
type: string
BackgroundApiAcceptedDto:
type: object
properties:
id:
type: string
stateLocation:
type: string
PaymentDto:
type: object
properties:
type:
enum:
- Payment
- CreditNote
- Prepayment
- Refund
- VoidPayment
- SmallBalanceWo
- VoidRefund
- Undefined
type: string
description: 'The top part > Type > The type of a document. The following types are available: Payment, CreditNote, Prepayment, Customer refund, Void payment, Balance write-off'
refNbr:
type: string
description: "The top part > Ref.no > The unique identifier for the payment. This number is automatically generated by the system for a new payment document, based on the number series\tin the AR101000 window."
status:
enum:
- Hold
- Balanced
- Voided
- Scheduled
- Open
- Closed
- PendingPrint
- PendingEmail
- CreditHold
- CcHold
- Reserved
type: string
description: The top part > Status > The status of the customer payment, which for a new document is either Balanced or On hold. [On hold, Balanced, Voided, Scheduled, Open, Closed, Pending print, Pending email, Credit hold, CcHold, Reserved]
hold:
type: boolean
description: The top part > Hold > A check box that indicates (if selected) that the document is a draft with the On hold status. This check box is unavailable for debit adjustments.
applicationDate:
type: string
description: 'Mandatory field: The top part > Date* > The date when a payment is applied to a document (invoice or note). The field display the current business date for tunapplied or partially applied payments and the latest application date for the closed payment'
format: date-time
applicationPeriod:
type: string
description: 'Mandatory field: The top part > Financial period* > The period to which the payment should be applied, which the system fills in based on the date.'
paymentRef:
type: string
description: 'Mandatory field: The top part > Payment ref.* > A secondary payment reference identifier, which can be a system-generated number or an external reference number entered manually.'
customer:
$ref: '#/components/schemas/customerInPaymentDto'
location:
$ref: '#/components/schemas/locationInPaymentDto'
paymentMethod:
$ref: '#/components/schemas/paymentMethodInPaymentDto'
cashAccount:
type: string
description: 'Mandatory field: The top part > Cash account* > The default cash account associated with the payment method; this field is not available for credit notes.'
currency:
type: string
description: The top part > Currency > The currency of the payment document.
paymentAmount:
type: number
description: The top part > Payment amount > The total of the payment that is entered manually.
format: double
invoiceText:
type: string
description: The top part > Invoice text > A user-defined description of the payment. 50 alphanumeric characters.
appliedToDocuments:
type: number
description: The top part > Applied to documents > The total of the documents to which payment is to be applied.
format: double
appliedToOrders:
type: number
description: The top part > Applied to orders > The total of the orders for which payment is reserved, minus the amount transferred to invoice.
format: double
availableBalance:
type: number
description: The top part > Available balance > The amount that has not been applied.
format: double
writeOffAmount:
type: number
description: The top part > Write-off amount > The amount that has been written off.
format: double
financeCharges:
type: number
description: The top part > Finance charges > The total on all finance charges applied to this document.
format: double
deductedCharges:
type: number
description: The top part > Deducted charges > The total amount of bank charges deducted by bank from the payment amount on your cash account (bank account).
format: double
branch:
type: string
lastModifiedDateTime:
type: string
description: Systemgenerated information.
format: date-time
paymentLines:
type: array
items:
$ref: '#/components/schemas/PaymentLineDto'
description: Documents to apply tab >
ordersToApply:
type: array
items:
$ref: '#/components/schemas/OrderToApplyDto'
description: Orders to apply tab >
financialDetails:
$ref: '#/components/schemas/financialDetailsInPaymentDto'
paymentAmountInCurrency:
type: number
description: Payment amount calculated in your default (base) currency. This field is applicable if the amount is given in another currency than your default.
format: double
availableBalanceInCurrency:
type: number
description: Available Balance calculated in your default (base) currency. This field is applicable if the amount is given in another currency than your default.
format: double
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
errorInfo:
type: string
metadata:
$ref: '#/components/schemas/MetadataDto'
description: This class represents a Payment in PaymentController. Used by getting data.
locationInPaymentUpdateDto:
properties:
value:
type: string
description: 'Mandatory field: The top part > Location* > The customer location associated with the sale. Once the customer is selected, this field displays the customer''s default location.'
holdInPaymentUpdateDto:
properties:
value:
type: boolean
description: The top part > Hold > A check box that indicates (if selected) that the document is a draft with the On hold status.
DtoValueOfDecimal:
type: object
properties:
value:
type: number
format: double
financialDetailsInPaymentDto:
properties:
paymentDate:
type: string
description: Financial Details tab > Payment date
format: date-time
description: Financial Details
paymentRefInPaymentUpdateDto:
properties:
value:
type: string
description: 'Mandatory field: The top part > Payment ref.* > A secondary payment reference identifier, which can be a system-generated number or an external reference number entered manually.'
PaymentOrdersLinesUpdateDto:
type: object
properties:
operation:
enum:
- Insert
- Update
- Delete
type: string
orderType:
$ref: '#/components/schemas/DtoValueOfString'
orderNumber:
$ref: '#/components/schemas/DtoValueOfString'
appliedToOrder:
$ref: '#/components/schemas/DtoValueOfDecimal'
PaymentLineDto:
type: object
properties:
documentType:
enum:
- Invoice
- DebitNote
- CreditNote
- Payment
- VoidPayment
- Prepayment
- Refund
- FinCharge
- SmallBalanceWo
- SmallCreditWo
- CashSale
- CashReturn
- Undefined
- NoUpdate
type: string
description: Doc. type > The type of document to which the payment is applied.
refNbr:
type: string
description: 'Mandatory field: Ref. no.* > The reference number of the invoice or note to which the payment is applied.'
amountPaid:
type: number
description: Amount paid > The amount to be paid which is displayed in the currency of the document that is selected in the window.
format: double
cashDiscountTaken:
type: number
description: Cash discount taken > The cash discount to be taken.
format: double
balanceWriteOff:
type: number
description: Balance write-off > The amount to be written off.
format: double
writeOffReasonCode:
$ref: '#/components/schemas/writeOffReasonCodeInPaymentLineDto'
date:
type: string
description: Date > The creation date of the customer ledger document.
format: date-time
dueDate:
type: string
descript
# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visma/refs/heads/main/openapi/visma-payment-api-openapi.yml