OpenAPI Download API

AgeCheck

Allows the performance of automatic age checks. At this time only H@nd is supported for these checks





Properties

Property
Notes
Validation
ExternalId
Id of this transaction in the external system
ReadOnly
FromSCO
Indication that the request is comming from the SCO
Id
ReadOnly
Status
One of Requested, Rejected, Approved, Cancelled, Failed
Approved shows successful verification where Rejected means unsuccesfull
Readonly
TransactionId
If of the transaction assigned by this API
Required
ReadOnly
WorkstationId
Id of an Workstation to use for the check
Required
Must be existing workstation

API-methods

GET api/age-check/{id}

Retrieve a specific age check

POST api/age-check

Create a new age check. Will forward this to the external party

DELETE api/age-check/{id}

Cancel a specific age check. Only allows cancellation on checks that are not yet processed

ApiVersion

Allows the retrieval of Version and Release data





API-methods

GET api/api-version

Retrieve the version and release data

BackgroundTasks





Properties

Property
Notes
Validation
CreationDate
ReadOnly
Description
FileName
Maximum 255 characters
Id
ReadOnly
LastModifiedDate
ReadOnly
Result
Settings
Status
On POST: Defaults to Pending
Pending, Processing, Completed or Failed
Type
ScanStoreJobImport, BrandExport
Required

API-methods

GET api/background-tasks/{id}
Restricted access

Retrieve a list of background tasks

GET api/background-tasks
Restricted access

Retrieve a specific background task

POST api/background-tasks
Restricted access

Add a new background task

PATCH api/background-tasks/{id}
Restricted access

Update an existing background task

POST api/background-tasks/{id}/upload
Restricted access

Add a file to an existing background task. Allowed content-types: plain/text, text/csv, application/json, application/xml, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

GET api/background-tasks/{id}/download
Restricted access

Download the file linked to an existing background task

Books

Special integration with CB for books





API-methods

POST api/books/GetPhysicalStockCB

Request Physical stock from CB. Integration needs to be checked with CB. Endpoint only requires scancodes from books with a maximum of 50

POST api/books/CheckAvailabilityCB

Check if a ebook is orderable from CB. Provide the EAN13 code of a e-book. Endpoint requires integration permissions from CB by username and password.

Brand





Properties

Property
Notes
Validation
AdditionalParameters
Cannot be retrieved
BonusPointsAllowed
Store specific
BonusPointsFactor
Store specific
BonusPointsFactorEndDate
Store specific
BonusPointsFactorStartDate
Store specific
Code
Required
Maximum 15 characters
Must be unique
Cannot be updated
CreationDate
ReadOnly
Description
Required
Maximum 255 characters
DiscountAllowed
Store specific
On POST: Defaults to true
Id
ReadOnly
Expandable
Images
LastModifiedDate
ReadOnly
Expandable
PreferredSupplier
Store specific
ReadOnly
PreferredSupplierId
Store specific
Must be an existing supplier
PriceFactor
Store specific
0.01, 0.05, 0.1, 0.25, 0.5 or 1
PriceRounding
StoreId
Must be an existing store
Cannot be updated
Expandable
StoreSettings
Cannot be updated
Translations
Cannot be retrieved
VisibleInLists
Store specific
On POST: Defaults to true
VisibleInWebshop
Store specific

API-methods

GET api/brands

Get all brands
Supports paging

GET api/brands/{id}

Retrieve a specific brand

GET api/brands/ids

Retrieve a specific list of brands

GET api/brands/{id}/images

Retrieve the images of a specific brand

POST api/brands
Restricted access

Create a new brand, optionally with store settings and translations

PATCH api/brands/{id}
Restricted access

Update top level properties of an existing brand

DELETE api/brands/{id}
Restricted access

Removes an existing brand. Products linked to this brand will keep the link (id), but the brand will no longer be retrievable

GET api/brands/{id}/store-settings

Retrieve the store level settings for a specific brand.
Unlike other resources, a store-settings entry will not be returned at all if none of the requested fields is set.

PATCH api/brands/{id}/store-settings/{storeId}
Restricted access

Update the store settings for a specific brand on a specific store

DELETE api/brands/{id}/store-settings/{storeId}
Restricted access

Delete the store settings for a specific brand on a specific store. Retrieving brand data will then fallback to upper level stores

GET api/brands/code/{code}

Retrieve brand with specific code

POST api/brands/Search

Search brands see this link for examples and field explanations

BrandAdditionalParameters

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteStoreSettingsStoreId
On PATCH: Will overwrite store settings with the same values on given store and all underlying stores. Only on the stores that already have store settings

BrandStoreSettings

Store specific settings for brands





Properties

Property
Notes
Validation
AdditionalParameters
Cannot be retrieved
BonusPointsAllowed
BonusPointsFactor
BonusPointsFactorEndDate
BonusPointsFactorStartDate
BrandId
ReadOnly
DiscountAllowed
On POST: Defaults to true
PreferredSupplierId
Must be an existing supplier
PriceFactor
PriceRounding
0.01, 0.05, 0.1, 0.25, 0.5 or 1
StoreId
Required
VisibleInLists
On POST: Defaults to true
VisibleInWebshop

BrandStoreSettingsAdditionalParameters

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteChildStores
On PATCH: Will overwrite store settings with the same values on given store and all underlying stores. Only on the stores that already have store settings

BrandMemos

Memos can be used to store large descriptions for specific purposes





Properties

Property
Notes
Validation
Expandable
Brand
BrandId
CreationDate
ReadOnly
Id
ReadOnly
LanguageCode
LastModifiedDate
ReadOnly
MemoType
InternetMemo
StoreId
Text
The memo itself, can contain html encoded characters

API-methods

GET api/brand-memos

Retrieve all brand memos for specific brands or all available memos when no brands have been specified.

POST api/brand-memos

Create a new memo for a given brand and language

PATCH api/brand-memos

Update the text in one of the memos

Campaigns

Mostly used for marketing purposes, to provide details to services like Spotler.





API-methods

GET api/campaigns/{id}
Restricted access

Retrieve a specific campaign

GET api/campaigns
Restricted access

Retrieve a list of campaigns
Supports paging

CardTransactions

Every time points are collected or redeemed a transaction is added to a card.



When using non-EVL cards, transaction are not always linked to a specific card, when retrieving the transaction for a non-EVL card all transaction which are not linked to a specific card are included in the result.



Properties

Property
Notes
Validation
CardNumber
ReadOnly
Id
ReadOnly
LoyaltyRetailerId
The retailer id as configured in the ASPOS EVL service
Readonly
LoyaltyRetailerName
The retailer name as configured in the ASPOS EVL service
Readonly
Memo
ReadOnly
MutationDate
Readonly
NewPoints
Total points after this transaction
Readonly
OriginalPoints
Total points before this transaction
Readonly
PointMutation
Amount of points added or removed within this transaction. Between -100.000 and 100.000, but not 0

API-methods

GET api/customer-card-transactions

Retrieve the transactions for a specific card, customer (EVL only) or contact(EVL only). Customer or contact is ignored if a cardId is given.
When retrieving for a customer or contact with multiple cards, an aggregated result will be returned. Without filter an empty array is returned
Supports paging

Carriers





Properties

Property
Notes
Validation
Code
Id
Settings

API-methods

GET api/carriers
Restricted access

Get all carriers

GET api/carriers/{id}
Restricted access

Get carrier by id

GET api/carriers/code/{code}
Restricted access

Get carrier by code

POST api/carriers
Restricted access

Creates a new carrier

PATCH api/carriers/{id}
Restricted access

Updates an existing carrier by id

DELETE api/carriers/{id}
Restricted access

Deletes a carrier by id

Cart

The shopping cart API.





Properties

Property
Notes
Validation
Expandable
AvailableToPromise
The maximum ATP from the cart lines based on delivery days, null (NoStock) is considered the highest value
BonusPoints
Only included if parameter IncludeBonusPoints is set to true.
Sum of bonuspoints on lines and possible points set on voucher products
CouponIds
Must be existing productIds, see FAQ for more info about coupons
CustomerId
DeliveryCountryCode
A ISO2 CountryCode of the existing countries. Will only function when UseForeignTaxRates is set to true
DiscountAmountExclTax
Calculated: (PriceExclTax * Quantity) - TotalExclTax. This means it will not always match the DiscountAmountInclTax minus TaxRate and therefor should not be shown together with DiscountAmountInclTax
Readonly
DiscountAmountInclTax
Readonly
EventReference
Used for eventmessage handling on calculation events.
IncludeBonusPoints
IncludeKitItems
Expandable
Lines
Locale
StoreId
TaxAmount
ReadOnly
TotalExclTax
Readonly
TotalInclTax
Readonly
VoucherIds
Must be existing voucherIds
WorkStationId
When filled in the request, an event will be published with the cartcalculate results.

API-methods

POST api/carts/Calculate

Calculates the discounts and totals for the posted cart.

POST api/carts/MustCheck

Calculates if a cart needs to be checked by an employee.

AvailableToPromise

ATP data is determined based on generic settings of type 'AvailableToPromise', example value of config:
<json>{ "Stock": [ { "Store": "M001", "type": "Default", "PercentageOfStock": 90 }, { "Store": "M201", "type": "Extra", "PercentageOfStock": 100 }, { "Store": "M202", "type": "Extra", "PercentageOfStock": 50 } ], "DeliveryPromise": [ { "type": "StockDefaultStore", "DeliveryinDays": 0, "DeliveryMessageNL": "Direct leverbaar, vandaag besteld morgen in huis", "DeliveryMessageEN": "Immediately available, ordered today, delivered tomorrow", "DeliveryMessageFR": "" }, { "type": "StockExtraStore", "DeliveryinDays": 3, "DeliveryMessageNL": "Vandaag besteld, levering in 3 dagen", "DeliveryMessageEN": "Ordered today, delivery in 3 days", "DeliveryMessageFR": "" }, { "type": "StockMultipleStores", "DeliveryinDays": 4, "DeliveryMessageNL": "Vandaag besteld, levering in 4 dagen", "DeliveryMessageEN": "Ordered today, delivery in 4 days", "DeliveryMessageFR": "" }, { "type": "NoStock", "DeliveryinDays": null, "DeliveryMessageNL": "Product is niet op voorraad neem contact op met onze vestiging voor mogelijkheden", "DeliveryMessageEN": "Product is not in stock, please contact our branch for options", "DeliveryMessageDE": "", "DeliveryMessageFR": "" } ] }</json>





Properties

Property
Notes
Validation
DeliveryDays
DeliveryMessage
DeliveryType
StockDefaultStore, StockExtraStore, StockMultipleStores or NoStock
MaxStockDefault
Expandable
MaxStockExtra
MaxStockTotal
ProductId

CartCheckResponse





Properties

Property
Notes
Validation
AmountOfProductsToCheck
Minimum amount of products that should be checked to satisfy the requirements
MustCheck
Indication that the cart needs to be checked by an employee
PendingActionRequiredEvents
Indicates that there's events that still have to be handled before must check can be run
ReasonCodeId
Reason code describing why the cart should be checked
ReasonCodeId_Processed
Describes why no must check needs to be done even when requirements were otherwise met. This can happen if there's too many ongoing checks for example

CartLine





Properties

Property
Notes
Validation
Expandable
AvailableToPromise
ReadOnly
BonusPoints
ReadOnly
CustomerOrderLineId
If no manual prices/discount are given they are copied from this customer order line. Note that this also applies when using scancodes instead of productIds
If multiple lines have a customerOrderLineId, they must all come from the same customer order
DiscountAmountExclTax
Optionally provide a discount amount to override the discount calculated by ASPOS. Only 'DiscountAmountInclTax' or 'DiscountAmountExclTax' is required
DiscountAmountInclTax
Optionally provide a discount amount to override the discount calculated by ASPOS. Only 'DiscountAmountInclTax' or 'DiscountAmountExclTax' is required
DiscountDescription
Readonly
DiscountId
Readonly
DiscountPercentage
Readonly
Expandable
Discounts
If multiple discounts are applied to a single line, the amounts per discount can be found here
ReadOnly
Id
IsQuantityProduct
Indication that this is a product with a custom quantity
IsWichtProduct
Indication that this product is a wicht product
KitGroupId
Id of the kitgroup this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
LineNr
ParentProductId
Id of the parent product when this line is a kitline or kitgroupline
Must be an Product in the same calculation
PriceExclTax
Optionally provide a price to override the default price in ASPOS. Only 'PriceInclTax' or 'PriceExclTax' is required.
PriceInclTax
Optionally provide a price to override the default price in ASPOS. Only 'PriceInclTax' or 'PriceExclTax' is required.
PriceModified
If true, no discounts will be calculated for this line. Line will also not be included in discounts of category TotalDiscount
Expandable
Product
Readonly
ProductId
ProductKitId
Id of the product kit this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
Quantity
For wight products this needs to be 1.
ScanCode
The scanCode for the product in case of a wicht code
Needs to be 13 characters
SourceTransactionRecordId
If no manual prices/discounts are given they are copied from this transaction record. This property is only used for returning items.
TaxAmount
ReadOnly
TaxCodeId
ReadOnly
TaxRate
ReadOnly
TotalExclTax
Readonly
TotalInclTax
Readonly

CartLineDiscount





Properties

Property
Notes
Validation
DiscountAmountExclTax
DiscountAmountInclTax
DiscountDescription
DiscountId

Client Credentials

Manage credentials used to connect with the API





Properties

Property
Notes
Validation
AccessTokenLifeTimeInSeconds
ClientCredentialStore
Types: Aspos, AwsCognito
ClientId
length must be between 2 and 255 characters and only contain letters and numbers
Required for ClientCredentialStore Aspos, readonly for AwsCognito
ClientName
length must be between 1 and 64 characters
Required for ClientCredentialStore AwsCognito, readonly for Aspos
ClientSecret
length must be between 20 and 2000 characters
Write-only field. Can be set for for ClientCredentialStore Aspos only.
CreationDate
ReadOnly
Id
Readonly
LastModifiedDate
ReadOnly
ReadOnly
ReadOnly
StoreId
WebServiceClientType
Types: Administrator, Webshop, DataImporter
Required

API-methods

GET api/client-credentials/{id}
Restricted access

Retrieve specific client credentials

GET api/client-credentials
Restricted access

Get all client credentials

POST api/client-credentials
Restricted access

Add a set of client credentials

PATCH api/client-credentials
Restricted access

Update a set of client credentials

DELETE api/client-credentials/{id}
Restricted access

Delete a set of client credentials

Company Info

Request information for a company using Chamber Of Commerce information





Properties

Property
Notes
Validation
CocNumber
Required
CompanyName
ReadOnly
ContactGender
ReadOnly
ContactInitials
ReadOnly
ContactPrefix
ReadOnly
ContactSurname
ReadOnly
Expandable
CorrespondenceAddress
ReadOnly
DomainName
ReadOnly
Employees
ReadOnly
EmployeesClass
ReadOnly
Expandable
EstablishmentAddress
ReadOnly
EstablishmentNumber
CocEstablishmentNumber in POST requests
LegalFormCode
ReadOnly
LegalFormDescription
ReadOnly
LegalName
ReadOnly
MobileNumber
ReadOnly
PhoneNumber
ReadOnly
PrimarySbiCode
ReadOnly
PrimarySbiDescription
ReadOnly
SecondarySbiCode
ReadOnly
SecondarySbiDescription
ReadOnly
TradeName
ReadOnly

API-methods

POST api/company-info/FindCompany

Get Company information by Chamber Of Commerce number

Establishments





Properties

Property
Notes
Validation
CocNumber
CorrespondenceCity
ReadOnly
CorrespondenceStreet
ReadOnly
EstablishmentCity
ReadOnly
EstablishmentNumber
ReadOnly
EstablishmentStreet
ReadOnly
IsMainEstablishment
ReadOnly
LegalName
ReadOnly
TradeName
ReadOnly

API-methods

POST api/company-info/FindEstablishments

Get establishments for a company

Converters

When using our SOAP webservices in combination with our REST service you might have to convert id's. You should save the converted ids in your own datasource and not convert them on-the-fly every time.





Properties

Property
Notes
Validation
Values
1 to 500 values

API-methods

POST api/converters/ConvertToId

POST api/converters/ConvertToUid

Countries

Get country name and whether they are based in the EU





Properties

Property
Notes
Validation
CreationDate
ReadOnly
Id
ReadOnly
IsEU
Indicates whether a country is based within the EU
Required
LastModifiedDate
ReadOnly
Name
Required
Between 1 and 100 characters

API-methods

GET api/countries

Retrieves all the countries

GET api/countries/{id}

Retrieves a country by Id

Currencies

Defines the exchange rate for a given currency if present.





Properties

Property
Notes
Validation
Code
The currency for which an exchange rate is defined.
Needs to be an ISO 4217 currency code and cannot be updated afterwards
CreationDate
ReadOnly
Description
A descriptive text of the currency.
Maximum 40 characters.
ExchangeRate
The exchange rate.
Needs to be greater than 0.
Id
The ID of the currency.
IsDefault
ReadOnly
LastModifiedDate
ReadOnly

API-methods

GET api/currencies/{id}

Gets a currency with the specified Id.

POST api/currencies

Posts a currency.

PATCH api/currencies/{id}

Patches a currency with the specified Id.

CustomerAddresses

A customer can have multiple addresses, but only 1 per type. In ASPOS Backoffice on the customer detail page, the 'default' address is shown on the first tab, not on the addresses-tab. When customers are created in the backoffice they always have a 'default' address





Properties

Property
Notes
Validation
Attention
To the attention of
Maximum 200 characters
City
Required
Maximum 35 characters. Not required if type is Default
CountryCode
Required
Must be ISO 3166 2-digit country code
Expandable
Customer
ReadOnly
CustomerId
Must be an existing customer on POST, ignored on PATCH
HouseNumber
Required
Maximum 8 characters. Not required if type is Default
HouseNumberExtension
Maximum 35 characters. Can only contain letters, numbers, whitespace and the following characters: \ - _ . /
Id
Readonly
Memo
Maximum 255 characters
Name
Maximum 120 characters
PhoneNumber
Maximum 15 characters
PostalCode
Required
Maximum 10 characters. Not required if type is Default
Street
Required
Maximum 65 characters. Not required if type is Default
Type
Can't be updated
Required
Only a single address per type is allowed.
Default, Delivery, DeliveryAddress1, DeliveryAddress2, DeliveryAddress3, DeliveryAddress4, DeliveryAddressOld, Invoice, PakjeGemak

API-methods

GET api/customer-addresses/{id}

Retrieve a specific address

GET api/customer-addresses

Retrieve a list of addresses of a specific customer or all addresses if no customer has been specified
Supports paging

POST api/customer-addresses

Creates a new address for a specific customer

PATCH api/customer-addresses/{id}

Update a specific address from a specific customer

DELETE api/customer-addresses/{id}

Remove a specific address from a specific customer.
Addresses of type 'Default' can not be deleted

CustomerCampaigns

A customer campaign is created when a customer is opting in to a campaign





Properties

Property
Notes
Validation
Expandable
Campaign
CampaignId
CreatedByGroupUserId
Expandable
Customer
CustomerId
Id
IsOptIn
ModifiedByGroupUserId
OptOutDate

API-methods

GET api/customer-campaigns
Restricted access

Retrieve a list of customer campaigns
Supports paging

GET api/customer-campaigns
Restricted access

Retrieve a specific customer campaign

CustomerCards

Cards are used to collect and redeem points. They can be EVL or non-EVL cards, the main difference is when using EVL cards the points are saved per card and for normal cards per customer.



Based on store settings it is determined if cards should be processed as EVL or non-EVL cards, you can not use EVL and non-EVL cards together for actions within the same store.



Properties

Property
Notes
Validation
BlockedReasonCodeId
Only saved when IsBlocked is true
Must be an reasoncode of type 'CustomerCardBlocked'
Expandable
Customer
ReadOnly
Expandable
CustomerContact
ReadOnly
CustomerContactId
CustomerId
Must be an existing customer on POST, ignored on PATCH
Id
Readonly
IsBlocked
IsEvl
Card is part of Aspos EVL system
Readonly, must be null on POST/PATCH
Number
Is a unique scancode
This number must be between 5 and 25 characters
RegistrationCode
Only used for EVL cards, managed in EVL system
ReadOnly
TotalBonusPoints
Only used for EVL cards
Readonly, must be null on POST/PATCH
ValidUntilDate
Can still be retrieved and updated when no longer valid

API-methods

GET api/customer-cards

Retrieve all cards for a specific customer or all cards if no customer has been specified
Supports paging
When no customer is specified, no bonuspoints are retrieved.

GET api/customer-cards/{id}

Retrieve a specific card

GET api/customers/card/{cardNumber}

Retrieve a specific card by cardNumber

POST api/customer-cards

Create a new customer card

PATCH api/customer-cards/{id}

Update an existing customer card. Customer can not be changed, use POST /move to move a card to a new customer

POST api/customer-cards/{id}/AddPoints

Add or remove bonus points from given card.
If you remove more points from an EVL-card than available, the remaining points are removed from a different card if the customer has multiple cards. Otherwise the result will be a negative amount on the given card.br />For non-EVL cards the amount is changed for the customer, because points are not card-specific. A memo can be added to the change, up to 500 characters.

POST api/customer-cards/{id}/Move

Moves an existing cardNumber to a different customer. A new (blocked) card is created with the same number prefixed with 'v' and linked to the old customer for reference purposes.

CustomerContacts





Properties

Property
Notes
Validation
Expandable
Address
ReadOnly
AddressId
Must be an existing address for the related customer
AllowEmail
Contacts preferences on type of communication, also refer to IsOptIn.
AllowNewsLetter
Contacts preferences on type of communication, also refer to IsOptIn.
AllowOnAccount
AllowRedeemBonusPoints
Contact is not allowed to order products which costs bonusPoints, this only applies when customer loyalty type is set to individual.
AllowServiceMails
Contacts preferences on type of communication, also refer to IsOptIn.
AllowSms
Contacts preferences on type of communication, also refer to IsOptIn.
BirthDate
Must be between 1-1-1900 and today
Expandable
Cards
ReadOnly
Code
Optional, Unique
Can't be updated. Maximum 100 characters
Expandable
Customer
ReadOnly
CustomerId
Must be an existing customer on POST, ignored on PATCH
Expandable
DefaultCard
ReadOnly
DefaultCardId
Must be an existing card for the related customer
Email
Required
Maximum 250 characters.
Must be a valid e-mail address
Must be unique
Required based on store setting 'Custcont_EmailReq'
FirstName
Required
Maximum 45 characters
Required based on store setting 'Custcont_FirstNameReq'
Gender
Required
Male, Female, Family, Gender neutral or Company
Required based on store setting 'Custcont_SexReq'
Id
Readonly
Initials
Required
Maximum 10 characters
Required based on store setting 'Custcont_InitialsReq'
IsBlocked
IsOptIn
Agreed to receive e-mails.
LastName
Required
Maximum 45 characters
Memo
Maximum 4000 characters
MiddleName
Maximum 10 characters
MobileNumber
Required
Maximum 20 characters
Required based on store setting 'Custcont_MobileReq'
Password
Only used when creating a new customer. Cannot be retrieved.
Minimum 6 characters, maximum 50 characters
PhoneNumber
Maximum 20 characters
Salutation
Maximum 60 characters
Expandable
SecurityGroup
The security group that the user belongs to.
Readonly
SecurityGroupId
Id of the security group that this user belongs to.
Must be an existing security group
Title
Maximum 15 characters
TotalBonusPoints
Type
CEO, Chief Buyer, Child, default, Father, Grandma, Grandpa or Mother

API-methods

GET api/customer-contacts

Retrieve a list of contacts for a specific customer or all contacts if no customer is specified

GET api/customer-contacts/{id}

Get a specific contact by id

GET api/customer-contacts/code/{code}

Get a contact by code

POST api/customer-contacts

Creates a new contact for a specific customer
Included 'customerUser' will be saved as well

PATCH api/customer-contacts/{id}

Update a specific contact from a specific customer

DELETE api/customer-contacts/{id}

Remove a specific contact from a specific customer

POST api/customer-contacts/{id}/ValidatePinCode

Validate the pincode for a specific contact which is used for some payments.
Returns a 400 Bad Request when the pincode is not valid

POST api/customer-contacts/{id}/ChangePassword

Change the password of a specific contact user

CustomerContracts





Properties

Property
Notes
Validation
BankAccountNumber
BonusAmount
BonusPercentage
BonusTurnover
BonusTurnOverFromStartContract
BonusTurnOverLast4Weeks
Code
ContractDate
ContractEndDate
ContractSignedDate
ContractStartDate
Expandable
Customer
CustomerId
CustomerNote
Description
Id
ReadOnly
InternalNote
IsSigned
LastCalculationDate
Status
TargetBonusAmount
TargetBonusPercentage
TargetTurnover
Expandable
TieredPercentages
Turnover

API-methods

GET api/customer-contracts

Retrieve a list of contracts for a specific customer or all contracts if no customer is specified

GET api/customer-contracts/{id}

Get a specific contract by id

CustomerEventFiles

File attachments for customer events





Properties

Property
Notes
Validation
FileName
Id
Readonly
RelatedId

API-methods

POST api/customer-event-files

Add a file entry to a customer event.
Use upload to upload the actual file content.

GET api/customer-event-files

Gets the file metadata for a specific customer event

GET api/customer-event-files/{id}

Gets a specific file's metadata

GET api/customer-event-files/{id}/download

Download the file content

POST api/customer-event-files/{id}/upload

Upload the file content. Max 10MB.
Allowed types: pdf.

The file should be sent as formdata with a file-type input. For more information see File Uploading

DELETE api/customer-event-files/{id}

Delete a file

CustomerEvents

Events show the activity on a customer object. When manually creating events notifications and actions are not set by default. Apart from manually added events the following events are automatically added
POST api/customers/Validate adds a 'WebshopLogin' event
POST api/customer-cards or POST api/customers adds a 'NewCustomerCard' event
POST api/customer-orders adds a 'WebshopOrder' event





Properties

Property
Notes
Validation
ActionClosedDate
ActionExpirationDate
ActionExpirationTimeFrom
ActionExpirationTimeTo
ActionNote
ActionRequired
ActionTypeCode
Default set to none. Linked to 'Stamtabel' 'Actie type' in backoffice
ActionTypeDescription
ReadOnly
CreatedByGroupUserId
CreationDate
ReadOnly
Expandable
Customer
ReadOnly
Expandable
CustomerContact
ReadOnly
CustomerContactId
If given, must be valid contact of given Customer
CustomerId
Required
CustomerNote
Expandable
CustomerOrder
ReadOnly
EventType
Required
CustomerOrderAppointment, CustomerOrderQuotation, Email, GiftListToCustomerOrder, NewCustomerCard, Phone, Spotler, Talk, Visit, WebshopLogin or WebshopOrder
EventTypeDescription
Alternative values for eventtypes
EventXml
Can be used to store extra information
Must be valid xml
Expandable
ExpectedPayment
ReadOnly
Expandable
Files
ReadOnly
HandledByGroupUserId
Id
ReadOnly
Expandable
IntendedForGroupUser
ReadOnly
IntendedForGroupUserId
IntendedForStoreId
LastModifiedDate
ReadOnly
Message
Required
Maximum 100 characters
NotificationCode
NotificationDate
NotificationExecutionDate
NotificationProcessed
NotificationTemplateId
NotificationType
default is NoNotification
NoNotification, AbandonedCart, App, Birthday, Email, Newsletter, OfflineProductReview, Phone, ProductReview, SMS, Welcome
NotificationXml
ParentCustomerEventId
PdfLink
ReadOnly
RelatedId
Specifically used for adding events in CustomerOrders. Requires to submit RelatedType.
RelatedType
Specifically used for events in CustomerOrders
CustomerOrder
RelationId
Indicates what type of relation is set
Customer, CustomerContact, CustomerOrder, Invoice, PurchaseOrder, Transaction
RelationType
Indicates what type of relationId is set
Customer, CustomerContact, CustomerOrder, Invoice, PurchaseOrder, Transaction
ShowToCustomer
Expandable
Store
ReadOnly
StoreId

API-methods

GET api/customer-events

Get the events for a specific customer or all events if no customer has been specified.
Supports paging
Allows ordering on:

  • ActionExpirationDate
  • ActionExpirationTimeFrom
  • ActionExpirationTimeTo
  • ActionNote
  • CreationDate
  • Customer.Code
  • Customer.CompanyName
  • Customer.FirstName
  • Customer.Id
  • Customer.LastName
  • EventType
  • IntendedForGroupUser.FirstName
  • IntendedForGroupUser.Id
  • IntendedForGroupUser.LastName
  • IntendedForGroupUser.MiddleName
  • IntendedForGroupUser.UserName
  • LastModifiedDate
  • NotificationProcessed
  • Store.Name

GET api/customer-events/{id}

Get a specific event by Id

POST api/customer-events

Adds an event to a specific customer

POST api/customer-events/AbandonedCart

Adds an event for spotler campaigns

PATCH api/customer-events

Updates between 1 and 100 events

DELETE api/customer-events/{id}

Remove a specific event

AbandonedCart

The abandoned cart events are used in combination with Spotler when a customer added product's to it's cart on a webshop, but left the site without actually buying the products. An active Campaign must also be configured of type AbandonedCart





Properties

Property
Notes
Validation
CartUrl
Must be a valid https-url which links to the cart containing the products
CustomerId
Must be an existing customer
ProductIds
Must be atleast one existing product
StoreId

CustomerFields

The custom fields can be used for anything, and new fields can be added at any time. They are mostly used for customer properties which are not supported by default in Aspos. Different stores and/or languages can have different fields.
Each customer field code can only exist once per customer and language. Each language will have it's own Id, this is different than other object like products where only the property (like Description) is translatable.
The customer-fields endpoints return the fields per store, this differs from expand 'Fields' on the customers endpoint because there only the active value for the given store is returned.





Properties

Property
Notes
Validation
Code
Expandable
Customer
ReadOnly
CustomerId
Must be an existing customer on POST, ignored on PATCH
Description
ReadOnly
Id
ReadOnly
Language
StoreId
ReadOnly
Value

API-methods

GET api/customer-fields

Get all fields for a specific customer in a specific language or all fields in a specific language if no customer has been specified
Use includeAllLanguages when all languages are needed
Supports paging.

POST api/customer-fields

Add a field to a specific customer

PATCH api/customer-fields/{id}

Update an existing field for a specific customer, only the value can be changed

DELETE api/customer-fields/{id}

Delete the field associated with a specific customer

GET api/customer-fields/definitions

Get all possible fieldCodes (with choices if available)
Supports paging. Max limit of 500 for non admins.

CustomerFieldType

Details about the type of customer field that are available. This information can be cached.





Properties

Property
Notes
Validation
Choices
Valid values if fieldType is 'DropDown'
ReadOnly
Code
ReadOnly
Description
ReadOnly
ExternalId
ReadOnly
Type
YesNo, FreeText or DropDown
ReadOnly

CustomerGroups

Customers are always in a customergroup, which can have settings related to discounts and bonuspoints. When creating or updating a customer the customergroup can be set. This are the valid values for this property. They can vary per store.



Discount and bonuspoints settings are automatically applied when creating an order, but only if other requirements are also met (i.e. a product is allowed to have a discount etc.)



Properties

Property
Notes
Validation
BonusPointsPerVoucher
The costs of a voucher in bonuspoints, used when creating a new voucher
BonusPointsThreshold
Used to notify customer when a certain amount of bonuspoints are available, or to set a minimum amount of bonuspoint which should be available before they can be used.
BonusProgramAmountPerPoint
A customer will receive a bonuspoint per this amount, when placing an order
BonusProgramPointsPerVisit
A customer will receive this amount of bonuspoints per order
BonusProgramType
Central with rest, Central without rest, Central with rounding, None
Code
Expandable
CouponProduct
CouponProductId
DefaultPriceListId
DefaultVoucherAmount
Default amount a voucher is worth, used when creating a new voucher
Description
DiscountPercentage
Default discountpercentage for customers within this group, if no other discount gives a cheaper result
Id
Memo

API-methods

GET api/customer-groups

Retrieve all customer groups.

GET api/customer-groups/{id}

Retrieve a specific customer group by id.

GET api/customer-groups/default

Retrieve the default customer group.

CustomerInterests

Interests of a customers, which can be used for marketing purposes like highlighting specific product categories.
The list of available interests can be managed in the backoffice in 'Stamtabel' with name 'Klant interesse'





Properties

Property
Notes
Validation
Code
Required
Expandable
Customer
ReadOnly
CustomerId
Description
ReadOnly
Id
ReadOnly

API-methods

GET api/customer-interests

Get the interests of a given customer or all interests if no customer has been given.
Supports paging.

POST api/customer-interests

Adds an interest to a specific customer. Code must be unique for given customer.

DELETE api/customer-interests/{id}

Removes an interest from a specific customer

GET api/customer-interests/interests

Get a list of possible interests

CustomerInvoices

After customer orders are processed, invoices are created





Properties

Property
Notes
Validation
Expandable
Customer
CustomerId
Date
DepositAmount
EmailAddress
Id
ReadOnly
InvoiceNumber
ReadOnly
OpenAmount
If more than 0 the customer should still pay the remaining amount
PerEmail
Invoice is sent per email to the customer
Expandable
Store
StoreId
TotalAmount
TotalPaidAmount

API-methods

GET /api/customer-invoices

Retrieve all invoices for a specific customer within a date range. When no customer has been specified, all invoices within the date range are retrieved. Set IncludeChildCustomers to indicate that the relation between customers should be used.
Supports paging

GET /api/customer-invoices/{id}

Retrieve a specific invoice

GET /api/customer-invoices/{id}/download

Retrieve the invoice as a PDF

CustomerOrderExtensions





Properties

Property
Notes
Validation
CustomerOrderId
Must be an existing CustomerOrderId
Id
ReadOnly
Key
Must be unique per CustomerOrderId
Can add / update all Keys except for 'VATCountryCode'
DateCollectedByCustomer, DateReceivedInstore, ExternalshippingID, ExternalShippingIDActive, PickUpStoreCode, TransactionOID, VATCountryCode
Value
Required

API-methods

POST api/customer-order-extensions

Create a new extension on an existing order

PATCH api/customer-order-extensions

Update the value of an existing extension

CustomerOrderExternalProductConfiguratorsProject





Properties

Property
Notes
Validation
ConfiguratorId
Readonly
ConfiguratorProjectId
Readonly
CustomerOrderId
Readonly
Id

API-methods

GET api/customer-order-external-product-configurators-projects
Restricted access

Retrieve all configurators.

POST api/customer-order-external-product-configurators-projects
Restricted access

Link an external project to a customer order.

CustomerOrderFiles

File attachments for customer orders





Properties

Property
Notes
Validation
CustomerOrderId
FileName
Id
Readonly
Type
Internal or External

API-methods

POST api/customer-order-files

Add a file entry to an order.
Use upload to upload the actual file content.

GET api/customer-order-files

Gets the file metadata for a specific order

GET api/customer-order-files/{id}

Gets a specific file's metadata

GET api/customer-order-files/{id}/download

Download the file content

POST api/customer-order-files/{id}/upload

Upload the file content, can be patched after an upload. Max 10MB.
Allowed types: doc(x),dot(x),log,pdf,ppa,pps(x),ppt(x),pot(x),txt,xla,xls(x),xlt(x),xml.

The file should be sent as formdata with a file-type input. For more information see File Uploading

DELETE api/customer-order-files/{id}

Delete a file

CustomerOrderImages

Image attachments for customer orders





Properties

Property
Notes
Validation
Category
FileName
Will be set when a file is uploaded with a name in the content disposition header.
Can be patched after an upload, but this will not change the image filename in the url.
Id
Readonly
IsInternal
Specify is this image is for internal use only
RelatedId
Must be an existing order id.
Type
The image type.
Must be unique per order. (/api​/customer-order-lines-images​/types)
Url
The url that can be used to retrieve the image
Readonly

API-methods

POST api/customer-order-images

Add an image entry to an order.
Use upload to upload the actual file content.

GET api/customer-order-images

Gets the image metadata for a specific order.

GET api/customer-order-images/{id}

Gets a specific image's metadata.

GET api/customer-order-images/types

Gets the available image types.

PATCH api/customer-order-images/{id}

Update a specific image's metadata.

POST api/customer-order-images/{id}/upload

Upload the file content. Max 10MB. Allowed types: jpg,jpeg,png.

The file should be sent as formdata with a file-type input. For more information see File Uploading

DELETE api/customer-order-images/{id}

Delete an image.

CustomerOrderLineImages

Image attachments for customer order lines





Properties

Property
Notes
Validation
Category
FileName
Will be set when a file is uploaded with a name in the content disposition header.
Can be patched after an upload, but this will not change the image filename in the url.
Id
Readonly
IsInternal
Specify is this image is for internal use only
RelatedId
Must be an existing order line id.
Type
The image type.
Must be unique per order line. (/api​/customer-order-lines-images​/types)
Url
The url that can be used to retrieve the image
Readonly

API-methods

POST api/customer-order-lines-images

Add an image entry to an order line.
Use upload to upload the actual file content.

GET api/customer-order-lines-images

Gets the image metadata for a specific order line.

GET api/customer-order-lines-images/{id}

Gets a specific image's metadata.

GET api/customer-order-lines-images/types

Gets the available image types.

PATCH api/customer-order-lines-images/{id}

Update a specific image's metadata.

POST api/customer-order-lines-images/{id}/upload

Upload the file content. Max 10MB. Allowed types: jpg,jpeg,png.

The file should be sent as formdata with a file-type input. For more information see File Uploading

DELETE api/customer-order-lines-images/{id}

Delete an image.

CustomerOrders

When creating orders for webshops, create a pre-order when a customers wants to buy something in your shop. Add payments and then commit the pre-order to finalize the order.





Properties

Property
Notes
Validation
AdditionalParameters
Only used when creating a new order
ReadOnly
AllowPartialDeliveries
Expandable
AppointmentWithGroupUser
ReadOnly
AppointmentWithGroupUserId
Must be an existing groupuser from the same store or parent stores
Expandable
Balance
ReadOnly
BonusPointsProcessed
Represents if bonus points are applied to the card of customer
ReadOnly
CancelledDate
ReadOnly
Expandable
CancelledGroupUser
ReadOnly
CancelledGroupUserId
ReadOnly
CancelledReasonCodeId
ReadOnly
CouponIds
Used for calculating discounts
Must be existing productIds, see FAQ for more info about coupons
CreatedDate
ReadOnly
Expandable
Customer
ReadOnly
Expandable
CustomerContact
ReadOnly
CustomerContactId
Can be removed by sending id 0
Must be an existing contact for the given customer
CustomerId
Can't be updated
Required
Must be an existing customer
CustomerReference
Can be used to store a reference to an external system
Maximum 80 characters
Delivery_City
Will be ignored if IsDeliveryOrder is false
Required for delivery orders
Maximum 300 characters
Delivery_CountryCode
Will be ignored if IsDeliveryOrder is false
Required for delivery orders
Must be ISO 3166 2-digit country code
Delivery_HouseNumber
Will be ignored if IsDeliveryOrder is false
Required for delivery orders
Maximum 50 characters
Delivery_HouseNumberExtension
Will be ignored if IsDeliveryOrder is false
Maximum 49 characters
If filled combination of HouseNumber and Extension is maximum of 49 characters
Delivery_Name
Will be ignored if IsDeliveryOrder is false
Maximum 500 characters
Delivery_PhoneNumber
Will be ignored if IsDeliveryOrder is false
Maximum 15 characters
Delivery_PostalCode
Will be ignored if IsDeliveryOrder is false
Required for delivery orders
Maximum 50 characters
Delivery_Street
Will be ignored if IsDeliveryOrder is false
Required for delivery orders
Maximum 300 characters
DeliveryDate
Date on which the order will be delivered to the customer
Must be today or in the future
Expandable
DeliveryNotes
ReadOnly
DeliveryServiceAppointmentDate
DateTime on which service is provided, ie help with installing the delivered product
Must be today or in the future
DeliveryServiceAppointmentRemarks
DeliveryStoreId
Will be ignored if IsDeliveryOrder is false
Must be an existing store
DeliveryTime
Note: Aspos Backoffice only works with quarters of an hour, so 15:10 can not be displayed. 15:00 or 15:15 can.
Must be between 0:00 and 23:59
DeliveryTimePeriod
Maximum 80 characters
DiscountAmountExclTax
ReadOnly
DiscountAmountInclTax
ReadOnly
DownPaymentAmount
Dropshipment
ReadOnly
ExportedDate
Expandable
Extensions
ExternalAssignmentCode
Must be an existing external assignment
ExternalAssignmentDescription
ReadOnly
Expandable
Files
ReadOnly
Expandable
GroupUser
Must be existing group user
GroupUserId
Must be existing group user
Id
Readonly
InternalRemark
Expandable
InvoiceAddress
ReadOnly
InvoiceAddressId
Must be an existing address for the given customer
Expandable
Invoices
ReadOnly
IpAddress
Can be used to log the customers ip address if your privacy statement allows this
Maximum 50 characters
IsCommitted
Readonly
IsDeliveryOrder
IsExported
IsProcessed
ReadOnly
IsReturnOrder
Create a return order. A return order has lines with negative quantities and is linked to a source order
Quantity is negative and within the boundry of the source order
Kind
Regular, Custom
LastMailDate
ReadOnly
Expandable
LastModifiedByGroupUser
ReadOnly
LastModifiedByGroupUserId
Must be an existing group user
LastModifiedDate
Readonly
LastToPurchaseOrderDate
ReadOnly
MailCount
ReadOnly
MemoReportOptionAssignment
MemoReportOptionInvoice
MemoReportOptionQuotation
MessageType
OrderDate
Readonly
Expandable
OrderLines
Required
Between 0 and 500 lines
OrderNumber
Readonly
OrderType
AutoDoorOrder, Branch delivery, DirectSales, Export, GiftList, InternetOrder, InterstoreDeliveryOrder, Net delivery, Normal, PreOrderWebShop, PriceQuotation, Repair, StoreToDoor or Subscription. Defaults to PreOrderWebShop which is needed for unpayed webshop orders
One of before mentioned values. Cannot be changed
OrderTypeDescription
A user friendly description for OrderType
ReadOnly
PackageCarrierCode
Will be ignored if IsDeliveryOrder is false
Must be present in carrier settings
PackageIncoTerm
Will be ignored if IsDeliveryOrder is false
Must be present in carrier settings
PackageServiceLevelOtherCode
Will be ignored if IsDeliveryOrder is false
Must be present in carrier settings
PackageServiceLevelTimeCode
Will be ignored if IsDeliveryOrder is false
Must be present in carrier settings
Expandable
Payments
ReadOnly
Expandable
PickingLines
ReadOnly
PreferredDeliveryDate
Must be today or in the future
PreferredDeliveryTimeFrom
Maximum 50 characters
PreferredDeliveryTimeTo
Maximum 50 characters
PrivateRemarks
PrivateRemarksOnWorkOrder
Indicates the PrivateRemarks will be visible in the WorkOrder report.
ProcessedDate
ReadOnly
Expandable
ProcessedGroupUser
ReadOnly
ProcessedGroupUserId
ReadOnly
ProcessedLabelDate
ReadOnly
PurchaseOrderCreated
ReadOnly
Reference
Maximum 40 characters
Remarks
Expandable
RepairOptions
ReturnOrderReasonCodeId
Reason for returning the order. This is a ReasonCode with Type CustomerOrderReturns.
Must be an existing reason code of type CustomerOrderReturns
Expandable
SalesPersonGroupUser
ReadOnly
SalesPersonGroupUserId
Must be an existing groupuser from the same store or parent stores
SelectionId
Maximum 10 characters
ShipmentTypeId
Required
Must be an existing shipment type
SourceCustomerOrderId
Customer order where this order is linked to
Must be an existing order
SourceId
Represents which application or process created the order
Must be an existing source.
Can't be updated
SourceStoreId
When customers will pay now but collect their order in a physical store, set this property to the id of the store that will receive the payments.
Can't be updated
Must be an existing store
Status
Cancelled, Open, Processed or Unknown
Readonly
StatusDetail
Cancelled, Delivered, DeliveredPartCancelled, NoLines, Open, PartiallyDelivered, PartDeliveredPartPicked, PartiallyDeliveredPicked, PartiallyPicked, Picked, Processed or Unknown
Readonly
StatusDetailDescription
Translated calculated status
Readonly
Expandable
Store
ReadOnly
StoreId
Can't be updated
Must be an existing store
Expandable
ToDeliveryNoteGroupUser
ReadOnly
ToDeliveryNoteGroupUserId
ReadOnly
ToDeliveryNoteLastDate
ReadOnly
Expandable
ToPurchaseOrderGroupUser
ReadOnly
ToPurchaseOrderGroupUserId
ReadOnly
TotalExclTax
Readonly
TotalInclTax
Readonly
Expandable
TrackTrace
ReadOnly
TransportRemarks
Maximum 500 characters
URLAffiliate
ReadOnly
VoucherIds
Used for calculating discounts
Must be existing vouchers
WarehouseId
Must be existing Warehouse on given store. Cannot be changed

API-methods

GET /api/customer-orders

Retrieve a list of orders for a specific customer or all orders when no customer has been specified.
Default date range is set to last month, use the startDate and endDate parameters to change this
Supports paging
Can be filtered by orderNumber, orderType, externalAssignmentCode, slectionId, pickBatchIds, date range, status and/or appointmentWithGroupUser. Set IncludeChildCustomers to indicate that the relation between customers should be used.
Allows ordering on:

  • AppointmentWithGroupUser.FirstName
  • AppointmentWithGroupUser.Id
  • AppointmentWithGroupUser.LastName
  • AppointmentWithGroupUser.MiddleName
  • AppointmentWithGroupUser.UserName
  • Customer.Code
  • Customer.CompanyName
  • Customer.FirstName
  • Customer.Id
  • Customer.LastName
  • DeliveryDate
  • DeliveryServiceAppointmentDate
  • OrderDate
  • OrderNumber
  • OrderType
  • PreferredDeliveryDate
  • Reference
  • RepairOptions.Brand.Description
  • RepairOptions.ProductDescription
  • RepairOptions.RepairCenterDescription
  • RepairOptions.RepairerReference
  • RepairOptions.RepairerSupplier.Code
  • RepairOptions.RepairerSupplier.CompanyName
  • RepairOptions.RepairerSupplier.Id
  • RepairOptions.Status
  • Status
  • Store.Name
  • TotalInclTax


Ordering syntax is [FieldName] [Asc|Desc].
Default is Ascending ordering.
Orders can be filtered on their number of lines with linesType: None (1), Single (2) or Multi (4) A combination can also be used. For example 6 (2 + 4) will retrieve all orders with one or more lines.
Order lines of the following types are ignored: Product PLU, MatrixProduct, Giftcard, EBook, ProductDimension, Customized, Wicht, GiftTicket, Cash-Prepay product, Service

GET /api/customer-orders/{id}

Retrieve a specific customer order

GET /api/customer-orders/ids

Retrieve multiple customer orders by id

POST /api/customer-orders

Create a pre-order. Payments must be added separately

PATCH /api/customer-orders/{id}

Update a specific order

DELETE /api/customer-orders/{id}

Delete a customer order. Can only be done when the order has no lines

POST /api/customer-orders/{id}/Commit

Commit a specific pre-order. You can commit orders with or without payments, in most cases customers must pay immediately so you should add the payments before committing. If an order will be payed on delivery or in a physical store, you should commit without payments. In this case you should (most of the time) set 'SkipBonusPointMutations' to true, because the customer would receive the bonusPoints on actual payment.
'ExportOrder' is used in specific cases when the created orders should be sent to external systems. This will only work when other customer specific tasks are enabled.
Might give a list of Warnings with Code, Description and Details. Description will indicate what did go wrong and Detail will tell you when.

POST /api/customer-orders/{id}/Cancel

Cancel a specific order. Only non processed pre-orders without payments and inter-store orders can be cancelled

POST /api/customer-orders/{id}/Distribute

Distribute a specific order to one or more stores. This will be done by using the settings set on the store, and will throw an exception if these settings are missing or incorrect. Returns the id's of the new orders.

GET /api/customer-orders/{id}/tracktrace

Retrieve de TrackAndTrace-information for a specific customer order, only order with the type 'normal' and 'internetorder' are allowed.

GET /api/customer-orders/shipment-types

Retrieve all shipment types

GET /api/customer-orders/sources

Retrieve all order sources, which represent an application or process which creates orders

GET /api/customer-orders/external-assignments

Retrieve all external assignments, which can be managed in the 'Stamtabel' with name 'Externe opdrachten'

GET /api/customer-orders/number/{number}

Retrieve orders with a specific number. This might return multiple orders since numbering is for a specific store.

GET /api/customer-orders/reference/{reference}

Retrieve orders a matching customer reference. This might return multiple orders since numbering is for a specific store.

POST /api/customer-orders/{id}/Process
Restricted access

Process a specific customer order. Deleted, already processed, and interStore orders cannot be processed. A status code 429 will be returned when trying to process multiple orders at the same time.

POST /api/customer-orders/{id}/CreatePickingLines
Restricted access

Creates picking lines for all unprocessed order lines that require picking, can only be done for open or (partially) delivered/picked orders and non-PriceQuotation orders.

POST /api/customer-orders/{id}/CreateStoreJobsFromPickingLines
Restricted access

Creates store jobs from the open picking lines.

GET /api/customer-orders/{id}/UpdateRepairStatus

Update the status of an existing repair order with status Open, PartiallyPicked or Picked to one of the following statuses: Approved, InProgress External, InProgress Internal, InProgress Onsite, Ready, Ready To Invoice

GET /api/repair-orders

Retrieve a list of repair orders

GET /api/repair-orders/{id}

Retrieve a specific repair order

POST /api/repair-orders

Create a repair order

PATCH /api/repair-orders/{id}

Update a specific repair order

DELETE /api/repair-orders/{id}

Delete a repair order. Can only be done when the order has no lines

POST /api/repair-orders/{id}/Cancel

Not yet supported for repair orders

POST /api/customer-orders/{id}/RefreshFromExternalProductConfigurators
Restricted access

Load all external projects and update the customer order accordingly. Only allowed for orders of types: Normal, PriceQuotation or PreOrderWebShop

POST /api/customer-orders/{id}/ConfirmExternalProductConfiguratorProjects
Restricted access

Confirm all external projects linked to a customer order. Only allowed for orders of types: Normal, PriceQuotation or PreOrderWebShop

POST /api/customer-orders/{id}/ConvertToPurchaseOrder

Convert a customer order to one or several purchase orders

POST /api/repair-orders/{id}/GenerateLabel

Generates a repair label based on the given customerOrderId

CustomerOrderAdditionalParameters

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
IncludeKitItems
SkipDiscountCalculation
On POST: Will skip discount calculation, any active discount will be ignored.

CustomerOrderCancel





Properties

Property
Notes
Validation
CancelledByGroupUserId

CustomerOrderCreateStoreJobsFromPickingLinesRequest





Properties

Property
Notes
Validation
CreatedByGroupUserId
CreatedByStoreId
IPAddress
Maximum 40 characters
LineRemark
Defaults to 'Klantorder pickregel' when null

CustomerOrderCreateStoreJobsFromPickingLinesResponse





Properties

Property
Notes
Validation
StoreJobSessionIds

CustomerOrderExtensions

Extensions for customer orders allow setting special properties like the ExternalShippingId for a order





Properties

Property
Notes
Validation
CustomerOrderId
The Id of the customerOrder the extension belongs to. Filled automatically on POST
Must be existing CustomerOrder
Id
ReadOnly
Key
The type of the extension.
One of ExternalShippingID, ExternalShippingIDActive, TransactionOID. VATCountryCode is a readonly extensions
Value
The value of the extension. ExternalShippingIDActive required either a true or false value

CustomerOrderGenerateRepairLabelContract





Properties

Property
Notes
Validation
AmountOfLabels
Max 25 labels allowed

PickingLines





Properties

Property
Notes
Validation
BackorderQuantity
Expandable
CustomerOrder
ReadOnly
CustomerOrderId
Expandable
CustomerOrderLine
ReadOnly
CustomerOrderLineId
FreeStockQuantity
Id
ReadOnly
OrderQuantity
PickBatchId
PickedByGroupUserId
PickedDate
PickedQuantity
PreviouslyDeliveredQuantity
Processed
ProcessedDate
ReceivedQuantity
SortOrder
Status
Open, Closed or Deleted
StockQuantity
ToDeliveryQuantity
ToPickQuantity

Repair options

Used for orders of type 'Repair'





Properties

Property
Notes
Validation
Expandable
Brand
ReadOnly
BrandId
Must be an existing product brand
RepairProductId must be set
CustomerAdditionalPartsNote
CustomerCausedDefect
CustomerComplaintDescription
CustomerReferenceID
Maximum 50 characters
DownPaymentAmount
Greater than or equal to 0
ExportedDate
ExportID
Maximum 50 characters
InternalNote
IsExported
LeniencyRepair
Expandable
LoanProduct
ReadOnly
LoanProductId
Must be product of type 'Loan'
Cannot be updated if matching orderline is (partially) processed/delivered
LoanProductSerialNumber
RepairProductId must be set
Maximum 128 characters
MessageType
None, Email, SMS, Mail, Call, WhatsApp
Model
Maximum 100 characters
PhysicalProductStateCode
MasterTable 'PhysicalProductState'
RepairProductId must be set
PhysicalProductStateDescription
ReadOnly
PreviousRepairNumber
Maximum 50 characters
PriceApproved
PriceApprovedDate
PriceIndication
Greater than or equal to 0
PriceIndicationApprovalNote
PriceLimitToBeApprove
Greater than or equal to 0
ProductDescription
Maximum 100 characters
ProductLocationChangedByGroupUserId
ProductLocationLastModifiedDate
ProductLocationWarehouseId
PurchaseDate
RepairProductId must be set
PurchasePrice
Greater than or equal to 0
RepairCenterCode
MasterTable 'RepairCenterID
RepairCenterDescription
ReadOnly
RepairerReceivedDate
RepairerReference
Maximum 50 characters
RepairerSentDate
Expandable
RepairerSupplier
ReadOnly
RepairerSupplierId
Must be an existing supplier
RepairNote
Expandable
RepairProduct
ReadOnly
RepairProductId
Must be product of type 'Repair'.
Cannot be updated if matching orderline is (partially) processed/delivered
RepairProductSerialNumber
Maximum 128 characters
RepairProductId must be set
Repetition
SmallMaterialCostsAmount
Greater than or equal to 0
Status
ReadOnly
ToBeApproved, Approved, InProgress Internal, InProgress External, InProgress Onsite, Ready, Ready To Invoice, Invoiced or Cancelled
StatusDescription
ReadOnly
SupplierNote
Expandable
TransactionRecord
ReadOnly
TransactionRecordId
UnderWarranty
WarrantyCertificateID
Maximum 100 characters

TrackTrace

Track and Trace





Properties

Property
Notes
Validation
Code
The Tracking-code.
Link
The link to the trackingpage

Customers

Customer are needed to login and create orders.





Properties

Property
Notes
Validation
AdditionalParameters
Additional options like sending of the welcome mail through SendWelcomeEmail
Expandable
Addresses
AllowBonusPoints
Deprecated
Store specific
Will be set based on CustomerGroup-settings
Readonly
AutoSendReceipt
Automatically send receipt
Expandable
Balances
ReadOnly
BirthDate
Must be between 1-1-1900 and today
Required based on store setting 'Cust_BirthDayReq' when gender is Male or Female
BlockedReasonCodeId
Must be an reasoncode of type 'Blocked'
Expandable
Cards
CoCEstablishmentNumber
Gender must be 'Company'
Maximum 20 characters
CoCNumber
Gender must be 'Company'
Maximum 20 characters
Required based on store setting 'Cust_CompanyCoCReq'
Code
Optional, Unique
Can't be updated. Should not start with a M.
Maximum 15 characters
CompanyName
Required
Gender must be 'Company'
Maximum 70 characters
CompanySizeCode
Gender must be 'Company'
Must be an existing company size
CompanySizeDescription
Readonly
CompanyTypeCode
Gender must be 'Company'
CompanyTypeDescription
Readonly
Expandable
Contacts
Expandable
Contracts
ReadOnly
CreationDate
ReadOnly
Expandable
CustomerGroup
ReadOnly
CustomerGroupId
Will get default value if left empty, storesetting 'DefaultCustomerGroup'
Must be an existing customer group
Expandable
DefaultContact
ReadOnly
DefaultContactId
Must be an existing contact
Expandable
DefaultStore
ReadOnly
DefaultStoreId
The backoffice only shows the value if the store has 'webshop actief' enabled
Must be an existing store
DeliveryDays
Usually only used for companies
Email
Required
Maximum 254 characters.
Must be a valid e-mail address
Must be unique
Required based on store setting 'Cust_EmailReq'
Expandable
Fields
The fields of the customer on the current store
Expandable
FinancialData
FirstName
Required, unless Gender is 'Company', based on store setting 'Cust_FirstNameReq'
Maximum 45 characters. If Gender is 'Company' firstName will be emptied
Gender
Required
Male, Female, Family, Gender neutral, or Company
Id
Readonly
Initials
Maximum 10 characters
Expandable
Interests
ReadOnly
IsBlocked
Customer is blocked, but can still login. Webshop should decide what to do with this situation.
Readonly
IsOptIn
Agreed to receive e-mails
LanguageCode
NL, DE, EN or FR
LastModifiedDate
ReadOnly
LastName
Required
Gender must not be 'Company'
Maximum 70 characters.
LoyaltyType
Default or Individual
Memo
Maximum 255 characters
MessageType
Customers preference on receiving messages
Readonly
MiddleName
Maximum 10 characters
MobileNumber
Maximum 20 characters
Expandable
ParentCustomer
ReadOnly
ParentCustomerId
Must be an existing customer
Password
Only used when creating a new customer. Cannot be retrieved.
Minimum 6 characters, maximum 50 characters
Expandable
PriceList
ReadOnly
PriceListId
Store specific
Will get default value if left empty or 0, storesetting 'DefaultPriceList'
Readonly
Registered
Expandable
RepresentativeGroupUser
ReadOnly
RepresentativeGroupUserId
Readonly
Status
Must be an existing CustomerStatus: 'Active', 'Expired' or 'Inactive'
StoreId
The store this customer is created on. Can't be updated.
StoreMemo
ReadOnly
Expandable
StoreSettings
Title
Maximum 15 characters
TotalBonusPoints
From EVL system if enabled, otherwise normal amount of bonuspoints
Readonly
Website
Maximum 250 characters

API-methods

GET api/customers

Retrieve a list of customers with optional birthDate filter. Only day and month of the birthdate are used to filter the results
Supports paging

POST api/customers

Creates a new customer
Included 'addresses', 'contacts', 'cards' and 'customeruser' will be saved as well

GET api/customers/{id}

Retrieve a specific customer

PATCH api/customers/{id}

Update a specific customer
'addresses', 'contacts' and 'cards' must be updated separately

POST api/customers/{id}/ChangePassword

Change the password of a specific customer user

GET api/customers/{id}/store-settings

Retrieve the store level settings for a specific customer.
Unlike other resources, a store-settings entry will not be returned at all if none of the requested fields is set.

GET api/customers/card/{cardNumber}

Retrieve a specific customer by card number

GET api/customers/email/{email}

Retrieve a specific customer by email address. Can be the email address of a customer or a contact

POST api/customers/Validate

Validate the login credentials from a customer or contact.
Returns a 400 Bad Request when the credentials are not valid

GET api/customers/company-sizes

Retrieve all company sizes. These can be used when creating/updating a customer of type Company

GET api/customers/company-types

Retrieve all company types. These can be used when creating/updating a customer of type Company

GET api/customers/Search

Retrieve customers based on a search in keywords. Keywords will match if the keyword matches or starts with your search term.

GET api/customers/{id}/fields

Retrieve fields for the specific store

POST api/customers/HasPassword

Returns true if the customer or contact with the given email address has a password set. Can be used to prevent duplicate accounts.

GET api/customers/cocNumber/{cocNumber}

Retrieve customers by cocNumber and optional cocEstablishmentNumber

POST api/customers/{id}/Forget
Restricted access

Forget a customer. Note: this can not be undone. Customer may not have any open balance (balance, delivery notes or invoices) on any store

CustomerBalance

Current balance of a customer for specific store. If the FreeBalance is less than 0 the store stills ows money to the customer, and vice versa





Properties

Property
Notes
Validation
Balance
FreeBalance
OpenOrderAmount - Balance
OpenOrderAmount
Sum of non delivered items on order lines for given customer. TotalInclTax / Quantity * BackorderQuantity
StoreId

CustomerFieldView

These are the same as CustomerFields, but show only the value from the given storeId's point of view.





CustomerFinancialData

Financial data for a customer





Properties

Property
Notes
Validation
AllowOnAccount
Store specific
Readonly
BankAccountNumber
Maximum 20 characters
BicSwiftCode
Store specific
Readonly
CreateInterStoreInvoices
Store specific
Readonly
CreditBalance
Open credit balance based on unpaid orders, invoices and delivery notes
Readonly
CreditLimit
Store specific
Only relevant if AllowOnAccount is true
Readonly
DebtorCode
Store specific
Readonly
DirectDebitAuthorizationCode
Store specific
Readonly
DirectDebitEnabled
Store specific
Readonly
DirectDebitPeriod
Store specific
Readonly
DirectDebitSignatureDate
Store specific
Readonly
DiscountPercentage
Store specific
Default discount percentage on all products if the product allows discount
Readonly
FrancoLimit
Store specific
Readonly
GlobalLocationNumber
Maximum 75 characters
Iban
Store specific
International bank account number
Readonly
InvoiceCollectionBy
Store specific
Readonly
InvoiceCollectionPeriod
Store specific
Readonly
InvoiceEmail
Store specific
Readonly
InvoicePaymentDiscountPercentage
Store specific
Discount percentage on invoices if customer pays within certain period
Readonly
PaymentPeriodInDays
Store specific
Readonly
SendInvoiceAsXml
Store specific
Readonly
SendInvoiceByEmail
Store specific
Readonly
TaxCodeId
Store specific
ReadOnly
UseCollectiveInvoices
Store specific
Readonly
VatNumber
Gender must be 'Company'
Maximum 20 characters
Required based on store setting 'Cust_CompanyVatReq'
VatNumberStatus
Gender must be 'Company'
ReadOnly

CustomerForget

Request to forget a customer





Properties

Property
Notes
Validation
StoreId
StoreId to run the request under. Defaults to the storeid of the token
Must be existing store

CustomerStoreSettings

Store level settings for a customer.





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
AllowBonusPoints
Deprecated
AllowOnAccount
BicSwiftCode
Maximum 75 characters
CreateInterStoreInvoices
CreditLimit
Expandable
Customer
ReadOnly
CustomerId
Inferred from the url on PATCH or from the customer object when nested in a customer POST
ReadOnly
DebtorCode
Maximum 20 characters
DirectDebitAuthorizationCode
Maximum 75 characters
DirectDebitEnabled
DirectDebitPeriod
Usually in days
Maximum 75 characters
DirectDebitSignatureDate
DiscountPercentage
Default discount percentage on all products if the product allows discount
Between 0 and 100
FrancoLimit
Iban
International bank account number
Maximum 75 characters
InvoiceCollectionBy
All, CustomerContact, Project or Store
InvoiceCollectionPeriod
Day, Week or Month
InvoiceEmail
Maximum 254 characters
InvoicePaymentDiscountPercentage
Discount percentage on invoices if customer pays within certain period
Between 0 and 100
IsBlocked
LastVisitDate
MessageType
Preference on receiving messages. Supports None, Email, SMS, Mail and Call
PaymentPeriodInDays
Between 0 and 1000
PriceListId
Optional
Defaults to the Default pricelist
Must be an existing pricelist
Expandable
RepresentativeGroupUser
ReadOnly
RepresentativeGroupUserId
Must be an existing group user or 0 to reset
SendInvoiceAsXml
SendInvoiceByEmail
Expandable
Store
ReadOnly
StoreId
Inferred from the url or query parameter
ReadOnly, But Required when added on customer creation
StoreMemo
TaxCodeId
Must be an existing tax code or 0 to set to default
UseCollectiveInvoices

CustomerStoreSettingsAdditionalParameters

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteStoreSettingsStoreId
On PATCH: Will overwrite store settings with the same values on given store and all underlying stores. Only on the stores that already have store settings

ValidateRequest





Properties

Property
Notes
Validation
DuplicateEmailOption
Only needed when environment contains duplicate email addresses with passwords. In that case you can specify which accounts should be checked with the given password
Email
Password
StoreId

Daily payment totals





Properties

Property
Notes
Validation
AmountCounted
CashInAmount
CashOutAmount
Expandable
CashRegister
CashRegisterId
Expandable
Currency
CurrencyId
CurrencyTotal
Expandable
DailyTotal
DailyTotalId
Date
DifferenceAmount
Id
Expandable
PaymentMethod
PaymentMethodId
Payments
RegisterId
StartAmount
StoreId
TotalAmount

API-methods

GET api/daily-payment-totals
Restricted access

Gets the daily payment totals within a specified date range, for specific stores, for specific dailytotals or for specific paymentmethods

GET api/daily-payment-totals/{id}
Restricted access

Gets a specific daily payment total

Daily totals





Properties

Property
Notes
Validation
Expandable
CashDrawer
CashDrawerId
Expandable
CashRegister
CashRegisterId
ChangeAmount
Date
DeliveryNotesAmount
DepositAmount
DifferenceAmount
DiscountAmount
DoorCounterIn
DoorCounterOut
Id
IsJournalized
NumberOfTransactions
PurchaseAmount
ReceivedAmount
RegisterId
Remarks
StoreId
SystemSessionId
TaxAmount
TotalExclTax
TotalInclTax

API-methods

GET api/daily-totals
Restricted access

Gets the daily totals within a specified date range

GET api/daily-totals/{id}
Restricted access

Gets a specific daily total

Cashdrawer





Properties

Property
Notes
Validation
Description
Id
Number
SortOrder
Status
Closed, Counted, Inactive or Open
StoreId
Type
Bonuspoints, Cash, CustomerCount, InterStore, Invoice, Safe or Webshop

Cashregister





Properties

Property
Notes
Validation
DefaultCashDrawerId
DefaultWarehouseId
Id
RegisterId
StoreId
Type
Invoices or Normal

DeliveryNotes

A delivery note is a document that accompanies a shipment of goods, and provides a list of the products and quantity of the goods included in the delivery.





Properties

Property
Notes
Validation
CreationDate
Expandable
Customer
Expandable
CustomerAddress
CustomerAddressId
CustomerId
Expandable
CustomerOrder
CustomerOrderId
CustomerReference
Expandable
DeliveryNoteRecords
DeliveryState
One of Default, Invoice, Open
DeliveryType
DepositAmount
DiscountAmount
DocumentID
Id
InvoiceMark
One of NotMarked, MultiInvoice, SingleInvoice
Notes
Number
Remark
StoreId
TaxAmount
TotalExclTax
TotalInclTax
Expandable
Transaction
TransactionId

API-methods

GET api/delivery-notes

Retrieve all delivery notes. Optionally filter on Date, CustomerOrders, Customer, InvoiceMark (NotMarked, MultiInvoice or SingleInvoice), DeliveryState (Default, Invoice or Open), Number or DirectDebit

GET api/delivery-notes/{id}

Retrieve a specific delivery note by id.

POST api/delivery-notes/{id}/SendEmail

Send a email from the given deliverynote

DeliveryNoteRecords





Properties

Property
Notes
Validation
DiscountPercentage
Id
ListPrice
Expandable
Product
ProductDescription
ProductId
ProductQuantity
PurchasePrice
TaxAmount
TotalExclTax
TotalInclTax
UnitPrice
WarrantyEndDate

Destinations





Properties

Property
Notes
Validation
City
Maximum 100 characters
Expandable
Country
ReadOnly
CountryId
Indicates in which country the destination is located
Required
CreationDate
ReadOnly
IATA
The unique IATA code for the destination
Required
3 characters
Id
ReadOnly
LastModifiedDate
ReadOnly
Name
The full name of the destination
Maximum 150 characters

API-methods

GET api/destinations

Retrieves all the destinations

GET api/destinations/{id}

Retrieves a destination by Id

GET api/destinations/iata/{code}

Retrieves a destination by IATA

POST api/destinations

Adds a new destination

PATCH api/destinations/{id}

Updates a destination

DELETE api/destinations/{id}

Deletes a destination

DiscountRecords

Some discounts have discount records to specify more details about when to trigger. How the data on the records is used, depends on the category set on the discount itself.





Properties

Property
Notes
Validation
DiscountAmount
DiscountId
DiscountPercentage
DiscountPriceExclTax
DiscountPriceInclTax
Id
ReadOnly
Expandable
Product
ProductId
Quantity
ThresholdAmount
Type

API-methods

GET api/discount-records

Retrieve all discount records

GET api/discount-records/{id}

Retrieve a specific discount record by id.

Discounts





Properties

Property
Notes
Validation
Expandable
Customer
CustomerId
Description
The description as configured in the backoffice
DiscountCategory
CustomerDiscount, MixMatch, MixMatchOnAll, MixMatchOnAllNet, MixMatchOnBrand, MixMatchOnCollection, MixMatchOnPriceCode, MixMatchOnProductGroup, MixMatchOnSubGroup, MixMatchOnSupplier, OkDiscount, PricecodeStaggered, Product, ProductBrand, ProductDiscountPrice, ProductGroep, ProductPriceCode, ProductSubGroup, TotalDiscount, TotalDiscountPercentage, TotalDiscountWithVoucher, TotalProductBrandDiscount, TotalProductGroupDiscount
DiscountCategoryRelatedId
Related object, depends on DiscountCategory. Could be product, brand, productGroup etc
DiscountCheapest
The % discount given to the cheapest product(s)
DiscountCheapestQuantity
The amount of products that receive the DiscountCheapest discount
DiscountKind
The type of discount. Currently only Default and Scale exists
Expandable
DiscountProduct
A product added to the receipt by this discount
DiscountProductId
EndDate
The last day this discount is active.
EndTime
The discount is only active until the EndTime of each day.
FlyerCode
'Folderkenmerk' in backoffice
FlyerDescription
HideOnWebshopPage
Can be used to show or hide something on you webshop, it does not affect the functionality of the discounts
Id
Expandable
Images
IsActive
If true, discount can be applied on the current store when all other requirements are also met (start/end time, products, etc.)
MaximumQuantity
MinimumQuantity
Expandable
PriceList
PriceListId
Expandable
Product
Only when DiscountCategory is Product
SelectionCode
SelectionDescription
StartDate
The first day this discount is active.
StartTime
The discount is only active from the StartTime of each day.
TicketDescription
The ticket description as configured in the backoffice
TotalAmount
The totalamount of the discount. This is either set from the backoffice or calculated on-save by considering the absolute discount amount and then written to the totalAmount field
VoucherOneTimeUsePerReceipt
Indication if the voucher (and thus discount) can only be used once per receipt
Expandable
VoucherProduct
The voucher needed to trigger this discount
VoucherProductId
VoucherRequired
WebshopLabelTypeCode
Used in webshop to visualize discounts on product
WebshopLabelTypeDescription
WeekDays
The discount is only active on these days.

API-methods

GET api/discounts

Retrieve all discounts, regardless of state

GET api/discounts/{id}

Retrieve a specific discount by id.

GET api/discounts/flyers

Retrieve all flyers, which can be managed in the 'Stamtabel' with name 'Folderkenmerk'

DistributionKeys

Distribution keys can be used to distribute the stock when processing a receiving.





Properties

Property
Notes
Validation
Code
DefaultPurchaseQuantity
Description
Id
MaximumQuantity
MinimumQuantity
ParentDistributionKeyId
Expandable
Records
StoreId
Type
Stores or StoreGroups

API-methods

GET api/distribution-keys

Retrieve all distribution keys

GET api/distribution-keys/{id}

Retrieve a specific distribution key by id.

DistributionKeyRecords





Dynamic Menus

Dynamic Menus are used as menu's in the POS or SCO





Properties

Property
Notes
Validation
BackColor
ButtonColumnCount
ButtonHeight
ButtonHeightMargin
ButtonRowCount
Expandable
Buttons
ButtonWidth
ButtonWidthMargin
CreationDate
EndDate
HideEmptyButtons
Id
ImageId
LastModifiedDate
MustBeShown
ParentId
PaymentTypeId
StartDate
StoreId
StyleBackColor
StyleFontColor
StyleFontName
StyleFontSize
StyleIsBold
StyleIsItalic
StylePosition
StyleUnusedBackColor
Expandable
SubMenus
TabIndex
TabStatus
One of Active, ActiveInheritable, Not active, Test
TabTitle
Type
One of Normal, Payments, PaymentSubmenu Or Submenu

API-methods

GET api/dynamic-menus

Get All Menus

GET api/dynamic-menus/{id}

Get specific menu

Dynamic Menus Buttons

Buttons under a dynamic menu





Properties

Property
Notes
Validation
CreationDate
CustomerId
EndDate
Function
One of Hotkey, Normal, OpenPaymentSubmenu, OpenSubmenu, PaymentType, ProductMemo Or Scale
GroupUserId
HotKeyCodes
Id
Expandable
Image
ImageId
ImageName
Index
IsVisible
LastModifiedDate
MenuId
PaymentCouponId
PaymentCouponScancode
PaymentTypeId
Expandable
Product
ProductId
Quantity
Expandable
ScanCode
ScanCodeId
ShowProductImage
StartDate
Status
One of Active, Not active, Test
StyleBackColor
StyleFontColor
StyleFontName
StyleIsBold
StyleIsItalic
StylePosition
SubMenuId
Type

EVouchers





Properties

Property
Notes
Validation
Code
The code of the voucher
Description
Logo
The logo that needs to be printed. Base64 encoded
PrintBarcode
Indication if the EAN code needs to be printed on the voucher (at the bottom)
Expandable
Receipts
Generated receipts
TicketInformation
The information to print on the ticket for the customer. May include layout tags which start with a % and has 1 or 2 positions after it

API-methods

POST api/evouchers

Request the creation of a e-voucher. Requires the EAN code of the voucher wanted

Receipt





Properties

Property
Notes
Validation
EscPosData
The EscPosData
PrintOrder
The print order
Receipt
The receipt itself

Expected Payments

Expected Payments are for guarding payments to be made.





Properties

Property
Notes
Validation
Amount
The amount must be greater than 0 and cannot be greater than the result of TotalOrderAmount -/- TotalOrderPayment -/- TotalOpenExpectedPayments -/- TotaldeliveryNotes.
Expandable
CustomerOrder
ReadOnly
CustomerOrderId
CustomerReference
ExternalLink
Id
Readonly. Expected payments can only be created for orders with type: Normal, PreOrderWebShop or Repair.
PaymentRequestType
PaymentTypeId
ProcessedDate
RequestedDate
ScheduledDate
Status
The status of the expected payment. One of Open, Processed, Sent
ExpectedPayments with status 'Processed' cannot be deleted

API-methods

GET api/expected-payments

Get Expected Payments

GET api/expected-payments/{id}

Get Expected Payment by id

POST api/expected-payments

Create a new Expected Payment

DELETE api/expected-payments/{id}

Delete an Expected Payment by id

ExternalProductConfigurator





Properties

Property
Notes
Validation
Id
ReadOnly
IsActive
Readonly
Name
Readonly
Url
Readonly

API-methods

GET api/external-product-configurators
Restricted access

Retrieve all configurators.

GET api/external-product-configurators/{id}
Restricted access

Retrieve configurator by id.

POST api/external-product-configurators/{id}/GetToken
Restricted access

Create a new access token.

Define FAQ links and in what order they appear.





Properties

Property
Notes
Validation
Id
The ID of the FAQ link.
LinkName
A descriptive link text.
Required on POST; Must be between 1 and 150 characters
LinkUrl
The URL where this FAQ link points to
Required on POST; Must be between 1 and 255 characters.
Order
Specifies the ordering of this FAQ link; On POST defaults to 1 if left blank
Must be greater or equal than 0
PageName
The page where this FAQ link is meant for
Required on POST; Must be between 1 and 150 characters

API-methods

GET api/faq-links/{id}

Gets a FAQ link with the specified Id.

GET api/faq-links

Gets all FAQ links.

POST api/faq-links

Creates a FAQ link.

PATCH api/faq-links/{id}

Updates a FAQ link with the specified Id.

DELETE api/faq-links/{id}

Deletes a FAQ link with the specified Id.

Flights





Properties

Property
Notes
Validation
CreationDate
ReadOnly
DateLastUpdated
Time of the last update of the flight data in the Schiphol API
Required
Expandable
Destination
ReadOnly
DestinationIATA
The unique IATA code for the destination
Required
3 characters
ExpectedTimeBoarding
ExpectedTimeGateOpen
ExternalFlightId
The external Id for the flight
Required
Between 1 and 100 characters
FlightName
Required
Between 1 and 7 characters
FlightStatus
The abbreviated flight status
Required
AIR, ARR, BRD, CNX, DEL, DEP, DIV, EXP, FIR, GCH, GCL, GTD, GTO, SCH, TOM or WIL
Gate
Between 1 and 10 characters
Id
ReadOnly
LastModifiedDate
ReadOnly
ScheduleDate
The scheduled date of departure
Required
ScheduleTime
The scheduled time of departure

API-methods

GET api/flights

Retrieves all the flights

GET api/flights/{id}

Retrieves a flight by Id

GET api/flights/ids

Retrieves flights by Id

GET api/flights/externalFlightId/{externalFlightId}

Retrieves a flight by the external Id

POST api/flights/Bulk

Adds flights

PATCH api/flights

Updates flights

DELETE api/flights

Deletes flights

POST api/flights/Search

Search for a flight by flightname

GiftCard

If no ConfigurationId is provided one will be retrieved automatically. Info and Pay use the SerialNumber, Activate and Reload use the ProductId





API-methods

POST api/gift-cards/{serialNumber}/GetInfo

Retrieve the info of the giftcard.

POST api/gift-cards/{serialNumber}/Activate

Activate the giftcard and set the balance to the given amount

POST api/gift-cards/{serialNumber}/Pay

Use the balance on the card to pay

POST api/gift-cards/{serialNumber}/Reload

Set the balance to the given amount of an already activated giftcard

GiftCard Activate





Properties

Property
Notes
Validation
Amount
Amount in the given currency, e.g. 12.5 of 19.99, or 100 to put on the giftcard
Between 0.01 and 1000000m.
ClientReference
Transparent transaction reference the client can store with the transaction.
Maximum 3 characters
ConfigurationId
The guid which corresponds to the configuration for the giftprovider (i.e. Intersolve or TCS)
PinCode
The pincode of the giftcard
ProductId
TransactionId
the Unique id linking to a customer transaction to this transaction with the giftcard provider.
WorkstationId
The ID of the client which sends the request

GiftCard Info





Properties

Property
Notes
Validation
ConfigurationId
The guid which corresponds to the configuration for the giftprovider (i.e. Intersolve or TCS)
PinCode
The pincode of the giftcard
WorkstationId
The ID of the client which sends the request

GiftCard Pay





Properties

Property
Notes
Validation
Amount
Amount in the given currency, e.g. 12.5 of 19.99, or 100 to put on the giftcard
Between 0.01 and 1000000m.
ClientReference
Transparent transaction reference the client can store with the transaction.
Maximum 3 characters
ConfigurationId
The guid which corresponds to the configuration for the giftprovider (i.e. Intersolve or TCS)
PinCode
The pincode of the giftcard
ProductId
TransactionId
the Unique id linking to a customer transaction to this transaction with the giftcard provider.
WorkstationId
The ID of the client which sends the request

GiftCard Reload





Properties

Property
Notes
Validation
Amount
Amount in the given currency, e.g. 12.5 of 19.99, or 100 to put on the giftcard
Between 0.01 and 1000000m.
ClientReference
Transparent transaction reference the client can store with the transaction.
Maximum 3 characters
ConfigurationId
The guid which corresponds to the configuration for the giftprovider (i.e. Intersolve or TCS)
PinCode
The pincode of the giftcard
ProductId
TransactionId
the Unique id linking to a customer transaction to this transaction with the giftcard provider.
WorkstationId
The ID of the client which sends the request

GroupUsers





Properties

Property
Notes
Validation
AddressLine1
Required on POST; Must be between 1 and 55 characters
BirthCountryCode
Must be one of the following: NL, BE, DE, UK
BirthDate
Must be in the future
City
Required on POST; Must be between 1 and 35 characters
City
Required on POST; Must be between 0 and 35 characters
CountryCode
If left blank on POST, defaults to NL
A valid ISO 3166 2-digit country code
CreationDate
ReadOnly
CustomerId
DisplayName
Must be between 0 and 15 characters
EmploymentEndDate
Must be after employmentStartDate, if provided
EmploymentStartDate
Must be before employmentEndDate, if provided
FirstName
Required on POST; Must be between 1 and 15 characters
Gender
Required on POST; Valid options are: Company, Female, Gender neutral, Male, Unknown
Id
ReadOnly
ImageId
ReadOnly
IsActive
If left blank on POST, defaults to true
IsAutoLogin
Defaults to false
JobDescriptionId
LanguageCode
If left blank on POST, defaults to NL
Valid options are: DE, EN, ES, FR, NL
LastLoginDate
ReadOnly
LastModifiedDate
ReadOnly
LastName
Required on POST; Must be between 1 and 70 characters
MiddleName
Must be between 0 and 10 characters
MobileNumber
Must be between 0 and 15 characters
MultipleStoreMode
determines wether a user can login on multiple stores. 0/NULL: as-is, 1: validate in database, 2: is user gets to choose after login
Password
Minimum length validation depends on the PasswordMinimumLength setting, otherwise defaults to 1. If Password and Username are empty on POST, both are generated automatically.
Required on POST; Must be between 1 and 50 characters if entered
PhoneNumber
Must be between 0 and 15 characters
Pincode
Must be between 4 and 15 characters. Can only contain upper and lowercase letters, numbers and the following special characters: !@#$^{}%()_
PostalCode
Required on POST; Must be between 1 and 6 characters
Expandable
SecurityGroup
ReadOnly
SecurityGroupId
Required on POST
Expandable
Settings
Can be set on POST
SocialSecurityNumber
Must be between 0 and 20 characters
Expandable
Store
ReadOnly
StoreId
If left blank on POST, defaults to store ID belonging to given client ID; ReadOnly on PATCH
UserEmail
Must be a valid email
UserId
Required on POST; Must be between 1 and 20 characters
UserName
If Username and Password are empty on POST, both are generated automatically.
Must be unique; Must be between 1 and 50 characters if entered
UserStatus
If left blank on POST, defaults to available
Valid options are: available, coffeebreak, logout, lunch, unavailable
UserStores
The stores the user is allowed to log in on. When new user stores are patched onto the user, existing ones will be removed.
ValkUserId
ReadOnly

API-methods

GET api/group-users/{id:int}

Get a specific group user. Non employees can also be retrieved

GET api/group-users/{valkUserId:guid}

Get a specific group user. Non employees can also be retrieved

GET api/group-users

Get a list of employee group users.
Supports a search term to look for users whose username contains this search term.

GET api/group-users/{id}/image/download

Download the group users' profile picture

POST api/group-users/ValidatePinCode

Validate a group user by pin code

POST api/group-users/Validate

Validate a group user by username and password. Also adds headers in the response with an access_token and refresh_token. These tokens can be used for authentication as a GroupUser and for the group-users/current endpoint

POST api/group-users/Login
Restricted access

Login to the Api with a groupuser. This will generate a new token with a GroupUserId in it

POST api/group-users
Restricted access

Creates a new group user

PATCH api/group-users/{id:int}
Restricted access

Updates an existing group user

DELETE api/group-users/{id:int}
Restricted access

Deletes an existing group user

GET api/group-users/{id}/settings

Get the settings for a specific group user

PATCH api/group-users/{id}/settings
Restricted access

Updates the settings for a specific group user

GET api/group-users/current

Get the current user based on AWS access token

GET api/group-users/jobdescriptions

Get all available job descriptions

POST api/group-users/ChangePassword

Change the password of a user through their old username and password

GroupUserSettings





Properties

Property
Notes
Validation
BackofficeSettingsJson
Settings used in our backoffice system
Must be valid Json
GroupUserId
ReadOnly
LastModifiedDate
ReadOnly
SettingsXml
Must be valid XML

Hibernated Transactions

Manage hibernated transactions





Properties

Property
Notes
Validation
CreatedByGroupUserId
The Group user hibernated the transaction
Id
ItemCount
The the amount of records in the serialised transaction
StoreId
The store in which the transaction originates
TotalInclTax
Total amount of transaction. Note that this could differ from the amount that will be calculated on the moment the transaction is actually handled.
TransactionDate
TransactionId
TransactionJsonObject
The serialised transaction

API-methods

GET api/hibernated-transactions

Get All HibernatedTransactions

GET api/hibernated-transactions/{id}

Get specific hibernated transaction

POST api/hibernated-transactions/{id}/Close

Close a hibernated transaction

Images





Properties

Property
Notes
Validation
Category
Specify which category the image relates to: CustomerOrder, CustomerOrderLine, Product, ProductBrand
Cannot be updated
FileName
Will be set when a file is uploaded with a name in the content disposition header.
Can be patched after an upload, but this will not change the image filename in the url.
Id
Readonly
IsInternal
Specify is this image is for internal use only
RelatedId
Must be an existing id.
Type
The image type.
Must be unique per relatedId item (/api​/images​/types)
Cannot be updated
Url
The url that can be used to retrieve the image
Readonly

API-methods

GET api/images

Get images based on category

GET api/images/{id}

Get an image based on Id

GET api/images/types

Get image types

POST api/images

Create a new ImageStoreImage without an image

POST api/images/{id}/upload

Upload an image and attach it to a previously created ImageStoreImage

PATCH api/images/{id}

Change the image category, type or internal setting

DELETE api/images

Set an image state to DELETED

KitGroupLines

Kit group lines are lines added to a kit group. These are the products that can be selected for this group





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
CostPrice
CreationDate
ReadOnly
Description
Optional. Length must be between 1 and 100 characters if set
Id
ReadOnly
IsVisible
Required
Expandable
KitGroup
ReadOnly
KitGroupId
Required
CreateOnly
LastModifiedDate
ReadOnly
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
PriceExclTax
PriceInclTax
Expandable
Product
ReadOnly
ProductId
Required
CreateOnly
Quantity
Between 0 and 999
SortOrder
Greater than or equal to 0
StoreId
Required
CreateOnly
Expandable
StoreSettings

API-methods

GET api/kit-group-lines

Get all kit group lines.

GET api/kit-group-lines/{id}

Get a kit group line by id

POST api/kit-group-lines

Create a new kit group line

PATCH api/kit-group-lines/{id}

Update a specific kit group line

DELETE api/kit-group-lines/{id}

Delete a specific kit group line

KitGroupLineStoreSettings

These are values that a store can override from a given kit group line





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
CostPrice
Description
Length between 0 and 100 characters
IsVisible
Length between 0 and 100 characters
KitGroupLineId
CreateOnly
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
PriceExclTax
PriceInclTax
Quantity
Between 0 and 999
SortOrder
Greater than or equal to 0
StoreId
CreateOnly

API-methods

GET api/kit-group-lines/{id}/store-settings

Get kit group line store settings by id

PATCH api/kit-group-lines/{id}/store-settings/{storeId}

Update the store specific settings for a given kit group line based on the given store

DELETE api/kit-group-lines/{id}/store-settings/{storeId}

Delete store specific changes by store id

KitGroupLineStoreSettingsAdditionalParameters





Properties

Property
Notes
Validation
OverwriteChildStores
Specifies whether values set by child stores should be overwritten or kept

KitGroups

Kit groups are a collection of products that someone might want to choose between when configuring an product





Properties

Property
Notes
Validation
CreationDate
ReadOnly
Description
Required
Length between 0 and 100 characters
EndDate
Id
ReadOnly
IsVisible
LastModifiedDate
ReadOnly
Expandable
Lines
MaximumQuantity
Required
Between 0 and 999
MinimumQuantity
Required
Between 0 and 999
StartDate
Required
StoreId
Required
CreateOnly
XmlFields
ReadOnly

API-methods

GET api/kit-groups

Get all kit groups, allows filters and sorting by Id, Description, MinimumQuantity, MaximumQuantity, StartDate, EndDate

GET api/kit-groups/{id}

Get a kit group by id

POST api/kit-groups

Create a new kit group. KitGroupLines can be created within the same request

PATCH api/kit-groups/{id}

Update a specific kit group

DELETE api/kit-groups/{id}

Delete a specific kit group. This also deletes related KitGroupLines

Label layouts





Properties

Property
Notes
Validation
Expandable
BackwardCompatibleLabelType
ReadOnly
BackwardCompatibleLabelTypeId
BottomMargin
Code
Copies
Description
Id
ReadOnly
LabelHeight
LabelsPerColumn
LabelsPerRow
Expandable
LabelType
ReadOnly
LabelTypeId
LabelWidth
LeftMargin
PaperHeight
PaperWidth
PrinterLayout
PrinterSettings
PrinterType
ASCII, Blaster, Citizen, MobileReceiptPrinter, Normal, Unknown or Zdesigner
ReportName
RightMargin
StoreId
TemplateId
TopMargin

API-methods

GET api/label-layouts/{id}

Get a specific label layout

GET api/label-layouts

Get a list of label layouts

Label Types





Properties

Property
Notes
Validation
Code
Description
Id
ReadOnly
IsVisible
Expandable
LabelLayout
Expands by LabelLayoutId property
ReadOnly
LabelLayoutId
Expandable
LabelLayouts
Expands by LabelTypeId property
ReportName
StoreId

API-methods

GET api/label-types/{id}

Get a specific label type

GET api/label-types

Get a list of label types

Labels





Properties

Property
Notes
Validation
BatchNumber
CustomerId
Must be an existing customer
CustomerOrderId
Must be an existing customer order
CustomerOrderLineId
Must be an existing customer order line
GroupUserId
Must be an existing group user
Id
ReadOnly
IsPrinted
IsTagged
LabelLayoutId
Must be an existing label layout
LabelTypeId
On POST: defaults to 'Schaplabel'
Must be an existing label type
Price
On POST: defaults to sellingPriceInclTax of given product
PrintDate
Expandable
Product
ReadOnly
ProductId
Required
Must be an existing product
Quantity
Required
ScanCode
On POST: defaults to default scancode of given product, or last added scancode
Maximum 30 characters
SortOrder
Maximum 20 characters
StoreId
Must be an existing store
TagDate
TaggedByGroupUserId
Must be an existing group user
XMLField

API-methods

GET api/labels/{id}

Get a specific label

GET api/labels

Get a list of labels

POST api/labels
Restricted access

Create a new label

PATCH api/labels/{id}
Restricted access

Update an existing label

DELETE api/labels/{id}
Restricted access

Remove an existing label

LedgerAccounts

Configuration for which accounts are used for linking with financial administration





Properties

Property
Notes
Validation
Compress
CostCentre
DateCreated
Description
ExportAccountCode
ExternalNumber
Id
IsVisible
Number
SortOrder
StoreId
TotalGroup
Type
One of Balance, Credit, Creditors, Debit, Debtors, ProfitLoss

API-methods

GET api/ledger-accounts

Retrieve ledger accounts

GET api/ledger-accounts/{id}

Retrieve ledger account by id

Locations





API-methods

GET /api/locations/FindAddress

Find a dutch address based on postalCode and HouseNumber

FindAddress





Properties

Property
Notes
Validation
HouseNumber
Maximum 6 characters
HouseNumberExtension
Maximum 6 characters
PostalCode
Format: 'AAAA11'

LoggingBaseLine

Add a record into the LoggingBaseLine





Properties

Property
Notes
Validation
BaseLineDuration
Greater than or equal to 0
CallDescription
Maximum 100 characters
CallSuccess
Required
CallTypeID
Required
Catalog
Maximum 100 characters
CreationDate
DataSource
Maximum 100 characters
Duration
Greater than or equal to 0
EndTime
Id
Reason
Maximum 1000 characters
SourceIP
Required
Maximum 50 characters
SourceServerName
Required
Maximum 100 characters
StartTime
Required
WebserverBaseUrl
Maximum 100 characters
WebserverIP
Maximum 50 characters

API-methods

POST api/logging-baseline
Restricted access

Add LoggingBaseLine

Mails

To send an email it first needs to be created with a template. Attachments may be linked to an email.
Default parameters that are filled: FIRSTNAME, MIDDLENAME, LASTNAME



ASPOS Backoffice

Mails appear in 'Mailbeheer' in ASPOS Backoffice, this can be found under Klanten -> Mailbeheer.



Properties

Property
Notes
Validation
Expandable
AdditionalParameters
Bcc
Every record must be a valid email address
Body
ReadOnly
Cc
Every record must be a valid email address
Expandable
Customer
ReadOnly
CustomerContactId
Id is not saved, only used to retrieve data from specific contact
Must exist
CustomerId
FromEmail
Defaults to store email
Must be a valid email address
FromName
Defaults to store name
Max length of 100 characters
Id
ReadOnly
SendStatus
ReadOnly
SentDate
ReadOnly
StoreId
Subject
Max length of 200 characters
TemplateId
Required
Must exist
TemplateParameters
Can be used to fill basic template parameters. example: key: Name, value: Jon Doh
TemplateTableParameters
Can be used to fill table template parameters. example: "Customer":[{"FirstName":"Jon", "LastName":"Doh"}]
To
Defaults to contact email if given, otherwise customer email
Required if customer or contact does not have an email or the customerId is null in the request

API-methods

POST /api/mails

Create a new mail

GET /api/mails

Retrieve all mails with a given filter

GET /api/mails/{id}

Retrieve a mail with the given id

POST /api/mails/{id}/Send

Send the Email, optionally provide the SendOnDate for delayed sending. Method not available for everybody.

POST /api/mails/{id}/attachments

Add a attachment to the email. Only PDF, Text or Excel files are supported

MasterTableItems





Properties

Property
Notes
Validation
Code
Required
Maximum 50 characters.
Must be unique per TableName
Description
Required
Maximum 200 characters
ExternalCode
Maximum 45 characters
Id
ReadOnly
IsDefault
IsWebshop
SortOrder
StoreId
TableName
Required
Must be an existing tableName
Cannot be updated
TableType
Defaults to DropDown if created with values
CustomerInterest, DropDown, FreeText, MultiTag, YesNo
Cannot be updated
Expandable
Values

API-methods

GET api/master-table-items

Retrieve all master table items matching a specific tablename

GET api/master-table-items/{id}

Retrieve a specific master table item

GET api/master-table-items/table-names

Retrieve a list of table names

POST api/master-table-items
Restricted access

Create a new master table item with values if given

PATCH api/master-table-items/{id}
Restricted access

Update an existing master table item

MasterTableItemValue





Properties

Property
Notes
Validation
Id
ReadOnly
LanguageCode
NL, DE, FR, EN
Value
Maximum 500 characters

OrderLines

Products of type 'verzendkosten' will automatically get BackOrderQuantity and ToDeliveryQuantity set equal to Quantity, unless specified otherwise.





Properties

Property
Notes
Validation
BackOrderQuantity
Displayed as 'back' in backoffice. Uses Quantity as default value if not set
Must be between(inclusive) 0 and Quantity
BonusPoints
Extra bonuspoints from products
Readonly
BonusPointsAllowed
Based on product and customer settings
Readonly
BonusPointsGiven
Total amount of bonuspoints given to user
Readonly
Expandable
CustomerOrder
ReadOnly
CustomerOrderId
DiscountAmountExclTax
DiscountAmountInclTax
DiscountDescription
Readonly
DiscountId
Readonly
DiscountModified
DiscountPercentage
Readonly
DiscountReasonCodeId
Reason for discounting the line. This is a ReasonCode with Type Discount.
Must be an existing reason code of type Discount
Factor
Id
Readonly
Expandable
Images
KitGroupId
Id of the kitgroup this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
KitParentProductId
Id of the parent product when this line is a kitline or kitgroupline
Must be an Product in the same calculation
LastModifiedByGroupUserId
Must be an existing group user
LineNr
PreviouslyDeliveredQuantity
Amount of items delivered to customer
Readonly
PriceExclTax
Optionally provide a price to override the default price in ASPOS. Only 'PriceInclTax' or 'PriceExclTax' is required.
PriceInclTax
Optionally provide a price to override the default price in ASPOS. Only 'PriceInclTax' or 'PriceExclTax' is required.
PriceListId
On POST: Default to Pricelist of the customer
Must be existing PriceList
PriceModified
Automatically set to true on weborders. If set to true manually no discount is calculated for this line
Processed
ReadOnly
Expandable
Product
ReadOnly
Expandable
ProductConfiguration
Customer specific configuration of the product
ProductDescription
Will get default value when value is null
Maximum 60 characters
ProductId
Must be an existing product
ProductKitId
Id of the product kit this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
ProductListPrice
On POST: Defaults to ProductListPrice from Product
ProductSerialNumber
Maximum 25 characters
Expandable
ProductSupplier
ReadOnly
ProductUnitPrice
On POST: Defaults to ProductUnitPrice from Product
PurchaseAmount
On POST: Defaults to PurchaseAmount from Product
PurchasePrice
On POST: Defaults to PurchasePrice from Product
Quantity
Must be larger than 0. For Wicht products: It needs to be 1
ReceivedQuantity
Amount of items that are picked
Readonly
Remarks
ScanCode
The scancode used for the product in case of a wicht code
Needs to be 13 characters
SourceCustomerOrderLineId
An existing Orderline where this ordeline is linked to
Must be an existing order line
TaxCodeId
ReadOnly
ToDeliveryQuantity
Displayed as 'pak' in backoffice. Default is 0
Must be between(inclusive) 0 and Quantity
TotalExclTax
On PATCH: Only used when totalInclTax is not given.
On POST: Calculated based on price and discounts
TotalInclTax
On POST: Calculated based on price and discounts
Expandable
TrackTrace
TransactionRecordId
ReadOnly
WarrantyPeriod
Warranty period from date of purchase
Maximum 10 characters. This must be a number, followed by unit type. (DWMY) If unit type is omitted, unit type M is used.

API-methods

GET api/customer-order-lines

Retrieve a list of order lines. This can be done for a specific customer order or for a customer. You can request orderlines for a specific product
Supports paging
Note: Tax compensation is not applied through this endpoint, meaning the total of the order could differ from the sum of the line totals because of rounding

GET api/customer-order-lines/{id}

Retrieve a specific customer order line

POST api/customer-order-lines

Add a new line to an existing order. NB: Discounts, bonusPoints and kit items will not be (re)calculated/applied! In most cases you should add all order lines at once when using POST /customer-orders/.
It is not possible to add orderlines to an existing return order

PATCH api/customer-order-lines/{id}

Update a limited set of properties on an existing orderLine.
On orders of type InternetOrder, line may not be processed or have a discount amount. No discounts will be recalculated in the order. No related kititems are updated. DiscountAmount cannot be changed
Orders of type DirectSales cannot be updated
On other types of orders; If quantity is changed, discounts are recalculated on the order except lines which have discountModified or priceModified set to true. Kit item quantities are also updated

DELETE api/customer-order-lines/{id}

Delete a order line. Only lines that are not processed or (partially) delivered can be deleted. Any line set as LoadProduct or RepairProduct in a orderrepair will remove these products from the repair.

POST api/customer-order-lines/{id}/ProcessShipping

Used to indicate that the orderline is (partially) shipped. Track and trace codes can be provided if wanted

OrderLineProductConfiguration

Product configuration must be set if available for product. Configuration options
The complete flow from start to end should be added here.





Properties

Property
Notes
Validation
Answer
If the answertype of the question is not Choice, this should be filled. AnswerType boolean is 'yes' or 'no'
AnswerId
If the answertype of the question is Choice, this should be filled
QuestionId
Id of the question that is answered

PaymentMethods

To commit a customer order, in most cases payments must be added first. Payments are always linked to a payment method



ASPOS Backoffice

Payment methods are called 'betaalsoorten' in ASPOS Backoffice, they can be found under Instellingen -> Betaalsoorten.



Properties

Property
Notes
Validation
ChangeAllowed
Code
Expandable
Coupons
CurrencyId
CustomerContactPinCodeRequired
Store specific
If true, a contacts pin must be validated before adding this payment to an order
Description
ExportCode
GenericSettings
Contains generic settings for the payment method
Id
IsDefault
Store specific
Default payment for the given store
IsVisible
MaxChangeAmount
PaymentCosts
Store specific
Extra costs to pay with this payment type. If the customer needs to pay for this, a product should be added to the order.
Rounding
Payments should be rounded to this setting. For example if set to 0.05, an amount of 1.63 should be changed to 1.65. If set to 0.01, 1.63 should not be changed.
SortOrder
Store specific

API-methods

GET api/payment-methods

Retrieve all payment types for the given store
Supports paging. Max limit of 500 for non admins.

GET api/payment-methods/{id}

Retrieve a specific payment type for the given store

GET api/payment-methods/code/{code}

Retrieve a specific payment type by its code for a given store

PaymentCoupons

Coupon definitions that can be used for payments





Properties

Property
Notes
Validation
CreationDate
Description
EndDate
EndTime
Id
LastModifiedDate
ParentPaymentCouponId
PaymentTypeId
ScanCode
Format of the scancode of the coupon. An x means any number
StartDate
StartTime
StoreId
Value

Payments

To commit an order you have to add payments first, unless a customer will pay in the store or on delivery. Payments can only be added to orders of the type PreOrder or DirectSales. Some payment types require a pin code, this should be validated beforehand.





Properties

Property
Notes
Validation
Amount
Must be larger than 0
CreatedDate
ReadOnly
CustomerOrderId
Id
Readonly
Expandable
PaymentMethod
ReadOnly
PaymentMethodId
Must be an existing payment type
Reference
Maximum 255 characters
SerialNumber
Can be used to store voucher code
Maximum 50 characters, required for Voucher payments
ToDeliveryAmount
Used on pre-payments to book the amount that is already cashed in
ReadOnly

API-methods

POST api/customer-order-payments

Add a payment to a pre-order.
Will return an error when customer order is not a pre order

GET api/customer-order-payments

Gets the payments for a specific order

GET api/customer-order-payments/{id}

Gets a specific payment

Payments

To make payments and get paymentstatuses, using supported PaymentProviders. Currently only Adyen is supported, but the implementation allows for more providers to be added in the future





Properties

Property
Notes
Validation
AsposReference
ReadOnly
CardBrand
Brand of the card used in the payment. Will only be returned on PaymentStatus Success
ReadOnly
Currency
Must be an ISO currency code. Currently only 'EUR' is supported.
CustomerReceipt
Receipt ment for the customer, Readonly
ExternalPaymentUrl
ReadOnly
IgnoreReceipt
Indicates that a EFT receipt is not required, could improve performance for payments
PaymentAmount
Range from 0.01 to 100000
PaymentMethodId
Must match the ID of an existing PaymentMethod
PaymentProvider
ReadOnly
PaymentReference
ReadOnly
PaymentStatus
ReadOnly
PaymentStatusDetails
ReadOnly
ProviderReference
ReadOnly
WorkstationId
Must match the ID of an existing Workstation

API-methods

POST api/payments
Restricted access

Make a payment. Current CloudProviders return a status 'Requested' and require callee to get subsequent status through the GET Payments method.

GET api/payments/asposReference/{asposReference}
Restricted access

Retrieve a specific payment using a unique paymentReference. This unique reference is returned when making a Payment

PickBatches

Used to manage a collection of CustomerOrderPickingLines for bulk handling of PickLines





Properties

Property
Notes
Validation
AdditionalParameters
Additional parameters to create a batch from CustomerOrderPickingLine ids
FinishDate
Shows when the pick batch was fully handled
Id
ReadOnly
Expandable
PickContainerConnections
ReadOnly
Expandable
PickingLines
ReadOnly
StartDate
Shows when the pick was originally put in progress
Status
Open, Closed, InProgress, Packing, PutToLight
StoreId

API-methods

GET api/pick-batches

Retrieve all the pick batches, can provide a filter for statuses

GET api/pick-batches/{id}

Retrieve the pick batch with the given id

POST api/pick-batches

Create a new pick batch

DELETE api/pick-batches/{id}

Remove a pick batch with the given id

PATCH api/pick-batches/{id}

Update the pick batch with the given id

PickContainerConnections

Table connecting pickbatches and containers





Properties

Property
Notes
Validation
Expandable
CustomerOrder
ReadOnly
CustomerOrderId
Id
ReadOnly
Expandable
PickBatch
ReadOnly
PickBatchId
Required
Expandable
PickContainer
ReadOnly
PickContainerId
Required
Type
Required
Batch, Order

API-methods

GET api/pick-container-connections

Retrieve all the container connections, can filter based on the connected ids

GET api/pick-container-connections/{id}

Retrieve the container connection with the given id

POST api/pick-container-connections

Create a new container connection

DELETE api/pick-container-connections/{id}

Remove a container connection with the given id

PATCH api/pick-container-connections/{id}

Update the container connection with the given id

PickContainers

Used to store batches in specific containers





Properties

Property
Notes
Validation
ContainerType
Mastertable 'ContainerType'
Required
ContainerTypeDescription
ReadOnly
Description
Maximum 100 characters
Required
HeightInCms
Between 0 and 32767
Id
Readonly
LengthInCms
Between 0 and 32767
Expandable
PickContainerConnection
ReadOnly
PictureLink
Maximum 2048 characters
ScanId
Required
Maximum 256 characters
Status
On POST: Defaults to Free
In use, Free
StoreId
WidthInCms
Between 0 and 32767
Zone
Maximum 100 characters

API-methods

GET api/pick-containers

Retrieve a list of containers

GET api/pick-containers/{id}

Get a specific container by id

GET api/pick-containers/scanid/{scanId}

Get a specific container by scanId

POST api/pick-containers

Creates a new container for specific batch(es)

PATCH api/pick-containers

Update a specific container from specific batch(es)

DELETE api/pick-containers

Removes a specific container

PriceLists

Customers are always in connected to a price list, which can have settings related to discounts and bonuspoints. When creating or updating a customer the price list can be set. This are the valid values for this property. They can vary per store.





Properties

Property
Notes
Validation
Description
Id

API-methods

GET api/price-lists

Retrieve all price lists. Max limit of 500 for non admins.

GET api/price-lists/{id}

Retrieve a specific price list by id.

GET api/price-lists/default

Retrieve the default price list.

ProductConnections

A product can be connected in different ways to other products. For example; if a product is available in multiple colors, and they are defined as separate products in Aspos, they can be linked together with the type 'Color'



In Aspos backoffice products of type Matrix show their underlying products on the same tab as the other connections, these products should be retrieved using the matrix-products endpoint



Properties

Property
Notes
Validation
Id
IsActive
Expandable
ParentProduct
ParentProductId
Expandable
Product
ProductId
SortOrder
StartDate
Type
Bundle, Color, Combination, Combined, Free, Interesting, Part, Replacement, Same, Size or Temporary

API-methods

GET /api/product-connections

Retrieve all product connections for a specific product or all product-connections when no product has been specified.

ProductEsl

Electronic shelf labels linked to products. Changes are sent to the ESL server in a separate process, the processState shows the corresponding state.





Properties

Property
Notes
Validation
Code
Required
Must be unique. Maximum 200 characters
Id
ReadOnly
LayoutCode
Stamtabel 'Product ESL opmaak'
On POST: defaults to layout corresponding to given code if available, will throw exception if not found.
Required if code is less than 11 characters
LayoutDescription
ReadOnly
ProcessState
On POST/PATCH: defaults to ToProcess
Failed, NotFound, Processed, Processing, SentToESLServer, Timeout, ToProcess, ToProcessDelete
Expandable
Product
ProductId
Required
Must be an existing product
State
On POST: defaults to Active
Active or NotActive
StoreId
Must be an existing store
TypeCode
Stamtabel 'Product ESL type'
On POST: defaults to type corresponding to given code if available, will throw exception if not found.
Required if code is less than 11 characters
TypeDescription
ReadOnly
XmlSettings
Must be xml

API-methods

GET api/product-esls

Retrieve all product esls. Validation on processStates.

GET api/product-esls/{id}

Retrieve a product esl by id

GET api/product-esls/code/{code}

Retrieve a product esl by code

POST api/product-esls
Restricted access

Add a new esl to a product. Using AllowDuplicates allows setting multiple productId's to one label

PATCH api/product-esls/{id}
Restricted access

Update an existing product esl. Using AllowDuplicates allows setting multiple productId's to one label

DELETE api/product-esls/{id}
Restricted access

Delete an existing product esl

ProductFields

Custom fields can be used for anything, and new fields can be added at any time. These are mostly used for product properties which are not supported by default in Aspos. Different languages can have different fields.
The product-fields endpoints return the fields per store, this differs from expand 'Fields' on the products endpoint because there only the active value for the given store is returned.



Product fields in Aspos Backoffice can have a checkmark on 'webshop', these can be filtered by using the tag 'webshop'.



Properties

Property
Notes
Validation
AdditionalParameters
Cannot be retrieved
Code
Required when creating a product field and must be unique for the ProductId/StoreId/LanguageCode. Cannot be updated
Description
Readonly
Id
ReadOnly
LanguageCode
Required when creating a product field. Cannot be updated
ProductId
Required when creating a product field. Cannot be updated
StoreId
Required when creating a product field. Cannot be updated
Value
The validation depends on the ProductFieldType. This can be found under: GET api/product-fields/definitions.
For type 'YesNo', the value must be 'yes' or 'no'.
For type 'DropDown', the value must match one of the choices listed in the ProductFieldType.
For type 'MultiTag', the value must match one or more of the choices listed in the ProductFieldType, delimited by a pipe character.
For type 'Freetext', the value can be any string.

API-methods

GET api/product-fields

Retrieve all product fields for a specific product or all fields if no product has been specified. Use IncludeAllLanguages to retrieve fields in all languages.

GET api/product-fields/{id}

Retrieve a product field by id.

GET api/product-fields/definitions

Get all possible fieldCodes (with choices if available)
Supports paging. Max limit of 500 for non admins.

POST api/product-fields

Add a new product field.

PATCH api/product-fields

Update a set of product fields. Id's must be included in the request-body per product-field

DELETE api/product-fields/{id}

Remove a product field by id. Use removeFromChildStores:true to delete any local version of the field, matching the same ProductId, Code and LanguageCode.

ProductFieldAdditionalParameters

Additional parameters which are used in POST/PATCH requests





Properties

Property
Notes
Validation
OverwriteChildStores
On PATCH: The same value will be applied to all child store versions the productfield.

ProductFieldType

Details about the type of product field that are available. This information can be cached.





Properties

Property
Notes
Validation
Choices
Valid values if fieldType is 'DropDown'
ReadOnly
Code
ReadOnly
Description
ReadOnly
ExternalId
ReadOnly
Id
ReadOnly
Tags
Tags for Fields. Currently only Webshop
Type
YesNo, FreeText, Multitag or DropDown
ReadOnly

ProductGroups

A product is always part of a group.





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
AttentionMemo
Maximum 100 characters
AttentionMemoEndDate
AttentionMemoStartDate
BonusPointsAllowed
BonusPointsFactor
BonusPointsFactorEndDate
BonusPointsFactorStartDate
CashOutLedgerAccountId
Code
Required
Maximum 15 characters.
CostsLedgerAccountId
DefaultLabelTypeId
DefaultMargin
DefaultMarginPercentage
DefaultTaxCodeId
Description
Maximum 25 characters
DiscountAllowed
DiscountLedgerAccountId
HideLocally
Id
ReadOnly
Expandable
PreferredSupplier
ReadOnly
PreferredSupplierId
ProductLabelType
Geen Label, Prijslabels, Schaplabel, Beiden
PurchaseDiscountLedgerAccountId
PurchaseLedgerAccountId
RealizedTaxLedgerAccountId
RevaluationLedgerAccountId
SecondPurchaseLedgerAccountId
SortOrder
StockLedgerAccountId
StoreId
Expandable
StoreSettings
Expandable
SubGroups
Expandable
TurnOverLedgerAccount
ReadOnly
TurnOverLedgerAccountId
Type
Omzetgroep, Uitbetalingen or Uitgaven
VisibleInLists

API-methods

GET api/product-groups

Retrieve all productGroups as a flat list
Supports paging

GET api/product-groups/{id}

Retrieve a specific productGroup

POST api/product-groups
Restricted access

Create a new productGroup, optionally with store settings

PATCH api/product-groups/{id}
Restricted access

Update top level properties of an existing productGroup

DELETE api/product-groups/{id}
Restricted access

Removes an existing productGroup. Cannot be deleted when products are still linked, or daily group totals have been created

GET api/product-groups/{id}/store-settings

Retrieve the store level settings for a specific productGroup.
Unlike other resources, a store-settings entry will not be returned at all if none of the requested fields is set.

PATCH api/product-groups/{id}/store-settings/{storeId}
Restricted access

Update the store settings for a specific productGroup on a specific store

DELETE api/product-groups/{id}/store-settings/{storeId}
Restricted access

Delete the store settings for a specific productGroup on a specific store. Retrieving productGroup data will then fallback to upper level stores

GET api/product-groups/code/{code}

Retrieve a specific productGroup by code

ProductKitGroups

Connects a product to a kit group. A product can have multiple kit groups, but each kit group can only be added once.





Properties

Property
Notes
Validation
AdditionalParameters
Cannot be retrieved
Id
ReadOnly
Expandable
KitGroup
ReadOnly
KitGroupId
Required
CreateOnly
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
Expandable
Product
ReadOnly
ProductId
Required
CreateOnly
SortOrder
Greater than or equal to 0
Expandable
StoreSettings
TotalPriceExclTax
Between 0 and 1000000
TotalPriceInclTax
Between 0 and 1000000
XmlFields
ReadOnly

API-methods

GET api/product-kit-groups

Get a ProductKitGroups. Can be sorted by:

  • Id
  • MaximumQuantity
  • MinimumQuantity
  • SortOrder
  • TotalPriceExclTax
  • TotalPriceInclTax

GET api/product-kit-groups/{id}

Get a ProductKitGroup by id

POST api/product-kit-groups

Create a new ProductKitGroup

PATCH api/product-kit-groups/{id}

Update a specific ProductKitGroup

DELETE api/product-kit-groups/{id}

Delete a specific ProductKitGroup

ProductKitGroupAdditionalParametersContract

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteStoreSettingsStoreId
On PATCH: Will overwrite store settings with the same values on given store and all underlying stores. Only on the stores that already have store settings

ProductKitGroupStoreSettingsAdditionalParametersContract

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteChildStores
Specifies whether values set by child stores should be overwritten or kept

ProductKitGroupStoreSettingsContract

These are values that a store can override.





Properties

Property
Notes
Validation
AdditionalParameters
Cannot be retrieved
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
ProductKitGroupId
CreateOnly
SortOrder
Greater than or equal to 0
StoreId
CreateOnly
TotalPriceExclTax
Between 0 and 1000000
TotalPriceInclTax
Between 0 and 1000000
XmlFields
ReadOnly

API-methods

GET api/product-kit-groups/{id}/store-settings

Get store settings by id

PATCH api/product-kit-groups/{id}/store-settings/{storeId}

Update the store specific settings based on the given store

DELETE api/product-kit-groups/{id}/store-settings/{storeId}

Delete store specific changes by store id

ProductKits

A product can be part of a kit. This means that when the product is ordered, all product's of in the kit are automatically added to the order. This is sometimes used for deposits (statiegeld) on singleuse products or with free gifts



In Aspos backoffice kit items can be found under 'Productbeheer' > tab 'kitproducten'. Kit items may be defined at the current store level or one the parent groups.



Properties

Property
Notes
Validation
Expandable
Children
Expandable
ParentProduct
ParentProductId
ReadOnly

ProductKitChild





Properties

Property
Notes
Validation
Id
ReadOnly
IsVisible
MaximumQuantity
Only used when fixed quantity is not set
Must be greater than or equal to minimum
MinimumQuantity
Only used when fixed quantity is not set
ParentProductId
Cannot be updated
PriceExclTax
PriceInclTax
On POST: if useDefaults is true, defaults to product selling price
Must be greater than or equal to 0
Expandable
Product
ProductId
Cannot be updated
PurchasePrice
On POST: if useDefaults is true, defaults to product purchase price
Must be greater than or equal to 0
Quantity
The amount of times this kit item product is added to order.
On POST: Defaults to 1
Must be greater than 0.
Cannot be used in combination with minimum/maximum quantity
SortOrder
Status
On POST: defaults to Active
Active or Inactive
StoreId
UseCostPriceFromParentProduct
UseDefaults
On POST: defaults to true

API-methods

POST api/product-kits
Restricted access

Add a new kit item to a product

PATCH api/product-kits/{id}
Restricted access

Update an existing kit item

DELETE api/product-kits/{id}
Restricted access

Delete a kit item from a product

ProductMemos

Memos can be used to store large descriptions for specific purposes





Properties

Property
Notes
Validation
FileName
Name of the attachment
Id
LanguageCode
MemoType
CashRegisterPopup, Composition, InternetMemo, ManufacturerInfo, ProductLabel or Usage
Expandable
Product
ProductId
StoreId
Text
The memo itself, can contain html encoded characters

API-methods

GET /api/product-memos

Retrieve all product memos for a specific product or all available memos when no product has been specified.

GET /api/product-memos/{id}/download

Retrieve the attachment of a specific memo as a PDF, only possible if the memo has a FileName

ProductPricings

ProductPricings allow prices for a certain duration. See the ProductPricing in the backoffice





Properties

Property
Notes
Validation
CreatePriceChange
DiscountPriceExclTax
DiscountPriceInclTax
EndDate
ExclTax
Id
ReadOnly
IsProcessed
Indicates if the record is processed. Processed records can not be changed anymore
LastChangedByGroupUserId
PriceExclTax
PriceInclTax
PriceListId
Must be an existing Pricelist when set
PriceType
Required
One of Discount, DiscountExcl, ListPrice, PurchaseDiscountAmount, PurchaseDiscountPrice, PurchasePrice, SellingPrice, SellingPriceExcl
PricingCode
Must be less than 50 characters
ProcessedDate
Expandable
Product
ProductId
Can only be set on creation
Must be an existing Product
PurchaseDiscountAmount
PurchaseDiscountPercentage
PurchaseDiscountPrice
PurchasePrice
StartDate
Status
Required
Either Open or Closed
StoreId
Can only be set on creation
Required
Must be an existing store
Expandable
Supplier
SupplierId
Can only be set on creation
Must be an existing Supplier

API-methods

GET api/product-pricings

Retrieve productpricings with optional filter parameters

GET api/product-pricings/{id}

Retrieva a single ProductPricing by it's Id

POST api/product-pricings
Restricted access

Create a ProductPricing record, Overlapping records will be modified to no longer overlap

PATCH api/product-pricings/{id}
Restricted access

Update a ProductPricing

DELETE api/product-pricings/{id}
Restricted access

Delete a ProductPricing

ProductReviews





Properties

Property
Notes
Validation
Content
The review itself, can contain html encoded characters
CreationDate
ReadOnly
Expandable
Customer
ReadOnly
CustomerId
CustomerRating
Must range between 1 and 5
Id
Readonly
IsVisible
Default value is true
Language
Reviews are saved in a specific language
LastModifiedDate
ReadOnly
Expandable
Product
ReadOnly
ProductId
Rating
Must range between 1 and 5
Status
Default value 'ToApprove'
Valid values: Approved, ToApprove, Active, NotActive, DisApproved or Deleted

API-methods

GET /api/product-reviews

Get the reviews made by a specific customer or for a specific product, default statusfilter is 'Approved,Active'Supports paging

POST /api/product-reviews

Create a new review for specific product

GET /api/product-reviews/{id}

Get a specific review

PATCH /api/product-reviews/{id}

Update a specific review

Products





Properties

Property
Notes
Validation
Expandable
ActiveWebNodes
Expandable
AdditionalParameters
AssortimentCode
MasterTable 'Assortment'
Store specific
AssortimentDescription
ReadOnly
AttentionMemo
Store specific
Maximum 100 characters
AttentionMemoEndDate
Store specific
Only date part is saved
AttentionMemoStartDate
Store specific
Only date part is saved
Expandable
AvailableToPromise
ReadOnly
BestBeforeDate
Only date part is saved
Store specific
BestBeforeProduct
Store specific
BonusPoints
When ordering this product this amount of bonuspoints will be added or removed from the customer's card
Store specific
If this value is updated for any store, it will be set to that same value for every store
Must be between -1000000 and 1000000
BonusPointsAllowed
On POST: defaults to true
Store specific
If false, this product will be excluded from calculating how many bonuspoints the customer will receive based on the total order price
If this value is updated for any store, it will be set to that same value for every store
BonusPointsEndDate
BonusPointsStartDate
Expandable
Brand
BrandId
Required based on store setting 'ProductBrandReq'
Expandable
CategoryGroup
ReadOnly
CategoryGroupId
Required based on store setting 'ProductCategoryReq'
CollectionCode
Mastertable 'ProductCollection'
CollectionDescription
ReadOnly
ColorCode
Mastertable 'Colors'
ColorDescription
ReadOnly
Expandable
Configuration
Content
Between 0 and 1000000
ContentType
Maximum 20 characters
DefaultLabelTypeId
Store specific
DefaultOrderQuantity
On POST: Defaults to 1
Must be between 0 and 1000000
Expandable
DefaultScanCode
Default scancode is the first scancode in ScanCodes when a product is created. If parameter 'skipPrequiredScanCode' is true and no scancode is given, the internal scancode will be set as default.
DefaultScanCodeId
Store specific
Depth
Between 0 and 1000000
Description
Required
Maximum 60 characters
Expandable
Discount
Get the current or future active discount price, when you would order only the given product right now. Use a calculationDate with time part filter on the expand to calculate a future discount: $calculationDate=2022-10-31T08:00:00.000Z. The time part is taken into account when calculating the discount.
DiscountAllowed
On POST: Defaults to true
DiscountPrice
Store specific
Must be between 0 and 1000000
Expandable
Discounts
Get the configured discounts for the product. Inactive and expired discounts are excluded. The following filters can be specified: $categories=[MixMatch,Product],$startDate=2022-10-31T00:00:00.000Z,$endDate=2022-11-01T00:00:00.000Z. StartDate and EndDate returns the discounts when either the start date or end date of the discounts is within the specified period, the time part is not taken into account when calculating the discounts.
Expandable
Esls
Expandable
Fields
Cannot be updated
Expandable
Group
ReadOnly
GroupId
Extra validation checks might occur based on group
Required
Expandable
GroupId
HasActiveWebNodes
ReadOnly
Height
Between 0 and 1000000
Id
ReadOnly
Expandable
Images
IsValidated
Expandable
Kits
LabelKind
Store specific
Beiden, Geen label, Prijslabels, Schaplabel
ListPrice
Store specific
Must be between 0 and 1000000
Location
Maximum 25 characters
ManufacturerCode
Mastertable 'MANUFACTURER'
Required based on store setting 'ProductManufacturerReq'
ManufacturerDescription
ReadOnly
Margin
Store specific
Between 0 and 1000000
Expandable
Matrices
Expandable
Memos
ModelCode
Mastertable 'Models'
ModelDescription
ReadOnly
Number
On POST: Defaults to automatically generated number
Maximum 25 characters
Cannot be updated
OnlineDescription
Maximum 120 characters
OrderFormulaCode
Mastertable 'OrderFormulas'
OrderFormulaDescription
ReadOnly
Expandable
PreferredProductSupplier
ReadOnly
PreferredProductSupplierId
PriceCode
Store specific
Mastertable 'PriceCodes'
PriceCodeDescription
ReadOnly
PriceExclTax
Store specific
On POST: Calculated if PriceInclTax is given
Required if PriceInclTax is empty
Must be between -1000000 and 1000000
Cannot be updated
PriceInclTax
Store specific
On POST: Calculated if left empty based on PriceExclTax
Required if PriceExclTax is empty
Must be between -1000000 and 1000000
Cannot be updated
PriceType
Store specific
Standaard, Nul, Variabel, Vast
On POST: Defaults to Standaard
Expandable
Pricings
Expandable
ProductConnections
ReadOnly
Expandable
ProductKitGroups
ReadOnly
Expandable
ProductSuppliers
ReadOnly
PurchasePrice
Store specific
Required
Must be between 0 and 1000000
Cannot be updated
PurchaseUnit
Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat or Zak
Required
PurchaseUnitFactor
On POST: defaults to 1
Between 0.001 and 1000000
ReceivingCheckType
Store specific
Default, Always, Sometimes, Never
Expandable
ReservedStock
ReadOnly
SalesUnit
Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat or Zak
Required
Expandable
ScanCodes
At least one scancode is required except when parameter 'skipPrequiredScanCode' is true
Cannot be updated
SeasonCode
Mastertable 'Seasons'
SeasonDescription
ReadOnly
SecondDescription
Maximum 60 characters
SerialUsage
None, Optional or Required
ShelveStatus
Store specific
Active, Default, Expired, RunningOut
SizeCode
Mastertable 'ProductSize'
SizeDescription
ReadOnly
State
Active, Expected, Inactive, Inactive-connected, OneShot, Uitlopend
Expandable
StockInfo
StoreId
Cannot be updated
Expandable
SubGroup
ReadOnly
SubGroupId
Required based on store setting 'ProductSubGroupReq'
Must be a subgroup of given GroupId
Extra validations might occur based on subgroup
TaxCodeId
Required
Cannot be updated
TaxCodeRateId
ReadOnly
TaxRate
Store specific
ReadOnly
Type
Cash-Prepay product, Cluster, Customized, Display, EBook, EVLVoucher, EVLVoucherCreate, E-voucher, Giftcard, GiftTicket, Kas in, Kas uit, Matrix, MatrixProduct, OvChip, OvChipV2, OvRitkaart, Product, Product PLU, ProductDimension, ProductVoucher, Service, Spaarvoucher, TextLine, Verzendkosten, Wicht
Required
ValidatedDate
VariantCode
Used for matrix products
Maximum 30 characters
VariantSubCode
Maximum 30 characters
Weight
Between 0 and 1000000
WichtPrice
WichtQuantity
Width
Between 0 and 1000000

API-methods

GET api/products/{id}

Get a specific product, Use includeLocalProducts to retrieve a product on a specific store. Use IncludeAllLanguages to retrieve fields in all languages.

GET api/products/{id}/configuration-options

Get the configuration options of a specific product.
These are mandatory when ordering the product

GET api/product-connections

Get the connected products of a specific product.
Supports paging

GET api/products/{id}/discount

Get the active discount for the product

GET api/products/{id}/discounts

Get the configured discounts for the product. Inactive and expired discounts are excluded.

GET api/products/{id}/images

Get the images of a specific product

GET api/products/{id}/fields

Get the fields of a specific product. Use IncludeAllLanguages to retrieve fields in all languages.

GET api/products/{id}/kits

Get the kits the specific product is part of

GET api/products/{id}/kit-options

Get the kit options for a product. These options represent all active kit products configured though a kit or kit group. These options can be used to let the user configure a variable kit product.

GET api/products/{id}/product-kit-groups

Get the product kit group connections for this product

GET api/products/{id}/matrices

Get the matrices the specific product is part of

GET api/products/{id}/memos

Get the memos of a specific product

GET api/products/{id}/stock-info

Get the stock of a specific product for multiple stores, by default only stock on default warehouses are returned

GET api/products/{id}/order-history

Retrieve the amount of times one or multiple customers have ordered a specific product

GET api/products/scancode/{scancode}

Get a product by scancode. Use IncludeAllLanguages to retrieve fields in all languages. IncludeAllWebNodes can only used combined with expand: activeWebNodes. IncludeAllWebNodes shows all webnodes within activeWebNodes regardless of status or type.

GET api/products/ids

Get a list of products by ids, maximum 20 products. Use IncludeAllLanguages to retrieve fields in all languages.

GET api/products/number/{number}

Get a products based on the productnumber. Use IncludeAllLanguages to retrieve fields in all languages.

GET api/products/order-formulas

Get the valid OrderFormula codes and descriptions

GET api/products/{id}/store-settings

Get the store level settings for a specific product

GET api/products/{id}/slim-stock

Get a list of stock changes from the given startDate (maximum 60 days in the past) till today, defaults to the last 14 days.

PATCH api/products/{id}/store-settings/{storeId}
Restricted access

Update StoreSettings for the product

POST api/products/{id}/UpdateStock
Restricted access

Update the stock of a specific product

POST api/products/{id}/UpdateMinMax
Restricted access

Update the minimum and maximum stock quantity of a specific product

POST api/products/{id}/MoveStock
Restricted access

Move stock of a specific product from one warehouse to another

POST api/products/{id}/UpdateSellingPrice
Restricted access

Creates a price change which will result in a updated selling price on a specific product

POST api/products/Search

Search for any product in an elasticsearch database. If Elasticsearch is not configured, a fulltext search is used. Fulltext search does not support all funtionalities like facets

POST api/products/Suggest

Get productsuggestions based on input. Not available on all environments

GET api/products/search-field-capabilities

Retrieve a list of saerch fields currently configured. Not available on all environments

POST api/products

Create a new product.

PATCH api/products

Update an existing product.

Configuration options

Products of type 'Customized' can be configured, this can be used for products like curtains, where the customer can choose what size and finishing he wants. The configuration consists of different steps(questions) that should be answered in order. It starts with one step, based on the answer the customer will give it is followed by another step or the flow ends. The QuestionId and Answer should be added to the orderline when ordering this product.



The configuration is language specific. This means that if you want to display the fields in an other language than the configuration is created in, you should retrieve the fields with the GET /api/products/{id}/fields in the preferred language and map them with the QuestionCode



Properties

Property
Notes
Validation
Answer
The answer of the previous question. If empty, any answer to the previous is valid.
If the customer gave this answer to the previous question, this question should be asked next. If the given answer is not matched, skip this question.
AnswerType
Choice, Boolean, Decimal or String.
Expandable
Options
When AnswerType is Choice, the valid options are given with id and value.
QuestionCode
QuestionDescription
ReadOnly
QuestionId
RangeEnd
If set, the answer to this question should fall within this range
RangeStart
If set, the answer to this question should fall within this range
Expandable
Steps
Collection of follow up steps

Discount

Get's the active discount for the product. This is the discount that will be applied when ordering this product by itself.





Properties

Property
Notes
Validation
AmountExclTax
The discount amount (excl tax)
AmountInclTax
The discount amount (incl tax)
Description
The description as configured in the backoffice
DiscountId
EndDate
EndTime
Percentage
The discount as a percentage from the original price
PriceExclTax
The new product price. (excl tax)
PriceInclTax
The new product price. (incl tax)
StartDate
StartTime

MatrixChildProducts

If a product is of type 'MatrixProduct', it is a child of a MatrixProduct.





Properties

Property
Notes
Validation
Code
Description
HasActiveWebNodes
Expandable
Product
ProductId

MatrixProducts

If a product is of type Matrix, it has underlying products which define the specifics of the product. This is mostly used for clothing, available in multiple sizes. The product of type Matrix should not be used to order the product, instead one of the underlying products (which represents a specific size) should be added to an order.



In Aspos backoffice underlying matrix products are shown on the same tab as product connections with the type 'Size'. These matrix-products can only be retrieved through the 'matrices' endpoints.



Properties

Property
Notes
Validation
Expandable
Children
Code
Expandable
ParentProduct
ParentProductId

Product kit option

A kit product that can (or must) be added when selling the parent product. An option can be configurerd thourgh a kit or kitgroup.





Properties

Property
Notes
Validation
Description
The description in the default request language.
DescriptionInCustomerLanguage
The description in a different language. This can be used in for a POS customer display.
ImageUrl
The image url of the child kit product.
ReadOnly
IsQuantityChangeAllowed
When false, the default Quantity is a fixed value.
KitGroupId
The source kitgroup id for the current option when configured by a kitgroup.
MaximumQuantity
The maximum quantity that can be selected.
MinimumQuantity
The minimum quantity that should be selected.
PriceExclTax
PriceInclTax
ProductId
The child kit product to be added.
ProductKitId
The source kit (child) id for the current option when configured by a kit.
ProductNumber
The child kit product to be added.
PurchasePrice
Quantity
The default quanity.
TaxCodeId
TaxCodeRateId
TaxRate

Product kit option group

A group of kit options.





Properties

Property
Notes
Validation
Description
MaximumQuantity
The maximum (total) quantity of options that must be added when selling the parent product.
MinimumQuantity
The minimum (total) quantity of options that must be added when selling the parent product.
Options
The kit product options for this group.

ProductField



Product fields in Aspos Backoffice can have a checkmark on 'webshop', these can be filtered by using the tag 'webshop'



ProductMemoView

These are the same as ProductMemos, but show only the value from the given storeId's point of view.





ProductStoreSettings

Settings for a product on a specific store





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
AssortimentCode
AssortimentDescription
ReadOnly
AttentionMemo
AttentionMemoEndDate
AttentionMemoStartDate
BestBeforeDate
BestBeforeProduct
BonusPoints
BonusPointsAllowed
BonusPointsEndDate
BonusPointsStartDate
DefaultLabelTypeId
DefaultScanCodeId
DiscountAllowed
DiscountPrice
InclTax
LabelKind
ListPrice
Location
Margin
OrderFormulaCode
OrderFormulaDescription
PreferredProductSupplierId
PriceCode
PriceCodeDescription
ReadOnly
PriceType
PurchasePrice
ReceivingCheckType
SellingPriceExclTax
ReadOnly
SellingPriceInclTax
ReadOnly
ShelveStatus
StoreId
Readonly

ScanCodes





SlimStock





Properties

Property
Notes
Validation
Corrections
Received
Sales
Stock
Actual stock on given StockDate
StockDate

Stock

Products can have a stock per store, use this information to determine if you want the customer to be able to order a product. Or show some information about delivery times.





Properties

Property
Notes
Validation
AllowSystemOverride
Indicates if the stock minimum and maximum quantities will be changed when the min/max ordering advice is executed
AvailableQuantity
Number of free stock available for sale
CustomerOrderDropShipmentQuantity
Number of stock sold / reserved that's being shipped by a different store
CustomerOrderQuantity
Number of stock ordered by customers / reserved by customers
DaysInStock
DaysOutOfStock
DeliveriesPendingQuantity
Number of stock sold today on account
FirstCountingDate
FirstInStockDate
FirstPurchaseAdviceDate
FirstPurchaseDate
FirstReceivingDate
FirstSalesDate
LastCountingDate
LastInStockDate
LastPurchaseAdviceDate
LastPurchaseDate
LastReceivingDate
LastSalesDate
LastSellingPrice
MaximumStockQuantity
MinimumStockQuantity
OutOfStockDate
PhysicalStockQuantity
Number of stock available at the store, doesn't take customerOrderQuantity in consideration
PurchaseOrderPendingQuantity
Number of stock ordered at a supplier but not yet confirmed
PurchaseOrderQuantity
Number of stock ordered at a supplier
SalesPendingQuantity
Number of stock sold today
Expandable
Store
StoreId
WarehouseId

UpdateMinMax request





Properties

Property
Notes
Validation
AllowSystemOverride
Defaults to false
MaximumStock
MinimumStock
Must be smaller than maximum stock
StoreId
Must be an existing store
WarehouseId
Must be an existing warehouse for the given store

UpdateSellingPrice request





Properties

Property
Notes
Validation
ForceImmediateProcessing
If true, pricechange is immediately processed. Otherwise it will be done based on store settings 'AutoPriceChange'
NewSellingPrice
StoreId
Must be an existing store
UpdateSource
Maximum 20 characterrs

UpdateStock request





Properties

Property
Notes
Validation
GroupUserId
IsCorrection
If null or false, will adjust the physical stock so that phsyical stock - sales pending - deliveries pending results in given stock quantity. If true will add the given stock quantity to the current phsyical stock.
NewStockQuantity
ReasonCodeId
Must be an existing reason code
StoreId
Must be an existing store
WarehouseId
Must be an existing warehouse for the given store

ProductSelections

ProductSelections can be used to create lists of products that you want to persist over multiple user sessions. ProductSelections are saved for a maximum of 3 months.





Properties

Property
Notes
Validation
Expandable
Customer
CustomerId
Required if Reference is empty.
Id
ReadOnly
Notes
Price
This will not affect the real price of the given product
Expandable
Product
ProductId
Required
Quantity
Reference
Custom identifier to group selections
Required if CustomerId is empty.
Maximum 200 characters
SortOrder
Greater or equal to 0
State
Required
Open, Closed or Processed
Type
Required
Compare, Favorite, HibernatedTicket, LastViewed, OpenShoppingBasket, OrderList1, OrderList2, OrderList3 or WishList

API-methods

GET api/product-selections

Retrieve all product selections matching given code, customer or types

GET api/product-selections/{id}

Retrieve a specific product selection

PATCH api/product-selections/{id}

Update a specific product selection

POST api/product-selections/{id}

Add a new product selection

DELETE api/product-selections/{id}

Remove a specific product selection

ProductSubGroup

A product is always part of a group.





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
BonusPointsAllowed
CashOutLedgerAccountId
Code
Required
Maximum 15 characters.
Must be unique
CostsLedgerAccountId
DefaultMargin
DefaultMarginPercentage
Description
Description
Required
Maximum 40 characters
DiscountAllowed
DiscountLedgerAccountId
HideLocally
Id
Expandable
PreferredSupplier
PreferredSupplierId
Store specific
Expandable
ProductGroup
ProductGroupId
Required
Cannot be updated
PurchaseDiscountLedgerAccountId
PurchaseLedgerAccountId
RealizedTaxLedgerAccountId
RevaluationLedgerAccountId
StockLedgerAccountId
StoreId
On POST: Defaults to same storeId as product group
ReadOnly
Expandable
StoreSettings
TurnOverLedgerAccountId
UnknownProductId
VisibleInLists

API-methods

GET api/product-subgroups

Retrieve the direct sub groups for a specific productGroup or all subgroups if no productGroup has been specified
Supports paging

GET api/product-subgroups/{id}

Retrieve a specific sub group

POST api/product-subgroups
Restricted access

Create a new sub group, optionally with store settings

PATCH api/product-subgroups/{id}
Restricted access

Update top level properties of an existing sub group

DELETE api/product-subgroups/{id}
Restricted access

Removes an existing sub group. Products linked to this sub group will keep the link (id), but the sub group will no longer be retrievable

GET api/product-subgroups/{id}/store-settings

Retrieve the store level settings for a specific sub group.
Unlike other resources, a store-settings entry will not be returned at all if none of the requested fields is set.

PATCH api/product-subgroups/{id}/store-settings/{storeId}
Restricted access

Update the store settings for a specific sub group on a specific store

DELETE api/product-subgroups/{id}/store-settings/{storeId}
Restricted access

Delete the store settings for a specific sub group on a specific store. Retrieving sub group data will then fallback to upper level stores

GET api/product-subgroups/code/{code}

Retrieve a specific subgroup by code

ProductSuppliers

Contains the supplier information for a product.



This information can be found in the Aspos Backoffice products module, under the tab suppliers (leveranciers)



Properties

Property
Notes
Validation
Expandable
AdditionalParameters
AllowOrders
DeliverableFromDate
Cannot be set later than DeliverableToDate
DeliverableToDate
Cannot be set earlier than DeliverableToDate
DeliveryPeriodInDays
DepositProductId
Must be an existing Product
DesiredMargin
Store specific
DiscountPercentage
Store specific
Between 0 and 100
GenericSettings
Id
ReadOnly
InclTax
IsDeliverable
LayerHeight
ListPrice
MinimumOrderQuantity
Store specific
Length beteween 0 and 100000
NumberOfPalletLayers
PalletDepositAmount
PalletHeight
PalletTypeCode
Linked to master table(PALLETTYPE) 'Pallet type'
PalletTypeDescription
ReadOnly
PreferredOrderLevel
Length between 1 and 100
ProductGroupCode
Length between 0 and 10
ProductId
Can only be set on creation
Required
Must be an existing Product
PurchasePrice
Store specific
PurchaseUnitQuantity
The quantity per purchase unit
Required
PurchaseUnitsPerLayer
PurchaseUnitsPerPallet
PurchaseUnitType
Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat, Zak
Remarks
Store specific
Length between 0 and 100
SalesUnitType
Doos, Ds/om, KG, Liter, M2, Meter, Paar, Stuk, Zak
State
Active, Default, End of life, Expected, Subscription, Suspended
StockNote
Length between 0 and 15
StockQuantity
StoreId
Can only be set on creation
Required
Must be an existing Store
Expandable
Supplier
SupplierId
Can only be set on creation
Required
Must be an existing Supplier
SupplierNote
Length between 0 and 255
SupplierProductCode
Required
Cannot be empty, must be unique in combination with same product and same supplier, length between 1 and 25

API-methods

GET api/product-suppliers

Get all product supplier information for a product or productSupplierCodes.
Supports paging

GET api/product-suppliers/{id}

Get the product supplier information for a specific product/supplier.

GET api/product-suppliers/{id}/store-settings

Get the store settings for a Product Supplier

PATCH api/product-suppliers/{id}/store-settings/{storeId}
Restricted access

Update the store settings for a product supplier

POST api/product-suppliers
Restricted access

Create a product supplier for a product.

PATCH api/product-suppliers/{id}
Restricted access

Update the properties for a specific product supplier

DELETE api/product-suppliers/{id}
Restricted access

Delete a specific product supplier.

DELETE api/product-suppliers/{id}/store-settings/{storeId}
Restricted access

Delete the store settings for a product supplier.

ProductSupplierStoreSetting

Store level settings for a product supplier





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
DeliveryPeriodInDays
Greater than or equal to 0
DesiredMargin
Greater than or equal to 0
DiscountPercentage
Between 0 and 100
GenericSettings
MinimumOrderQuantity
Length between 0 and 100000
PurchasePrice
Length between 0 and 100000
Remarks
StoreId
ReadOnly

ProjectRecord

ProjectRecord is used for records in a project. Think about articles or hours needed





Properties

Property
Notes
Validation
Description
Maximum200 characters
Id
ReadOnly
Notes
PriceExclTax
Required
PriceInclTax
Required
Expandable
Product
ProductId
Required
Expandable
Project
ProjectId
Required
Quantity
Required
TypeCode
Required
TypeDescription
Readonly

API-methods

GET api/project-records

Get all project records

POST api/project-records

Create new project record

GET api/project-records/{id}

Get single project record

PATCH api/project-records/{id}

Update project record

DELETE api/project-records/{id}

Remove project record

GET api/project-records/types

Get all valid project record types

Projects

Projects contain project records to register a project





Properties

Property
Notes
Validation
Address1
Maximum 300 characters
Address2
Maximum 300 characters
Contact
Maximum 300 characters
CreatedDate
Expandable
Customer
Expandable
CustomerContact
CustomerContactId
CustomerId
Required
EmailAddress
Maximum 300 characters
EndDate
Id
ReadOnly
Name
Required
Maximum 200 characters
Notes
NumberOfUniqueProducts
PhoneNumber
Maximum30 characters
Expandable
ProjectRecords
StartDate
StatusCode
Required
One of Offer, Order, PreOffer and Closed
StoreId
Title
Required
Maximum length of 100 characters
TypeCode
Required
TypeDescription
Readonly

API-methods

GET api/projects

Get all projects


Allows ordering on:

  • CreatedDate
  • Name


Ordering syntax is [FieldName] [Asc|Desc].
Default is Ascending ordering.

POST api/projects

Create new project

GET api/projects/{id}

Get single project by id

PATCH api/projects/{id}

Update project with given id

DELETE api/projects/{id}

Delete project with given id

GET api/projects/types

Get valid types for a project

Purchase advice sessions





Properties

Property
Notes
Validation
AdHocXml
CalculationEndDate
CalculationStartDate
Defaults to Now when not specified in POST
Required
Expandable
CreatedByGroupUser
ReadOnly
CreatedByGroupUserId
Defaults to UserId in Session when not specified in POST
Required
CreationDate
Id
NumberOfLines
Expandable
Profile
ReadOnly
PurchaseAdviceProfileId
Required
PurchaseOrderType
Default, InterStore, MultistorePurchaseOrder, Pushorder, PreEntry, DiscountOrder, Urgent, Manual, NEXTDAYDELIVERY. Defaults to Default when not specified in POST
Expandable
Records
ReadOnly
SortOrder
Status
Open or Deleted. Defaults to Open when not specified in POST
Required
StoreId
Defaults to StoreId in Session when not specified in POST
Required

API-methods

GET api/purchase-advice-sessions

Get all sessions, only sessions with status 'Open' returned by default

GET api/purchase-advice-sessions/{id}

Get a specific session

POST api/purchase-advice-sessions

Add a session without lines

Purchase advice session records





Properties

Property
Notes
Validation
CreationDate
Franco
Id
NumberOfLines
PurchaseAdviceSessionId
Status
Open or Deleted
SupplierId
TotalPurchaseAmount

Purchase Advices





Properties

Property
Notes
Validation
AllowedExecutionDays
Collection of days where the Purchase Advice may be performed
AutoOrder
CentralManagement
Code
CreationDate
Description
DoNotCreateInterstorePurchaseOrder
Id
IsAdhoc
LastExecuteDate
LastExecutionDate
Promotions
SortOrder
Status
One of Active, NotActive or Deleted
StoreId
Type
One of Distribution, Interstore, PurchaseAdvice, PurchaseOrder, Recalculate or Wifi

API-methods

GET api/purchase-advice-profiles

Get all profiles

GET api/purchase-advice-profiles/{id}

Get a specific profile

PurchaseOrders





Properties

Property
Notes
Validation
ActivationDate
AllowBackOrder
AllowedDeliveryEndDate
AllowedDeliveryStartDate
CancelledGroupUserId
DeliveryAddressAttention
DeliveryAddressCity
DeliveryAddressCountryCode
DeliveryAddressNumber
DeliveryAddressStreet1
DeliveryAddressStreet2
DeliveryAddressZip
DeliveryStoreId
DeliveryType
Mail or Package
Description
DiscountAmount
DiscountPercentage
ExpectedPaymentDate
ExpectedReceiveDate
ExportDate
GroupUserId
Id
Readonly
ImportReferenceID
IsElectronicOrder
IsExported
IsReturnOrder
KindCode
Linked to master table(stamtabel) 'Inkoopordersoort'
KindDescription
ReadOnly
LastModifiedDate
Filterable
MarketingContributionPercentage
Number
OrderedDate
PaymentConditionCode
Linked to master table(stamtabel) 'Betaalconditie'
PaymentConditionDescription
ReadOnly
PaymentDeadlineInDays
Processed
ProcessedDate
ProcessedGroupUserId
PurchaseOrderDate
Expandable
PurchaseOrderLines
Expandable
ReceivingLines
Remarks
ReturnedReasonCodeId
SelectionCode
Linked to master table(stamtabel) 'Inkooporder sel.code'
SelectionDescription
ReadOnly
SendOrderToSupplier
Source
IMPORT, InterStore, Manual, ManualDCDistribution, ManualDCOverstock or PurchaseAdvice
State
AutoOrdered, Cancelled, Full received, Ordered, Partially received, PartiallyCancelled, Pending, PreOrder, Pre-Order, PreOrderOrdered or PurchaseAdvice
StoreId
Expandable
Supplier
SupplierContactId
SupplierId
SupplierNote
TaxAmount
TotalExclTax
TotalInclTax
Type
Filterable. Default, DiscountOrder, InterStore, Manual, MultistorePurchaseOrder, NEXTDAYDELIVERY, PreEntry, Pushorder or Urgent
WarehouseId

API-methods

GET api/purchase-orders

Retrieve all purchase ordersSupports paging

GET api/purchase-orders/{id}

Retrieve a specific purchase order by id

GET api/purchase-orders/number/{number}

Retrieve a specific purchase order by number

PushNotifications

Push notifications are sent using Azure Notification Hub. This should be correctly configured in the AzureNotify-storesettings of Aspos. Only Android and Apple notifications are supported at the moment, and errors will be thrown if they are not configured correctly
At the moment only a single notification template is supported.





Properties

Property
Notes
Validation
SendToAndroid
Send notification to android devices
SendToApple
Send notifications to apple devices
Tags
Only send to devices which have the given tags
TemplateCode
Only 'CustomerEntry' supported at the moment
TemplateParameters
FULLNAME, CUSTOMERID and CUSTOMERCONTACTID

API-methods

POST api/push-notifications

Send a push notification to all registered devices that match your settings

POST api/push-notifications/registrations

Register a device to receive notifications. The response will contain the registrationId which can be used to unregister the device.
When you enter a registrationId, the existing registration will be updated or a 404 will be returned if it does not exist.

DELETE api/push-notifications/registrations/{registrationId}

Unregister a device

PushNotificationRegistrations





Properties

Property
Notes
Validation
DeviceId
Internal device id or token needed to identity the device
Maximum 100 characters br />Differs per DevicePlatform
DevicePlatform
On POST: Defaults to Android
Android, Apple or Microsoft
RegistrationId
Used to update an existing registration
Maximum 100 characters
Tags
Can be used to group devices. Notifications can be sent to specific tags

ReasonCodes

ReasonCodes are used in StockMutations to indicate why a mutation is happening





API-methods

GET api/reason-codes

Get all reason codes that can be used on the given store

ReceivingCountingLines





Properties

Property
Notes
Validation
AmountExclTax
AmountInclTax
CurrentSellingPrice
DiscountAmount
Factor
Id
Readonly
IsProcessed
ProcessedDate
Expandable
Product
Readonly
ProductId
Required
Must be existing Product
PurchaseUnit
Must be one of Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat, Zak
ReceivedQuantity
Required
ReceivingId
Required
Must be exisiting receiving, Cannot be updated
ScanLine
Maximum of 30 characters
SortOrder
TaxCodeId
Uses Product TaxCode if left empty
Must be existing taxcode
TaxPercentage
Readonly
TotalQuantity
Quantity * ReceivedQuantity
Readonly

API-methods

GET api/receiving-counting-lines

Get all counting lines for receivings

GET api/receiving-counting-lines/{id}

Get single counting line by id

POST api/receiving-counting-lines
Restricted access

When productId already has a counting line within the receiving, only received quantity will be added to current and totalQuantity is recalculated. If productId has no line yet, a new line will be created with the given data.

PATCH api/receiving-counting-lines/{id}
Restricted access

Update a given receiving counting line

ReceivingLines





Properties

Property
Notes
Validation
BoxNumber
Maximum 30 characters
CountingDifference
ReadOnly
CustomerOrderLineId
DiscountAmount
On POST: Ignored if DiscountPercentage is also given. Only used when Total price is not given
Cannot be updated
DiscountPercentage
On POST: Only used when Total price is not given
Cannot be updated
Factor
On POST: Defaults to suppliers purchase unit quantity or 1
Id
ReadOnly
ModifiedByCounting
OrderedQuantity
On POST: Defaults to product quantity * factor
Cannot be updated
Required if product quantity not given.
ParentMatrixProductId
ReadOnly
ParentReceivingId
Processed
ReadOnly
ProcessedDate
ReadOnly
Expandable
Product
ReadOnly
ProductDescription
On POST: Defaults to product description
Maximum 60 characters
ProductId
Cannot be updated
Required
Must be an existing product
ProductKitId
ProductMatrixId
ReadOnly
ProductQuantity
On POST: Defaults to ordered quantity / factor
Cannot be updated
Required if ordered quantity not given
PurchaseOrderId
On POST: Defaults to receiving purchase order id. If empty and customerOrderLineId is set defaults to linked purchase order on that line. Other linked to purchase order through SourceCustomerOrderID if that order contains references
Must be an existing purchase order
Expandable
PurchaseOrderLines
ReadOnly
Expandable
PurchaseOrders
ReadOnly
PurchasePendingQuantity
PurchasePrice
On POST: Defaults to suppliers or products purchase price
PurchaseUnitType
On POST: dDefaults to suppliers or product purchase unit type
Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat or Zak
Expandable
Receiving
ReadOnly
ReceivingCheckType
Default, Always, Never or Sometimes
ReceivingId
ReadOnly
ReceivingsCountingLineId
ReadOnly
Remarks
ScanLine
Maximum 30 characters
SellingPrice
On POST: Defaults to product selling price
SortOrder
SupplierProductCode
On POST: Defaults to suppliers product code or product number
Maximum 25 characters
TaxAmount
ReadOnly
TaxCodeId
On POST: Defaults to product tax code
Cannot be updated
TaxRate
On POST: Based on tax code
ReadOnly
TotalExclTax
On POST: dDefaults to purchase price * ordered quantity
Cannot be updated
TotalInclTax
On POST: dDefaults to purchase price * ordered quantity. Ignored on POST if TotalExclTax is also given
Cannot be updated
WarehouseId
On POST: Set to receiving warehouse
Cannot be set manually
WarehouseLocationId
Must be an existing warehouse location

API-methods

GET api/receiving-lines

Get all receiving lines

GET api/receiving-lines/{id}

Get a specific receiving line by id

PATCH api/receiving-lines/{id}
Restricted access

Updates an existing receiving line. Only unprocessed receiving lines can be updated

DELETE api/receiving-lines/{id}
Restricted access

Delete an existing receiving line. Only unprocessed receivings lines can be deleted

Receivings

If you use stockmanagement in ASPOS it must be logged what comes in and out of the stores. What comes in (from suppliers) is handled through receivings. Processing receivings will result in updated stocks on stores.
The supplier with code -9999 can be used when products of different suppliers need to be added to the same receiving.
Kititems are automatically added.





Properties

Property
Notes
Validation
ApprovalID
Readonly
CheckType
Default, Always, Never or Sometimes
Code
Required
Maximum 30 characters
Must be unique per store and supplier
DeliveryAddressAttention
Maximum 60 characters
DeliveryAddressCity
Maximum 100 characters
DeliveryAddressCountryCode
Maximum 2 characters
DeliveryAddressNumber
Maximum 10 characters
DeliveryAddressStreet1
Maximum 100 characters
DeliveryAddressStreet2
Maximum 100 characters
DeliveryAddressZip
Maximum 7 characters
Description
Maximum 40 characters
DiscountAmount
ReadOnly
DistributionKeyId
Must be an existing distribution key
EntryNumber
Maximum 20 characters
Id
ReadOnly
InvoiceCode
Maximum 30 characters
InvoiceDate
IsReturns
LastModifiedDate
Filterable
OriginalAmount
OverwritePreferredSupplier
PaymentExpirationDate
Processed
ReadOnly
ProcessedDate
ReadOnly
ProcessedGroupUserId
ReadOnly
ProductQuantity
ReadOnly
PurchaseOrderId
Must be an existing purchase order
ReceivedDate
On POST: defaults to current date
Expandable
ReceivingCountingLines
ReadOnly
Expandable
ReceivingLines
Required
Between 1 and 500 lines
Remarks
SortOrder
Backoffice uses the following values: 0 = Input order, 1 = Product code, 2 = Order code, 3 = Description, 4 = Ean code, 5 = Box
Maximum 500 characters
Source
SourceCustomerOrderID
Usually a customer order number
Maximum 100 characters
State
Pending or Processed
On POST: Defaults to pending
ReadOnly
StoreId
Can't be updated
Must be an existing store you have permission to
StoreJobSessionId
Must be an existing store job session
Expandable
Supplier
ReadOnly
SupplierContactId
Must be an existing contact of the given supplier
SupplierId
On POST: Used to retrieve purchase prices
Can't be updated
Required
Must be an existing supplier
TaxAmount
ReadOnly
TotalExclTax
ReadOnly
TotalInclTax
ReadOnly
Type
On POST: dDefaults to Default
Default or InterStore
WarehouseId
On POST: Default to default warehouse for store
Can't be updated
Must be an existing warehouse

API-methods

GET api/receivings

Get all receivings within a given date range or with specific state(s)

GET api/receivings/{id}

Get single receiving

POST api/receivings
Restricted access

Create a new receiving with lines, kititems will automatically be added

PATCH api/receivings/{id}
Restricted access

Updates an existing receiving. Only unprocessed receivings can be updated

DELETE api/receivings/{id}
Restricted access

Delete an existing receiving. Only unprocessed and non-return receivings can be deleted

POST api/receivings/{id}/Process
Restricted access

Process an existing receiving. A status code 429 will be returned when trying to process multiple receivings at the same time.

POST api/receivings/{id}/ProcessDifferences
Restricted access

Process the differences of an existing receiving. A status code 429 will be returned when trying to process multiple receivings at the same time.

POST /api/receivings/{id}/CreateStoreJobs
Restricted access

Creates store jobs from the receiving lines.

ReceivingCreateStoreJobsRequest





Properties

Property
Notes
Validation
CreatedByGroupUserId
CreatedByStoreId
IPAddress
Maximum 40 characters
JobType
Valid values are: ReceivingPutAway
LineRemark
Defaults to 'Ontvangstregel' when null
Remarks

ReceivingCreateStoreJobsResponse





Properties

Property
Notes
Validation
StoreJobSessionIds

Reports





Properties

Property
Notes
Validation
Locale
ReportName
Storesetting ReportDeliveryNoteName or POSA4PdfTicketName is used to retrieve a specific version of certain reports
WebshopCartLabels_Marskramer, A4Ticket, DeliveryNote, Brands
SelectionIds
Depending on the given report name, only the first id is used.
StoreId

API-methods

api/reports/Generate

Generates a report as PDF file

ReservedStock

The reserved stock a product has based on order lines, cancelled order(line)s and orders of types PriceQuotation and PreOrderWebShop are not included.





Properties

Property
Notes
Validation
PickedQuantity
Total Sum of all the OrderLines' ToDeliveryQuantity that use the product.
ProductId
StoreId
ToPickQuantity
The OrderLines' Sum of BackOrderQuantity minus the Sum of ToDeliveryQuantity.

Scancodes





Properties

Property
Notes
Validation
Code
The actual code to be scanned.
Must be unique across all stores.
CustomerCardId
Set when the current scancode is assigned to a customer card.
Readonly
Id
Readonly
Price
The price to use when scanned. Set when the current scancode is assigned to a product.
ProductId
Set when the current scancode is assigned to a product.
Cannot be updated
Quantity
The quantity to add when scanned. Set when the current scancode is assigned to a product.
Must contain a valid integer value.
StoreId
Required when creating a scancode. Cannot be updated. Must match the current store on PATCH/DELETE. Must match current store or lower on POST.

API-methods

GET api/scancodes

Retrieve scancodes for the given store.

GET api/scancodes/{id}

Retrieve a specific scancode.

POST api/scancodes
Restricted access

Create a new scancode

PATCH api/scancodes
Restricted access

Updates a collection of scancodes.

DELETE api/scancodes/{id}
Restricted access

Delete an existing scancode line.

ScanCodeLoadRequest

Request load for the scancode that returns type and entity. Works for Customer, GroupUsers, Products (including Wicht), Transactions and Giftcards





Properties

Property
Notes
Validation
CustomerExpand
Expand given fields for Customer
CustomerFields
Filter returned customer (if any)
GroupUserExpand
Expand given fields for GroupUser
GroupUserFields
Filter returned group user (if any)
ProductExpand
Expand given fields for Product
ProductFields
Filter returned product (if any)
ScanCode
The scancode to check
StoreId
The storeId for this operation
TransactionExpand
Expand given fields for Transaction
TransactionFields
Filter returned transaction (if any)

API-methods

POST api/scancodes/Load

Run the load operation

ScanCodeLoadResponse





Properties

Property
Notes
Validation
Type
The type of the response. One of: Product, Customer, Transaction, GroupUser or Giftcard

SecurityCall

Logging into the SecurityCall logs





Properties

Property
Notes
Validation
AccessDenied
GroupUserId
This value is overwritten when accessing this endpoint using user credentials
Must exist
Key
Maximum length of 500 characters
Message
Required
RequestCancelled
SecurityDoorCode
Defaults to the Webshop Log
Must exist
StoreId
Must exist
TableName
Maximum length of 50 characters
Title
Required

API-methods

POST api/security-calls

Add a SecurityCall to the SecurityCall log

SecurityDoors

Available security settings; security doors can be set on security groups and on specific group users. If retrieving for a group user, all securitydoors linked to the securitygroup of the user will also be retrieved.





Properties

Property
Notes
Validation
Code
Required
Must be an existing code
Description
Readonly
GroupUserId
Required
HasAccess
Required
Hide
Readonly
Id
Readonly
MustLog
Readonly
SecurityGroupId
Readonly

API-methods

GET api/security-doors

Get security doors by either securityGroupId or groupUserId. Optionally use the codes filter to find a specific door. When providing a list of codes, the limit is ignored.
Note: If you use the securityGroupId and the groupUserId filter at the same time the security doors of the current groupUser securitygroup are not returned.

PATCH api/security-doors

Update security doors for specific group users.

SecurityGroups

Aspos users are linked to a security group, a security groups defines which permissions a user has.





API-methods

GET api/security-groups

Retrieve all security groups

GET api/security-groups/{id}

Retrieve a specific security group

Stock Counts

Stock counts are records used for counting of stock. Records might have lines and differences





Properties

Property
Notes
Validation
ClosedByUserId
CountedOnly
CreationDate
EndDate
Export
ExportedDate
Id
InventoryCheckType
One of CountAdvice, DifferenceCounting, EmptyShelves, NegativeCountAdvice, Nullcounting, PartialCounting
LastModifiedDate
Expandable
Lines
Processed
ProcessedDate
StartDate
StartedByUserId
StoreId
WarehouseId

API-methods

GET api/stock-counts

Retrieve stock counts for given store

GET api/stock-counts/{id}

Retrieve specific stock count

Stock Count Lines

Lines for stock counts





Properties

Property
Notes
Validation
CreationDate
CurrentStockQuantity
ExportedDate
GroupUserId
Id
IsExported
IsProcessed
LastModifiedDate
ProcessedDate
Expandable
Product
ProductId
ProductQuantity
Remark
Scancode
StockCountId
StockCountUploadId
StoreId
UploadDate
UploadedBy
UploadType
one of Manual, Upload

API-methods

GET api/stock-count-lines

Retrieve lines from stock counts

GET api/stock-count-lines/{id}

Get line from stock count

Stock mutation records





Properties

Property
Notes
Validation
CustomerId
DocumentCode
Id
LastModifiedDate
Processed
ProcessedDate
Expandable
Product
ProductId
Quantity
StockMutationDate
StockMutationId
SupplierId
TaxCodeId
TaxCodeRateId
TaxRate
TotalAmountExclTax
TotalAmountInclTax
TransactionIdType
Type
UnitPriceExclTax
UnitPriceInclTax

Stock mutations

Stock mutations are records containing info about stock changes





Properties

Property
Notes
Validation
CreationDate
Description
DocumentID
GroupUserId
Id
LastModifiedDate
Processed
ProcessedDate
Expandable
Records
StoreId
Type
One of: Sale, Purchase, CustomerOrder, Received, Correction, InterStoreSale, CustomerOrderSales, Loss, AutoTransferReturnStock, CustomerOrderSalesV2
WarehouseId

API-methods

GET api/stock-mutations

Retrieve a list of stockmutations.
Allows ordering on:

  • CreationDate
  • Id

GET api/stock-mutations/{id}

Retrieve specific stock mutation

StockCountDifferences

StockCountDifferences are records linking a StockCount to a Product and are part of inventarisation tasks





Properties

Property
Notes
Validation
CountedQuantity
CountFrequency
DateExported
DateProcessed
DifferenceQuantity
Export
Id
Processed
Expandable
Product
Product is linked through the StoreGroupProduct
ProductId
Expandable
StockCount
StockCountId
StockQuantity_Current
StockQuantity_Start
StoreId

API-methods

/api/stock-count-differences

Get StockDifference based on the StockCount

StoreJobLines

Lines from the StoreJobs





Properties

Property
Notes
Validation
Id
Readonly
IPAddress
Automatically set from authentication token
Maximum 40 characters
JobQuantity
JobRemark
JobStatus
Required
One of the JobStatus values (Open, Pending, Processed, Finished, Closed or Deleted)
Location
Maximum 25 characters
Price
Processed
ProcessedDate
Expandable
Product
Readonly
ProductId
Required
Must Exist
Quantity
Required
RelatedId
Remark
ScanByGroupUserId
ScanCodeId
ScanDate
Defaults to current datetime if scanId or scancodeId is given
Should be fllled to be processed in the FinishAndClose request for job type 'Pick Customer Order'
ScanId
Usually the EAN code
Maximum 25 characters
Required when store job has type CreateLabelQuickScan
StoreJobId
Required
Must Exist.
Cannot be updated
SupplierId
Only used when jobtype is Purchase

API-methods

GET api/store-job-lines
Restricted access

Get all storejob lines

POST api/store-job-lines
Restricted access

Create new storejob line

POST api/store-job-lines/bulk
Restricted access

Create a batch of storejob lines

PATCH api/store-job-lines/{id}
Restricted access

Update StoreJobLine with new values

StoreJobs

Only accessible when allowed on the client role





Properties

Property
Notes
Validation
CreatedByGroupUserId
Required
Must be existing GroupUser
CreatedByStoreId
Required
Must be existing StoreId, Cannot be updated
CreatedDate
ReadOnly
DocumentId
Maximum 10 characters
FinishedDate
Valid Sql Date
Id
Readonly
IsParked
IsProcessed
IsSingleJobSession
JobDocumentId
Maximum 10 characters
Expandable
JobLines
JobStatus
On POST: defaults to Pending
Must be one of Open, Pending, Closed, Finished, Processed, Deleted
LastModifiedByGroupUserId
Must be existing GroupUser
LastModifiedDate
Readonly
ProcessByGroupUserId
Must be existing GroupUser
ProcessedDate
Valid Sql Date
RelatedId
Cannot be updated. Required for Types Count (stockCountId), Inventarisation (stockCountId), Pick Customer Order(customerOrderId), Purchase, Receive Order(receivingId), Customer Order(customerOrderId within Wifi selection)
Remarks
SortOrder
Required
Must be Count or Display
SortOrderType
Required
Must be Description or Location
Expandable
Store
Readonly
StoreId
Must be existing StoreId
Type
Required
Must be one of Count, Inventarisation, Collect, Purchase, Receiving, Pick Customer Order, Customer Order, WaitTicketCashRegister, AddAndRenumLoc, MultiReceivingsCheck, AddSupplierReturn, ReceiveMail, CreateLabelQuickScan, Scan job.
Cannot be updated
WarehouseId
Must be a Warehouse of the given store
XmlFields
Must be a XML value

API-methods

GET api/store-jobs/{id}/lines
Restricted access

Get lines from the StoreJobs

GET api/store-jobs
Restricted access

Get the Storejobs

GET api/store-jobs/{id}
Restricted access

Get StoreJob by Id

POST api/store-jobs
Restricted access

Create StoreJob

PATCH api/store-jobs/{id}
Restricted access

Update specific StoreJob

DELETE api/store-jobs/{id}
Restricted access

Delete specific StoreJob. Will only work with Pending jobs

POST api/store-jobs/{id}/FinishAndClose
Restricted access

Finish and close an open or pending storejob

POST api/store-jobs/{id}/CopyFromReceiving
Restricted access

Re-open a processed store job and add the products from a receiving which were not counted before

POST api/store-jobs
Restricted access

Add a storejob

POST api/store-jobs/bulk
Restricted access

Add multiple storejobs

CopyFromReceiving





Properties

Property
Notes
Validation
ReceivingId
Must be an existing receiving
StoreId

FinishAndClose





Properties

Property
Notes
Validation
CreateSupplierReturn
Used when storejob type equals 'AddSupplierReturn'
ProcessedByGroupUserId
Only for StoreJob type 'Scan job'. Specify which user finished and closed the storejob.
ProcessPickorder
Used when storejob type equals either 'Customer Order' or 'Pick Customer Order'. Determines whether the customer order should converted to a delivery note. When the store setting MXXXPickLinesToDelivNote is set to false, it overrides this parameter and sets it to false.
ResetMinMaxOfReturn
Used when storejob type equals 'AddSupplierReturn'
StoreId

Stores

Everything in Aspos is connected to stores, which are in a hierarchy. For example; Customers linked to the top level store, are known in every other store, but customers linked to a lowest level store are only visible for that specific store.
Products can have store specific properties. Customerorders can be added to a specific store, so they know they have to process it further. Etc.



Stores in Aspos Backoffice can have a checkmark on 'webshop actief', these can be filtered by using the tag 'webshop'. If true, webshop orders can be dropped on this store



Properties

Property
Notes
Validation
BankAccount
Expandable
BranchManager
BranchManagerId
BranchNumber
Expandable
Children
City
ClosingDate
CoCNumber
Chamber of commerce number
Code
CountryCode
ISO 3166 2-digit country code
Email
Expandable
ExtendedProperties
FaxNumber
FormulaCode
FormulaDescription
Expandable
Groups
HouseNumber
HouseNumberExtension
Id
Expandable
Images
LanguageCode
Expandable
Location
LocationType
A1, A2, B1, B2, C1, C2
Memo
Name
OpeningDate
Expandable
OpeningTimes
PhoneNumber
PostalCode
Expandable
RegionManager
RegionManagerId
Status
Active, No longer active, Not yet active or TestStore. Only active stores can be used in most cases
Street
TaxNumber
Type
City shop, Shopping center, Village shop, Virtual, N'PickupStore
Expandable
Warehouses
Expandable
WebSettings
Website

API-methods

GET api/stores

Retrieve all stores. Optionally filter by Type
Supports paging

GET api/stores/{id}

Retrieve a specific active store

GET api/stores/code/{code}

Retrieve a specific active store by code

GET api/stores/{id}/images

Retrieve the images for a specific store

GET api/stores/{id}/location

Retrieve the location information for a specific store.

GET api/stores/{id}/opening-times

Retrieve the opening-times for a specific store

GET api/stores/{id}/settings

Retrieve specific settings for a specific store, in some cases settings can have multiple values. In that case the same name will be returned multiple times.

GET api/stores/{id}/web-settings

Retrieve web settings for a specific store, mostly used for web shops.

GET /api/stores/branchNumber/{branchNumber}

Retrieve a specific store by branch number

GET /api/stores/externalCode/{externalCode}

Retrieve a specific store by external store code

GET /api/stores/globalLocationNumber/{globalLocationNumber}

Retrieve a specific store by global location number

GET /api/stores/jdsNumber/{jdsNumber}

Retrieve a specific store by JDS number

POST /api/stores/Search

Search for stores with a variety of parameters.

PATCH api/stores/{id}/settings/{name}

Update the value for a StoreSetting by storeId and setting name. Systemfields or fields that are not locally overwriteable cannot be altered.

DELETE api/stores/{id}/settings/{name}

Delete a StoreSetting by storeId and setting name. Systemfields or stores that are not locally overwriteable cannot be deleted. Settings belonging to top-level stores cannot be deleted.

ExtendedProperties

Additional properties for stores. At the moment: JdsNumber and ExternalStoreCode





GroupNode

A node in the store tree. Links one or more stores to a position in the tree





Properties

Property
Notes
Validation
Description
GroupId
GroupLevel
ParentGroupId
Id of the group above this group
StoreNodes
VirtualStoreId
The Id of the virtual store (Sales organisation).
Expandable
VirtualStoreNode

API-methods

GET api/stores/store-tree
Restricted access

Retrieve the whole storetree

Location

The location specifies the coordinates of the store on the map.





Properties

Property
Notes
Validation
DistanceInMeters
Only calculated if a from-location (distanceFromLatitude/distanceFromLongitude) is provided.
GlobalLocationNumber
Sometimes called International Location Number
Latitude
Longitude

Opening times





Properties

Property
Notes
Validation
ExtraClosingDays
ExtraOpeningDays
StoreId
Weekdays
List of StoreDays; openingtimes per day of the week. If a day is missing, the store is not open on that day.

Settings





Properties

Property
Notes
Validation
Expandable
FieldDefinition
ReadOnly
InheritedFromStoreId
Indicates the storeId that the property is inherited from.
Name
ReadOnly
StoreId
ReadOnly
Value
Freetext: between 1 and 250. YesNo: 'True' or 'False'. Dropdown: Must be an existing option.

StoreDay





Properties

Property
Notes
Validation
ClosingTime
Format HH:mm:ss
Day
Day of the week; Monday, Tuesday, ..
LunchEnd
Format HH:mm:ss
LunchStart
Format HH:mm:ss
OpeningTime
Format HH:mm:ss

StoreNode

The Store in the store tree. Linked to a group. Only retrievable through a expand on the group





Properties

Property
Notes
Validation
BranchNumber
GroupId
The group this store belongs to
IsVirtualStore
IsWebShopActive
Expandable
Store
StoreCode
StoreId

WebSettings

Default settings which can be used by webshops and sorts for handling orders, these settings can be managed in the backoffice per store on the tab 'Webshop'





Properties

Property
Notes
Validation
DefaultDeliveryOrderPaymentMethodId
DefaultDeliveryOrderWarehouseId
DefaultKioskCustomerId
Can be used when you want to create orders for anonymous customers
DefaultKioskDeliveryProductId
Id of product which should be added to delivery orders, usually represents the delivery costs
DefaultOrderShipmentId
DefaultPaymentMethodId
DefaultPickupOrderWarehouseId

SupplierAddresses





API-methods

GET /api/supplier-addresses

Get all supplier addresses
Supports paging

GET /api/supplier-addresses/{id}

Retrieve a specific supplier address

SupplierGroups

All suppliers are part of a supplier group





Properties

Property
Notes
Validation
Code
Required
Maximum 5 characters
Description
Maximum 30 characters
Id
Required
ReadOnly

API-methods

GET api/supplier-groups

Get all supplier groups

GET api/supplier-groups/{id}

Retrieve a specific supplier group based on Id

GET api/supplier-groups/code/{code}

Retrieve a specific supplier group based on Code

Suppliers





Properties

Property
Notes
Validation
Expandable
Addresses
City
Code
CompanyName
ContactPerson
CountryCode
CreditorCode
DebtorCode
DeliveryDays
DiscountPercentage
DropShipmentAllowed
EanAddress
Email
ExpectedLeadTimeDays
ExportTransactions
Denotes whether this store's data should be included when exporting the supplier
FreightPaid
HouseNumber
HouseNumberExtension
Id
MailingAllowed
MobileNumber
OrderDays
OrderEmail
OrderFileType
BMN, CB, DIP, Email, EmailAttachment, Intres, JDS, JDSWEB, LDPLUS, MITRA, ODBMS
PhoneNumber
PostalCode
PurchaseOrderType
Default, DiscountOrder, InterStore, Manual, MultistorePurchaseOrder, NEXTDAYDELIVERY, PreEntry, Pushorder, Urgent
QuoteLimit
ReceivingFromPurchaseOrderAllowed
Indicates whether creating a receiving for a purchase order from this supplier is allowed. Defaults to true
Remarks
RequestProcessOrderTypeEnabled
Street
SupplierGroupId
Website

API-methods

GET api/suppliers

Get all suppliers with optional filter for debtor codes
Supports paging.
Can be sorted by:

  • Code
  • CompanyName
  • Id

Supports a search term to look for suppliers whose company name contains this search term

GET api/suppliers/{id}

Retrieve a specific supplier by id

GET api/suppliers/code/{code}

Retrieve a specific supplier by code

GET api/suppliers/eanAddress/{eanAddress}

Retrieve a specific supplier by EAN address

Synchronization

Although we do not advise it, in some cases it is needed to synchronize data to your local systems. These endpoints can be used for this. All endpoints work in the same way, you can enter a token from which points you want to retrieve changes.
In the response a response header is added with the name 'x-Sync-Token', you should add this value to your next request. This will make sure you do not miss any change. If the response is empty, no more changes are available and you should use the last token in your next synchronization-run (for example the next night). The token in the header is empty if no changes are found.
If an object is changed multiple times it will be returned only once, with the data that is set on the latest change. If an object is deleted only the id is returned together with IsDeleted=true



Always send a (recent) token unless it's the first time you synchronize, it is not allowed to synchronize all items every day.



API-methods

GET /api/sync/web-nodes

Get the last changed web nodes since a given token

GET /api/sync/web-node-records

Get the last changed web node records since a given token

GET /api/sync/web-products

Get the last changed products since a given token. Only products that are connected to any webNode are returned. When parameter createdOnStoreIds is used, local products on those stores are also returned

GET /api/sync/web-products-stock-info

Get the last changed product stock info since a given token. Only products that are connected to any webNode are returned, unless ignoreWebNodes=true

SyncProduct

This represents a changed product. Product is changed when one of it's base properties is updated, or one of the following expanded data properties is changed: Translations, Fields, Images, Memos, Configuration, DefaultScanCode, ScanCodes





Properties

Property
Notes
Validation
Expandable
ActiveWebNodes
Changes in this expanded resource will NOT result in a updated product
AttentionMemo
AttentionMemoEndDate
AttentionMemoStartDate
AvgCostPrice
BestBeforeProduct
BonusPoints
When ordering this product this amount of bonuspoints will be added or removed from the customer's card
BonusPointsAllowed
Store specific
If false, this product will be excluded from calculating how many bonuspoints the customer will receive based on the total order price
BonusPointsEndDate
BonusPointsStartDate
Expandable
Brand
Changes in this expanded resource will NOT result in a updated product
BrandId
Expandable
CategoryGroup
Changes in this expanded resource will NOT result in a updated product
CategoryGroupId
CollectionCode
CollectionDescription
ColorCode
ColorDescription
Expandable
Configuration
Content
ContentType
CreationDate
DefaultLabelTypeId
DefaultOrderQuantity
Expandable
DefaultScanCode
DefaultScanCodeId
Store specific
Depth
Description
Expandable
Discount
Changes in this expanded resource will NOT result in a updated product
DiscountAllowed
DiscountPrice
Store specific. Price used in From/For discount, this is NOT the calculated discount
Expandable
Discounts
Changes in this expanded resource will NOT result in a updated product
Expandable
Esls
Changes in this expanded resource will NOT result in a updated product
Expandable
Fields
Expandable
Group
Changes in this expanded resource will NOT result in a updated product
GroupId
Height
Id
Expandable
Images
InclTax
IsDeleted
IsValidated
Expandable
Kits
Changes in this expanded resource will NOT result in a updated product
LabelKind
LastModifiedDate
LastPurchasePrice
ListPrice
Store specific
ManufacturerCode
ManufacturerDescription
Margin
Expandable
Matrices
Changes in this expanded resource will NOT result in a updated product
Expandable
Memos
ModelCode
ModelDescription
Number
OnlineDescription
OrderFormulaCode
OrderFormulaDescription
ReadOnly
Expandable
PreferredProductSupplier
Changes in this expanded resource will NOT result in a updated product
PreferredProductSupplierId
PriceCode
PriceCodeDescription
PriceExclTax
Store specific
PriceInclTax
Store specific
PriceType
PrintPriceLabel
Expandable
ProductSuppliers
Changes in this expanded resource will NOT result in a updated product
PurchasePrice
Store specific
PurchaseUnit
Store specific
ReceivingCheckType
SalesUnit
Expandable
ScanCodes
SeasonCode
SeasonDescription
SecondDescription
SerialUsage
ShelveStatus
SizeCode
SizeDescription
State
Expandable
StockInfo
StoreId
Expandable
SubGroup
Changes in this expanded resource will NOT result in a updated product
SubGroupId
TaxCodeId
TaxRate
Expandable
Translations
Type
ValidatedDate
VariantCode
Weight
Width

SyncProductStockInfo

The stock information per product, store and warehouse.





Properties

Property
Notes
Validation
AllowSystemOverride
AvailableQuantity
CustomerOrderQuantity
DeliveriesPendingQuantity
Id
IsDeleted
If true all other properties except Id are empty
MaximumStockQuantity
MinimumStockQuantity
PhysicalStockQuantity
ProductId
PurchaseOrderPendingQuantity
PurchaseOrderQuantity
SalesPendingQuantity
StoreId
WarehouseId

SyncWebNode





Properties

Property
Notes
Validation
BigImageLink
Complete url to image
Code
CreationDate
Description
DisplayType
Menu, Icons or Hidden
DocumentName
Id
IsDeleted
If true all other properties except Id are empty
LastModifiedDate
ParentId
SeoDescription
SeoTitle
SmallImageLink
Complete url to image
SortOrder
Status
Active or NotActive
Expandable
Translations
Type
Webshop or Kiosk

SyncWebNodeRecord

WebNodeRecords are the connection between a webNode and a product





Properties

Property
Notes
Validation
EndDate
IsDeleted
If true all other properties except Id are empty
LastModifiedDate
RelatedId
SortOrder
StartDate
Status
Active or NotActive
WebNodeId

SystemMasterDataLists





Properties

Property
Notes
Validation
Code
The item description of the SystemMasterDatalistItem
Id
The ID of the SystemMasterDatalistItem
ListName
The listname of the SystemMasterDatalistItem
SortOrder
The sortorder of the SystemMasterDatalistItem
Value
The alternative value of the SystemMasterDatalistItem

API-methods

GET api/system-master-data-lists

Returns SystemMasterDataList codes and values by multiple listitems.

TaxCodes

Different tax groups which are applied to products, orders, etc.





Properties

Property
Notes
Validation
Expandable
ActiveRate
Code
Id

API-methods

GET api/tax-codes

Retrieve all tax codes. Max limit of 500 for non admins.

GET api/tax-codes/{id}

Retrieve a specific tax code

TaxCodeRates





TaxNumbers





API-methods

POST api/tax-numbers/Validate
Restricted access

Validate a tax number.

TaxNumberValidationInfo





Properties

Property
Notes
Validation
FormattedTaxNumber
Validated tax number without any spaces, hyphens and other delimiters
Readonly
IsActive
true when the company is active. Will be null when useService is false of VatStack is unable to determine the status
Readonly
IsFormatValid
true if the format is valid and the modulo is correct (only NL, BE, DE, FR, BE, GB and IX are checked when useService is false)
Readonly
IsoCountryCode
Readonly
IsValid
true when the tax number actually exists. Will be null when useService is false of VatStack is unable to determine the status
Readonly

ValidateTaxNumber





Properties

Property
Notes
Validation
TaxNumber
UseService
Use external service to check if the tax number actually exists

Templates

Aspos has all kinds of templates, in most cases they are used to sent emails or text messages in a given format. Templates are created separately per language or without a language if they are not language-specific





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
Body
Store specific
Can contain HTML, CSS, etc.
Code
Unique per language
Cannot be updated after creation
ContentType
Valid values are: "text/plain", "text/html" and "application/xml"
Description
Cannot be updated after creation
Id
Readonly
Language
Cannot be updated after creation
Expandable
StoreSettings
Subject
Store specific
Maximum of 300 characters
Type
In most cases 'Email' or 'SMS' are used
Cannot be updated after creation. Templates with ESLTemplate type cannot be updated

API-methods

GET api/templates

Retrieve all templates matching the given language, codes or types.

GET api/templates/{id}

Retrieve a specific template

PATCH api/templates/{id}
Restricted access

Update specific template

TemplateStoreSetting

Templates have specific settings per store, the TemplateStoreSettings





Properties

Property
Notes
Validation
AdditionalParameters
Optional option to overwrite the child stores through OverwriteChildStores
Body
Id
ReadOnly
StoreId
Subject
Maximum of 300 characters
TemplateId

API-methods

GET api/templates/{id}/store-settings

Request store settings for a specific template

PATCH api/templates/{id}/store-settings/{storeId}
Restricted access

Update store settings for a specific template

DELETE api/templates/{id}/store-settings/{storeId}
Restricted access

Remove the storesettings for the given store

TransactionExtensions





Properties

Property
Notes
Validation
Code
Must be unique per transactionId
Any record that is not in the following list can be added or updated: AgeCheckExternalId, BirthDate, CreatedByStoreCashRegisterCounting, CustomerContact, CustomerOrderFromTransaction, CustomerOrderOid, CustomerOrderPayments, IntralotSession, DiscountOverDiscountOID, DiscountReasonOID, EVLPointsFailure, FiscalSigning, FiscalSigningLabels, GroupUserTanCode, IntralotSession, PaidExpectedPayments, PosGroupUserTransactionCommit, PostcodeCheck, ReadrLoyaltyCardId, ReceivePost, TanCode, TanCodeMemo, TransactionCommitStartTime, WebKioskOrder, TicketSignedCode, TicketSignedResult, TicketSignedXML
Cannot be updated
Id
ReadOnly
TransactionId
Must be an existing transaction with state 'commited'
Cannot be updated
Value
Required
Between 1 and 100.000 characters

API-methods

POST api/transaction-extensions

Create a new extension on an existing transaction

PATCH api/transaction-extensions/{id}

Update the value of an existing extension

TransactionRecordExtensions





Properties

Property
Notes
Validation
Code
Must be unique per transactionId
Only the following codes can be added or updated on an existing transaction: PickupQuantity
Cannot be updated
Id
ReadOnly
TransactionRecordId
Must be an existing transaction record on a transaction with state 'commited'
Cannot be updated
Value
Required
Between 1 and 100.000 characters

API-methods

POST api/transaction-record-extensions

Create a new extension on an existing transaction record

PATCH api/transaction-record-extensions/{id}

Update the value of an existing record extension

TransactionRecords

The actual lines of a transaction





Properties

Property
Notes
Validation
Expandable
AdditionalParameters
AmountExclTax
Total price of record
AmountInclTax
Total price of record
BonusPoints
ReadOnly
CustomerOrderLineId
Must be an Existing CustomerOrderLine and all given orderlines in 1 transaction needs to be from the same order
DepositAmount
ReadOnly
Description
Maximum 40 characters
Expandable
Discount
DiscountAmount
If entered manually will be subtracted from PriceInclTax
DiscountId
Expandable
Extensions
Id
ReadOnly
KitGroupId
Id of the kitgroup this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
ListPrice
Notes
OrderQuantity
ReadOnly
ParentProductId
Id of the parent product when this line is a kitline or kitgroupline
Must be an Product in the same calculation
PriceExclTax
Product selling price per unit. Note; this value is not always reliable on existing transactions
PriceInclTax
Product selling price per unit. Note; this value is not always reliable on existing transactions
PriceModified
Indicates if price is not the original product selling price
Expandable
Product
ProductId
Required
Must be an existing product
ProductKitId
Id of the product kit this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
ProductQuantity
Required
Must be greater than 0
PurchasePrice
ReturnQuantity
ReadOnly
ScanCode
Maximum 30 characters
SerialNumber
Maximum 50 characters
TaxAmount
ReadOnly
TaxCodeId
ReadOnly
Expandable
Transaction
ReadOnly
TransactionId
ReadOnly
UnitPrice
ReadOnly
WarehouseId
Must be an existing warehouse
WarehouseLocationId
Must be an existing warehouse location

API-methods

GET api/transaction-records

Retrieve transactions, optionally specify that it needs a serialnumber through hasSerialNumber

TransactionRecordExtension

Additional fields for Transaction records





Properties

Property
Notes
Validation
Code
Master table field code
Id
ReadOnly
TransactionRecordId
Value
The value of the extension

Transactions





Properties

Property
Notes
Validation
AmountExclTax
ReadOnly
AmountInclTax
ReadOnly
BonusPoints
ReadOnly
Expandable
CashDrawer
CashDrawerId
Must be an existing cash drawer for given store
Expandable
Customer
Expandable
CustomerCard
CustomerCardId
Must be an existing customer card
CustomerId
Must be an existing customer
Date
Defaults to current date
DiscountAmount
ReadOnly
DocumentID
ReadOnly
Expandable
Extensions
GroupUserId
GroupUser that created this transaction
Must be an existing GroupUser
Id
ReadOnly
Notes
Number
ReadOnly
PayableAmount
ReadOnly
Expandable
Payments
Expandable
Receipts
ReadOnly
ReceivedAmount
ReadOnly
Expandable
Records
SessionIdCreated
State
ReadOnly
Aborted, Bill, Commited, Fiatchecked, Hibernated, Hibernated_converted, Hibernated_from, Open_anonymous, Open_identified, Rolledback_manual, Rolledback_system, Transfered, Waitforfiat
Expandable
Store
StoreId
Must be an existing store
TaxAmount
ReadOnly
Type
Defaults to Sale on POST
BonusPointsTransaction, CashInOut, CashSafeCountedTotal, CashSafeDeposit, CashSafeDifference, CashSafeTransactionTotal, CashStartAmount, Conversion, CustomerOrder, DeliveryNote, Fiat, InterStoreDeliveryNote, InterstoreInvoice, InterStoreSale, Invoice, InvoicePayments, PurchaseOrder, RefundTransactionCorrect, SafeBankDeposit, Sale, Stortingen, Uitbetalingen, WebShopOrderPayment
Only Sale or DeliveryNote are supported on POST
TypeDescription
Dutch description of the Type field
Readonly

API-methods

GET api/transactions

Retrieve all transactions for given customerId, types and states within the specified date range. Optionally supplier SerialNumber to check for transactions where the given serialnumber exists in the records. Default range is one month. By default only committed (State) transactions are retrieved.
Additional filter parameters are checked against the transaction extensions. For example Source=Web wil check for a transactionExtension with code Source and value Web. Note: These extension filters are only allowed when the search period is within the last 30 days

GET api/transactions/{id}

Retrieve a specific transaction

GET api/transactions/return-barcode/{barcode}

Retrieve a transaction by a refund (EAN13) barcode printed on the receipt.

POST api/transactions/{id}/AddRecordAction
Restricted access

Add a recordAction to an existing transaction

POST api/transactions/Aggregate

Aggregate function for transaction(record)s for specific customers within the specified date range. Default range is one month. Only transaction records linked to products are included.

POST api/transactions/Commit
Restricted access

Commit a basic transaction directly. Prices/discounts should be set manually if you want to be sure your payments match the total amount. An exception will be thrown if transaction total and payments total does not match.
A DirectOrder will be created for Food-products when setting CustomerCodeForKitchen is set correctly.
Might give a list of Warnings with Code, Description and Details. Description will indicate what did go wrong and Detail will tell you when.

POST api/transactions/Hibernate
Restricted access

Hibernate a transaction

POST api/transactions/{id}/GenerateReceipt

Generate receipt for a specific transaction

Downpayment

Allows to do a downpayment in a transaction





Properties

Property
Notes
Validation
Amount
Must be less or equal to open amount of referenced order or invoice
CustomerOrderId
Must Exist. Either InvoiceId or CustomerOrderId is required
Order must have the same customerId as the transaction
InvoiceId
Must Exist. Either InvoiceId or CustomerOrderId is required
Invoice must have the same customerId as the transaction

TransactionAggregateRequest





Properties

Property
Notes
Validation
CustomerIds
Customer filter
Required
EndDate
Transaction date filter
Field
Transaction(record) field to aggregate on
AmountInclTax or AmountExclTax
ProductGroupIds
ProductGroup filter, to exclude groups use negative ids
ProductIds
Product filter, to exclude products use negative ids
StartDate
Transaction date filter
TransactionStates
Transaction state filter
Type
Type of aggregation
Must be SUM

TransactionCommitRequest

Can be used to directly commit a transaction with records and payments which has been handled at a POS





Properties

Property
Notes
Validation
CalculatePrices
By default prices and discounts are not calculated, because that could give different results than what the customer has payed
CustomerReference
Saved in deliverynote when commiting a transaction of type DeliveryNote
Maximum 40 characters
DownPayments
Allows to do a downpayment to a order or invoice
Locale
ReceiptEscPosPrinterModel
Remark
Saved in deliverynote when commiting a transaction of type DeliveryNote
Maximum 40 characters
ShipmentTypeId
Must be an existing ShipmentType
Transaction
The actual transaction including records and payments
WorkstationId
Used to gather the correct cash registers and drawers from workstation settings

TransactionExtensions

If transactions are linked to a customer order, the extensions will contain a code with the name 'CUSTOMERORDEROID'





Properties

Property
Notes
Validation
Code
Id
ReadOnly
TransactionId
Value
Between 1 and 100.000 characters

TransactionPayments





Properties

Property
Notes
Validation
Amount
Id
ReadOnly
PaymentCurrencyAmount
The amount paid in the non-default currency
PaymentExchangeRate
The exchange rate of the currency that was used to pay this transaction. Only applicable if it was not paid in the defeault currency
PaymentMethodId
PaymentReference
SerialNumber
Can be used to store voucher code

TransactionReceipt





Properties

Property
Notes
Validation
EscPosData
Raw esc-pos print data
Id
PrintOrder
Order in which the receipts must be printed
Receipt
XML data with the print lines

TransactionReceiptRequest

Request a specific receipt from a transaction





Properties

Property
Notes
Validation
EscPosPrinterModel
Fields
Fields to return
LanguageCode
Language of the template to use
ReceiptTemplateCode
Code of the template
WorkstationId
Id of Workstation

TransactionSigning

Sign transaction via EFSTA for tax purposes





Properties

Property
Notes
Validation
CountryCode
Currently only FR is supported
TransactionId

API-methods

POST api/transaction-signing

Sign a transaction via EFSTA

POST api/transaction-signing/Reprint

Sign a transaction again when a reprint has been requested

TransactionSigningAbort





Properties

Property
Notes
Validation
CountryCode
Currently only FR is supported
ScanCodes
Products scanned before abortion
Must be existing
StoreId
Id of the store
Must be existing store that is active
TransactionDate
Date of the transaction
After 1753-01-01
TransactionId
Id of the transaction
TransactionNumber
Number of the transaction
TransactionTotal
Total of the transaction before cancellation
WorkstationId
Id of the workstation
Must be existing workstation

API-methods

POST api/transaction-signing/Abort

Sign a transaction which has been aborted before completion

TransactionSigningRegisterEvent





Properties

Property
Notes
Validation
Code
The auditcode of EFSTA
Date
The event date and time
After 1753-01-01
Description
Additional information of this event
OperatorId
The id of the user that caused this event
StoreId
Id of the store
Must be existing store in storetree
Title
The title for this audit event
WorkstationId
Id of the workstation

API-methods

POST api/transaction-signing/RegisterEvent

Register event in EFSTA

Translations

Generic endpoint for managing translations of resources.





Properties

Property
Notes
Validation
CreatedByGroupUserId
Must be an existing GroupUser
FieldName
Required
Must be an existing property of the related type
Id
ReadOnly
LanguageCode
Required
Must be an existing language
LastModifiedByGroupUserId
Must be an existing GroupUser
RelatedId
Required
Must be an existing resource
RelatedType
Required
Must be an existing related type
StoreId
Must be an existing store
Value
Required
Maximum 255 characters

API-methods

GET api/translations
Restricted access

Retrieve all translations.Supports paging

POST api/translations/bulk
Restricted access

Add translations to an existing object.

PATCH api/translations/bulk

Update translations of an existing object.

DELETE api/translations/{id}
Restricted access

Delete a translation.

TransportCosts

Transport costs are used to determine the shipment costs for a customer order





Properties

Property
Notes
Validation
CountryCode
CustomerGroupId
Description
Id
OrderType
Expandable
Product
Product to use for the shipment costs
ProductId
Expandable
Records
The tiers for this transportcosts records. Consists of Min, Max and AmountExclTax
StoreId
TransportCode

API-methods

GET api/transport-costs

Request transport costs for store. Will do a lookup to parent stores to return one costs record per country and ordertype. Max limit of 500 for non admins.

Triggers

Triggers (webhooks) are used to notify other applications when certain changes have happened. They can be configured through the store-settings with names starting with 'Trigger'.
Note: Triggers are only created and retrievable through these endpoints when they are enabled in the store-settings.





Properties

Property
Notes
Validation
Action
Add, Update or Delete
CreatedBySource
On POST; Set to clientID if null
Maximum 100 characters
CreationDate
ReadOnly
Expandable
Customer
CustomerId
Only set when Type is CustomerMutations or CustomerSales or Customer
ReadOnly
ErrorMessage
ExternalID
Maximum 100 characters
ExternalIDType
On POST; if Product_Ean, relatedId will be set to productId based on given externalID
Maximum 100 characters
Id
Readonly
IsSent
Indicates if trigger is successfully sent to url in store-settings and received a 200OK response
LastRetrievedDate
MaxProcessTimeInSeconds
ProcessedBySource
If status is set to processed, automatically set to clientID if null
Maximum 100 characters
RelatedId
SentCount
Indicates how many times the trigger is sent before succeeding
SentDate
Status
Open, Processing, Processed, Error
StoreId
Cannot be updated
Tag
Maximum 100 characters
Expandable
Transaction
TransactionId
Only set when Type is Transaction
ReadOnly
Type
CustomerMutations, CustomerSales, Transaction, Customer, Product, Stock, Picklist, CustomerOrder, CustomerOrderUpdated, CustomerOrderCreated, DeliveryNote
Cannot be updated
XmlFields

API-methods

GET api/triggers

Retrieve all triggers within the given filters. If setToProcessing is set to true, the trigger status will automatically set to Processing unless the trigger is already processed before

GET api/triggers/{id}

Retrieve a specific trigger

POST api/triggers

Create a new trigger

PATCH api/triggers

Update between 1 and 100 triggers

Vouchers

Vouchers can be used to activate discounts or to pay with. Only active vouchers can be handled through these endpoints. Vouchers are redeemed automatically on commiting an order, so make sure the balance is enough for the payments you try to add.
Paymentvouchers have a pincode, when using these vouchers on your webshop you can use the GET endpoints to validate the pincode to prevent users from guessing vouchercodes.





Properties

Property
Notes
Validation
ActivationDate
Default today
Cannot be updated
BalanceAmount
Total balance for this voucher
Between 0 and 10000 or between limits set on voucher type
CardNumber
If bonus points should be processed, it will be done on this card
Cannot be updated
Code
Voucher code that the customer provides
Readonly
CustomerId
CustomerId who owns this voucher
Cannot be updated
EndDate
Id
Readonly
LastBalanceChangeDate
Readonly
OriginalAmount
Initial balance for this voucher
Readonly
PinCode
PinCode, only applicable for BetaalVouchers
Maximum 20 characters
PointsToProcess
The points that should be deducted from the customer card. May only be set when the voucher is of type Loyalty Voucher.
PrintDate
Readonly
Printed
Default false, can only be set to true with PATCH method.
Expandable
Receipts
ReadOnly
ShowDate
Readonly
Shown
Default false, can only be set to true with PATCH method.
Status
Readonly, Active, InActive, Blocked, Redeemed or Closed
Expandable
Type
VoucherType
Readonly
TypeId
Must be an existing voucher type.
EndDate must be in the future. Cannot be updated

API-methods

GET api/vouchers

Find a voucher, currently only possible to search for customerIds.

POST api/vouchers

Add new voucher. Can only be added to valid EVL cards

GET api/vouchers/{id}

Find a voucher by voucherId. Optional pincode to validate paymentvouchers

GET api/vouchers/code/{code}

Find a voucher by vouchercode. Optional pincode to validate paymentvouchers

PATCH api/vouchers/{id}

The following properties can be altered: BalanceAmount, Shown, Printed and EndDate.

Redeem Voucher

Vouchers are not automatically redeemed when applied to a order, make sure to call this method to process the voucher.





Properties

Property
Notes
Validation
Amount
Amount to be redeemed
If amount is not set, the total balanceAmount will be redeemed.
if amount > balanceAmount a 400 status code will be returned
if voucher type is not 'partially usable' then the amount must be null or the total balanceAmount for that voucher, otherwise a 400 status code will be returned.
PinCode

API-methods

POST api/vouchers/{id}/Redeem

Redeems a vouchers.

VoucherTypes

Get details about the different types of vouchers





Properties

Property
Notes
Validation
Code
CustomerLinkRequired
Voucher must be linked to a customer
CustomerMessage
Information for the Customer on how to redeem this vouchertype
DefaultAmount
Voucher will get this balance amount
Description
EndDate
Voucher activation date must be before this date
EndRange
Voucher code must be below this number
Id
ReadOnly
Kind
Productvoucher or Betaalvoucher (payment)
LoyaltyVoucher
Voucher PointsToProcess must be set if this is true
MaximumAmount
Balance amount on voucher can be at most this amount
MinimumAmount
Balance amount on voucher must be at least this amount
PartialUsable
Voucher can be redeemed partially
ProductId
Can be used to add the voucher to the Cart or CustomerOrder to calculate the correct discount
Rechargeable
Balance amount can be recharged
StartDate
Voucher activation date must be after this date
StartRange
Voucher code must be above this number
ValidationPeriod
Maximum amount of days to activate a voucher

API-methods

GET api/voucher-types

Get VoucherTypes. Max limit of 500 for non admins.

GET api/voucher-types/code/{code}

Get VoucherType by Code.

Warehouses





Properties

Property
Notes
Validation
Code
Description
Id
Readonly
Number
StoreId
TypeCode
TypeDescription
ReadOnly

API-methods

GET api/warehouses

Get all the warehouses

GET api/warehouses/{id}

Get a warehouse by Id

Web nodes

All products for a webshop are in a web node otherwise they can not be retrieved through the search API. They are sometimes also used to create the webshop menu.





Properties

Property
Notes
Validation
AllowOverwrite
BigImageLink
Complete url to image
Maximum 200 characters
CategoryCode
Linked to stamtabel WebnodeCategory in backoffice
CategoryDescription
ReadOnly
Expandable
Children
Code
Maximum 20 charaters
Description
Maximum 70 characters
DetailType
One of Link, PDF. SubMenu, WebNodeRecords
DisplayType
Menu, Icons or Hidden
DocumentName
Maximum 260 characters
DocumentType
One of Link, PDF
EndDate
HasProducts
Shows if the node has active links to products, child-nodes are not included.
Id
ReadOnly
InternalDescription
Maximum 40 characters
LinkedWebnodeId
Must be existing web node
Expandable
Parent
ParentId
Must be existing web node
SeoDescription
Maximum 160 characters
SeoTitle
Maximum 70 characters
SmallImageLink
Complete url to image
Maximum 200 characters
SortOrder
SortOrderDetail
Maximum 100 characters
StartDate
Status
Active or NotActive
StoreId
Type
Webshop or Kiosk

API-methods

GET api/web-nodes

Retrieve all web nodes as a flat list
Supports paging

GET api/web-nodes/{id}

Retrieve a specific web node

PATCH api/web-nodes/{id}
Restricted access

Update web node

GET api/web-nodes/{id}/children

Retrieve the direct children for a specific web node
Supports paging

GET api/web-nodes/{id}/products

Retrieve the active products within a specific web node. Send the includeAllProductStates parameter as true to include all productstates.
Supports paging
Product details

GET api/web-nodes/ProductsSearch

Search for products within active web nodes by default.
Supports paging

GET api/web-nodes/ProductsSuggest

Get suggestions for products within active web nodes.

POST api/web-nodes/{id}/image/upload
Restricted access

Upload a image. ImageSize needs to be Big or Small

DELETE api/web-nodes/{id}/image
Restricted access

Remove a image from webnode. ImageSize needs to be Big or Small

WebNodesProductSearchRequest

Only products connected to an active web node will be found
Details about sorting options:
ReleaseDate: Based on product field 'Releasedatum' or creation date of web node it's connected to
CustomerRanking: Based on product review scores
Ranking: Based on product field 'Ranking'





Properties

Property
Notes
Validation
CustomerId
An optional customer id. Search results and prices may vary per customer
Expand
Expand options for products
FacetLimit
Limit the number of facet values er facet. Defaults to 10
FieldCodes
Filter for product fields in case the fields are expanded in this request
Fields
Field filter for products
FieldTags
Filter for product fields in case the fields are expanded in this request
FilterKeys
Filters to apply to the search. Valid filter keys are returned in the facet results
IncludeChildWebNodes
Applies to "webNodeId" set to true to include it's children in the search
IncludeTotalResultCount
Include the total result count in the response. Enabling this will have a negative impact on the performance.
Limit
The number of products returned in the response
Max 50
LoadFacets
Set to true to include facets in the response
Locale
Offset
The paging offset for the product results.
Max 100.000
PublicationCodes
Optional publications codes to filter products by
SearchText
The text to search by
Sorting
The sorting to apply. Defaults to relevance
Relevance, Description, Price, Ranking, ReleaseDate or CustomerRanking.
SortOrder
The sort order to apply. Defaults to Descending to match default sortOrder relevance
Descending or Ascending
StoreId
UseMultiTagFacets
Support multi-tag filtering. Enabling this will have a negative impact on the performance. (Requires ASPOS setting AzureSearch_Version to be set to 2)
WebNodeId
An optional web node to narrow down the search

WebNodesProductSearchResult

The result can contain facets which can be used to filter the search result. Some facet id's start with 'f_', the number that follows represents the id of an product field definition which can be retrieved through api/product-fields/definitions





Properties

Property
Notes
Validation
Count
The total number of products matching the request. (Requires includeTotalResultCount:true)
Facets
Facets matching the request. (Requires loadFacets:true)
Products
The products matching the request. (Requires limit>0)

WebNodesProductSuggestion





Properties

Property
Notes
Validation
FieldName
Text
The suggested text.

WebNodesProductSuggestRequest





Properties

Property
Notes
Validation
CustomerId
An optional customer id. Search results and prices may vary per customer
Expand
Expand options for products
FieldCodes
Filter for product fields in case the fields are expanded in this request
Fields
Field filter for products
FieldTags
Filter for product fields in case the fields are expanded in this request
IncludeChildWebNodes
Applies to "webNodeId" set to true to include it's children in the search
Locale
ProductsLimit
The number of products returned in the response. Retrieving (expanded) products will have a negative impact on the performance.
Between 0 and 10
PublicationCodes
Optional publications codes to filter products by
SearchText
The text to search by
StoreId
WebNodeId
An optional web node to narrow down the search

WebNodesProductSuggestResult





Properties

Property
Notes
Validation
Products
The products matching the request.
Suggestions
The suggestions matching the request.

WebLog

Add a record into the Weblog





Properties

Property
Notes
Validation
Button
Name of the button the user clicked
Maximum 255 characters
CustomerId
Must exist
LinkFrom
Url of webpage the user came from
Maximum 300 characters
ProductId
Must exist
SearchOnId
Additional id used in the searchrequest, i.e. the webNodeId
SearchResult
Summary of the search result, i.e. the productIds or the amount of results.
SearchText
Maximum 300 characters
SearchType
Type of Search. Currently only Product and ProductGroup are accepted
StoreId
Must exist
Token
Unique value per visitor
May not be empty and Maximum 255 characters

API-methods

POST api/web-logs

Add weblog

WebNodeRecords

Used to link webnodes to other resources, like products





Properties

Property
Notes
Validation
DetailType
Currently only Article is supported
ReadOnly
EndDate
Id
ReadOnly
Expandable
Product
ReadOnly
RelatedId
Product id if the detail type is Article
Required
Must be an existing product
Cannot be updated
SortOrder
StartDate
Must be before end date
Status
Active or NotActive
Expandable
WebNode
ReadOnly
WebNodeId
Required
Must be an existing web node
Cannot be updated

API-methods

GET api/web-node-records

Retrieve all webnode records

GET api/web-node-records/{id}

Retrieve a specific webnode record

POST api/web-node-records
Restricted access

Create a new record between a product and webnode

PATCH api/web-node-records/{id}
Restricted access

Update an existing webnode record

DELETE api/web-node-records/{id}
Restricted access

Delete an existing webnode record

WebPages

Webpages are pages in the CMS and contain routes and versions. Routes and Versions are language dependent





Properties

Property
Notes
Validation
ChangeAllowed
ChangeUrlAllowed
CreationDate
ReadOnly
CurrentVersion
The currently active version of the webpage
Description
Maximum of 300 characters
Id
ReadOnly
LastChangedGroupUserId
Required
Needs to be existing user
LastModifiedDate
ReadOnly
Expandable
Routes
StoreId
Needs to be existing store. Cannot be updated
StoreVersionAllowed
TemplateId
Required
Needs to be existing template
Expandable
Versions

API-methods

GET api/web-pages

Get webpages

GET api/web-pages/{id}

Get webpage with specific Id

GET api/web-pages/route/{route}

Get a specific webpage by its route

POST api/web-pages

Create new webpage

WebPage Routes

A route of a webpage is the URL under which it can be reached





Properties

Property
Notes
Validation
Id
ReadOnly
LanguageCode
one of the languagecodes: nl, en, de, fr. Cannot be updated
Url
Maximum of 300 characters
WebPageId
Must be existing webpage. Cannot be updated

API-methods

GET api/web-page-routes

Get routes for webpages

POST api/web-page-routes

Create route for webpage

WebPage Version

A version of a webpage contains the content published on the page in a certain time (past, future or present)





Properties

Property
Notes
Validation
ContentXml
Description
Maximum of 300 characters
HtmlMetaDescription
HtmlMetaKeywords
Id
ReadOnly
LanguageCode
one of the languagecodes: nl, en, de, fr. Cannot be updated
LastChangedGroupUserId
Needs to be existing user
PublishEndDate
PublishStartDate
StoreId
Needs to be existing store. Cannot be updated
Title
WebPageId
Needs to be existing webpage. Cannot be updated

API-methods

GET api/web-page-versions

Get versions for webpages

GET api/web-page-versions

Create new version for a webpage

WorkstationEvent





Properties

Property
Notes
Validation
ActionRequired
Content
CreationDate
DateTimeOut
Description
EventType
One of the specified event types
Expandable
HandledByGroupUser
HandledByGroupUserId
Id
LastModifiedDate
Notes
Priority
Processed
ProcessedDate
Expandable
ProcessedReasonCode
ProcessedReasonCodeId
ProcessingStartedDate
Expandable
ReasonCode
ReasonCodeId
Reference
RelatedEventId
RelatedUniqueEventId
Score
Status
Expandable
Store
StoreId
TimeoutInSeconds
Expandable
Transaction
TransactionId
UniqueEventId
Expandable
Workstation
WorkstationId

API-methods

GET api/workstation-events

Retrieve workstation events with given parameters.

GET api/workstation-events/statuses

Retrieve eventstatuses belonging to listname EventMessageStatus.

WorkstationEventType





Properties

Property
Notes
Validation
ActionRequired
Required
Expandable
AdditionalParameters
Code
One of the specified event types
Required
Description
Required
Between 1 and 60 characters
Id
ReadOnly
Memo
PictureLink
Required
Between 1 and 2048 characters
PopUpMessage
Required
Priority
Required
Score
Settings
Show
Required
StoreId
Required
Expandable
StoreSettings
TimeOutInSeconds

API-methods

GET api/workstation-event-types

Retrieve workstation eventtypes with given parameters. Max limit of 500 for non admins.

POST api/workstation-event-types
Restricted access

Create workstation eventtype with given parameters

PATCH api/workstation-event-types/{id}
Restricted access

Patch workstation eventtype with given parameters

GET api/workstation-event-types/code/{code}

Retrieve workstation eventtypes with given parameters, specified with Code

GET api/brands/{id}/store-settings

Retrieve the store level settings for a specific workstation eventtype.
Unlike other resources, a store-settings entry will not be returned at all if none of the requested fields is set.

PATCH api/brands/{id}/store-settings/{storeId}
Restricted access

Update the store settings for a specific workstation eventtype on a specific store

DELETE api/brands/{id}/store-settings/{storeId}
Restricted access

Delete the store settings for a specific workstation eventtype on a specific store. Retrieving workstation eventtype data will then fallback to upper level stores

WorkstationEventTypeAdditionalParameters

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteStoreSettingsStoreId
On PATCH: Will overwrite store settings with the same values on given store and all underlying stores. Only on the stores that already have store settings

WorkstationEventTypeStoreSettings

Store specific settings for workstation eventtype





Properties

Property
Notes
Validation
ActionRequired
AdditionalParameters
Cannot be retrieved
Priority
Score
Settings
Show
StoreId
TimeOutInSeconds
WorkstationEventTypeId
ReadOnly

WorkstationEventTypeStoreSettingsAdditionalParameters

Additional parameters which are used in POST/PATCH request





Properties

Property
Notes
Validation
OverwriteChildStores
On PATCH: Will overwrite store settings with the same values on given store and all underlying stores. Only on the stores that already have store settings

Workstations





Properties

Property
Notes
Validation
Code
Required
Maximum 50 character
CreationDate
Readonly
Description
Required
Maximum 40 characters
DeviceTypeCode
Attached to the POSType master table
DeviceTypeDescription
ReadOnly
EFTDeviceName
Readonly
EFTDevicePortName
Readonly
EFTDeviceSettings
Readonly
EFTDeviceType
Readonly
EFTTerminalCode
Readonly
FirstDynamicMenuId
Readonly
GenericSettings
Readonly
Id
Readonly
IsProcessed
Readonly
LastModifiedDate
Readonly
ReceiptFooterText
Readonly
ReceiptHeaderText
Readonly
ReceiptPrinterName
Readonly
ReceiptPrinterPortName
Readonly
ReceiptPrinterType
Readonly
StoreId
Required
Must exist
UseEFTDevice
Readonly
UseReceiptPrinter
Readonly

API-methods

POST api/workstations
Restricted access

Create a new workstation. Parameters not specified will be replaced by default values.

GET api/workstations
Restricted access

Get all the workstations for a specific store

GET api/workstations/{id}
Restricted access

Get a workstation by Id

GET api/workstations/code/{code}
Restricted access

Get workstation by Code