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 Shipment API
version: v1
servers:
- url: https://api.finance.visma.net
tags:
- name: Shipment
paths:
/v1/shipment/{shipmentNbr}:
get:
tags:
- Shipment
summary: Get a specific Shipment
description: 'Data for a single Shipment.
The response headers include an ETag after a successful GET operation.'
operationId: Shipment_GetByshipmentNbr
parameters:
- name: shipmentNbr
in: path
description: Identifies the Shipment
required: true
schema:
type: string
- name: includeCustomFreeFields
in: query
description: Optional parameter to request custom free fields.
schema:
type: boolean
- 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/ShipmentDto'
text/json:
schema:
$ref: '#/components/schemas/ShipmentDto'
'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:
- Shipment
summary: Update a specific Shipment
description: 'Response Message has StatusCode NoContent if PUT operation succeeded.
Response Message has StatusCode BadRequest if PUT operation failed.
The response headers include an ETag after a successful PUT operation.'
operationId: Shipment_PutByshipmentNbr
parameters:
- name: shipmentNbr
in: path
description: Identifies the Shipment 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 Shipment to update
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/ShipmentUpdateDto'
application/xml:
schema:
$ref: '#/components/schemas/ShipmentUpdateDto'
text/xml:
schema:
$ref: '#/components/schemas/ShipmentUpdateDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ShipmentUpdateDto'
required: true
x-bodyName: shipmentUpdateDto
responses:
'204':
description: NoContent
content:
application/json:
schema:
type: object
text/json:
schema:
type: object
'412':
description: Shipment 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: []
/v1/shipment:
get:
tags:
- Shipment
summary: Get a range of SO Shipments - ScreenId=SO302000 Request page size must be lower…
operationId: Shipment_GetAllShipments
parameters:
- name: customerId
in: query
schema:
type: integer
format: int32
- name: customerNumber
in: query
schema:
type: string
- name: greaterThanValue
in: query
description: This field has been deprecated and will be removed in future versions. The GreaterThanValue parameter has no effect on the result.
schema:
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: This field has been deprecated and will be removed in future versions. The OrderBy parameter has no effect on the result.
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: status
in: query
schema:
enum:
- Open
- Hold
- Completed
- Cancelled
- Confirmed
- Invoiced
- Receipted
- AutoGenerated
- PartiallyInvoiced
type: string
- name: pageSize
in: query
schema:
type: integer
format: int32
- name: pageNumber
in: query
schema:
type: integer
format: int32
- name: shipmentType
in: query
description: Filter by Shipment Type
schema:
enum:
- Issue
- DropShip
- Transfer
type: string
- name: shipmentDate
in: query
description: 'Shipment Date
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:_ __ShipmentDate__ and __ShipmentDate__ are __mutually inclusive__.'
schema:
type: string
- name: shipmentDateCondition
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:_ __ShipmentDate__ and __ShipmentDateCondition__ are __mutually inclusive__.'
schema:
type: string
- name: includeCustomFreeFields
in: query
description: Parameter to include custom free fields information in the result set, if true then custom free fields will be included in the result set
schema:
type: boolean
- 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/ShipmentDto'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ShipmentDto'
'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:
- Shipment
summary: Create a Shipment
description: 'Response Message has StatusCode Created if POST operation succeed.
Response Message has StatusCode BadRequest or InternalServerError if POST operation failed.
The response headers include an ETag after a successful POST operation.'
operationId: Shipment_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 Shipment to create
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentCreateDto'
text/json:
schema:
$ref: '#/components/schemas/ShipmentCreateDto'
application/xml:
schema:
$ref: '#/components/schemas/ShipmentCreateDto'
text/xml:
schema:
$ref: '#/components/schemas/ShipmentCreateDto'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ShipmentCreateDto'
required: true
x-bodyName: shipmentCreateDto
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: []
/v1/shipment/{shipmentNbr}/printShipmentConfirmation:
get:
tags:
- Shipment
summary: Get the shipment confirmation report
operationId: Shipment_PrintShipmentConfirmationByshipmentNbr
parameters:
- name: shipmentNbr
in: path
description: Identifies the shipment
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:
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: []
/v1/shipment/{shipmentNbr}/printPickList:
get:
tags:
- Shipment
summary: Get the pick list report
operationId: Shipment_PrintPickListByshipmentNbr
parameters:
- name: shipmentNbr
in: path
description: Identifies the shipment
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:
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: []
/v1/shipment/{shipmentNumber}/action/addSOLine:
post:
tags:
- Shipment
summary: Adds a Sales Order Line to a specific Shipment
description: Response Message has StatusCode NoContent if POST operation succeeded
operationId: Shipment_AddSOLineByshipmentNumber
parameters:
- name: shipmentNumber
in: path
description: Identifies the Shipment 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 Sales Order Line to add
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentSOLine'
text/json:
schema:
$ref: '#/components/schemas/ShipmentSOLine'
application/xml:
schema:
$ref: '#/components/schemas/ShipmentSOLine'
text/xml:
schema:
$ref: '#/components/schemas/ShipmentSOLine'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ShipmentSOLine'
required: true
x-bodyName: shipmentSOLine
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:
- interactiveapi: []
/v1/shipment/{shipmentNumber}/action/addSOOrder:
post:
tags:
- Shipment
summary: Adds a Sales Order to a specific Shipment
description: Response Message has StatusCode NoContent if POST operation succeeded
operationId: Shipment_AddSOOrderByshipmentNumber
parameters:
- name: shipmentNumber
in: path
description: Identifies the Shipment 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 Sales Order to add
content:
application/json:
schema:
$ref: '#/components/schemas/ShipmentSOOrder'
text/json:
schema:
$ref: '#/components/schemas/ShipmentSOOrder'
application/xml:
schema:
$ref: '#/components/schemas/ShipmentSOOrder'
text/xml:
schema:
$ref: '#/components/schemas/ShipmentSOOrder'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ShipmentSOOrder'
required: true
x-bodyName: shipmentSOOrder
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:
- interactiveapi: []
/v1/shipment/{shipmentNumber}/action/confirmShipment:
post:
tags:
- Shipment
summary: Confirm shipment operation
description: The action result dto contains information about the result of running the action
operationId: Shipment_ConfirmShipmentByshipmentNumber
parameters:
- name: shipmentNumber
in: path
description: Reference number of the shipment to be confirmed
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/ConfirmShipmentActionResultDto'
text/json:
schema:
$ref: '#/components/schemas/ConfirmShipmentActionResultDto'
application/xml:
schema:
$ref: '#/components/schemas/ConfirmShipmentActionResultDto'
text/xml:
schema:
$ref: '#/components/schemas/ConfirmShipmentActionResultDto'
'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: []
/v1/shipment/{shipmentNumber}/action/correctShipment:
post:
tags:
- Shipment
summary: Correct shipment operation
description: Response Message has StatusCode BadRequest or InternalServerError if POST operation failed
operationId: Shipment_CorrectShipmentByshipmentNumber
parameters:
- name: shipmentNumber
in: path
description: Reference number of the shipment to be corrected
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:
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: []
/v1/shipment/{shipmentNumber}/action/addLine:
post:
tags:
- Shipment
summary: Adds a new Shipment Line to a specific Shipment
description: Response Message has StatusCode NoContent if POST operation succeeded
operationId: Shipment_AddLineByshipmentNumber
parameters:
- name: shipmentNumber
in: path
description: Identifies the Shipment to update
required: true
schema:
type: string
- name: erp-api-background
in: header
description: 'Accepts the request and queues
# --- truncated at 32 KB (92 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/visma/refs/heads/main/openapi/visma-shipment-api-openapi.yml