AgeCheck
Allows the performance of automatic age checks. At this time only H@nd is supported for these checks
Properties
ExternalId
Id of this transaction in the external system
ReadOnly
FromSCO
Indication that the request is comming from the SCO
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
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
FileName
Maximum 255 characters
LastModifiedDate
ReadOnly
Status
On POST: Defaults to Pending
Pending, Processing, Completed or Failed
Type
ScanStoreJobImport, BrandExport
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
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
Description
Required
Maximum 255 characters
DiscountAllowed
Store specific
On POST: Defaults to true
LastModifiedDate
ReadOnly
PreferredSupplierId
Store specific
Must be an existing supplier
PriceFactor
Store specific
0.01, 0.05, 0.1, 0.25, 0.5 or 1
StoreId
Must be an existing store
Cannot be updated
Translations
Cannot be retrieved
VisibleInLists
Store specific
On POST: Defaults to true
VisibleInWebshop
Store specific
API-methods
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
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
AdditionalParameters
Cannot be retrieved
BonusPointsFactorStartDate
DiscountAllowed
On POST: Defaults to true
PreferredSupplierId
Must be an existing supplier
PriceRounding
0.01, 0.05, 0.1, 0.25, 0.5 or 1
VisibleInLists
On POST: Defaults to true
BrandStoreSettingsAdditionalParameters
Additional parameters which are used in POST/PATCH request
Properties
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
LastModifiedDate
ReadOnly
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
LoyaltyRetailerId
The retailer id as configured in the ASPOS EVL service
Readonly
LoyaltyRetailerName
The retailer name as configured in the ASPOS EVL service
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
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
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
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.
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
DeliveryType
StockDefaultStore, StockExtraStore, StockMultipleStores or NoStock
CartCheckResponse
Properties
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
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
DiscountPercentage
Readonly
If multiple discounts are applied to a single line, the amounts per discount can be found here
ReadOnly
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
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
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.
CartLineDiscount
Client Credentials
Manage credentials used to connect with the API
Properties
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.
LastModifiedDate
ReadOnly
WebServiceClientType
Types: Administrator, Webshop, DataImporter
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
EstablishmentNumber
CocEstablishmentNumber in POST requests
LegalFormDescription
ReadOnly
PrimarySbiDescription
ReadOnly
SecondarySbiCode
ReadOnly
SecondarySbiDescription
ReadOnly
API-methods
POST api/company-info/FindCompany
Get Company information by Chamber Of Commerce number
Establishments
Properties
CorrespondenceCity
ReadOnly
CorrespondenceStreet
ReadOnly
EstablishmentCity
ReadOnly
EstablishmentNumber
ReadOnly
EstablishmentStreet
ReadOnly
IsMainEstablishment
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
API-methods
POST api/converters/ConvertToId
POST api/converters/ConvertToUid
Countries
Get country name and whether they are based in the EU
Properties
IsEU
Indicates whether a country is based within the EU
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
Code
The currency for which an exchange rate is defined.
Needs to be an ISO 4217 currency code and cannot be updated afterwards
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.
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
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
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: \ - _ . /
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
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
BlockedReasonCodeId
Only saved when IsBlocked is true
Must be an reasoncode of type 'CustomerCardBlocked'
CustomerId
Must be an existing customer on POST, ignored on PATCH
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.
Properties
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.
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
Code
Optional, Unique
Can't be updated. Maximum 100 characters
CustomerId
Must be an existing customer on POST, ignored on PATCH
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'
Initials
Required
Maximum 10 characters
Required based on store setting 'Custcont_InitialsReq'
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
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
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
BonusTurnOverFromStartContract
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
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
ActionTypeCode
Default set to none. Linked to 'Stamtabel' 'Actie type' in backoffice
ActionTypeDescription
ReadOnly
CustomerContactId
If given, must be valid contact of given Customer
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
LastModifiedDate
ReadOnly
Message
Required
Maximum 100 characters
NotificationExecutionDate
NotificationType
default is NoNotification
NoNotification, AbandonedCart, App, Birthday, Email, Newsletter, OfflineProductReview, Phone, ProductReview, SMS, Welcome
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
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
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
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
CustomerId
Must be an existing customer on POST, ignored on PATCH
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
Choices
Valid values if fieldType is 'DropDown'
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
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
DefaultVoucherAmount
Default amount a voucher is worth, used when creating a new voucher
DiscountPercentage
Default discountpercentage for customers within this group, if no other discount gives a cheaper result
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
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
OpenAmount
If more than 0 the customer should still pay the remaining amount
PerEmail
Invoice is sent per email to the customer
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
CustomerOrderId
Must be an existing CustomerOrderId
Key
Must be unique per CustomerOrderId
Can add / update all Keys except for 'VATCountryCode'
DateCollectedByCustomer, DateReceivedInstore, ExternalshippingID, ExternalShippingIDActive, PickUpStoreCode, TransactionOID, VATCountryCode
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
ConfiguratorProjectId
Readonly
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
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
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.
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
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.
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
AdditionalParameters
Only used when creating a new order
ReadOnly
AppointmentWithGroupUserId
Must be an existing groupuser from the same store or parent stores
BonusPointsProcessed
Represents if bonus points are applied to the card of customer
ReadOnly
CancelledGroupUserId
ReadOnly
CancelledReasonCodeId
ReadOnly
CouponIds
Used for calculating discounts
Must be existing productIds, see
FAQ for more info about coupons
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
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
ExternalAssignmentCode
Must be an existing external assignment
ExternalAssignmentDescription
ReadOnly
Must be existing group user
GroupUserId
Must be existing group user
InvoiceAddressId
Must be an existing address for the given customer
IpAddress
Can be used to log the customers ip address if your privacy statement allows this
Maximum 50 characters
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
LastModifiedByGroupUserId
Must be an existing group user
LastModifiedDate
Readonly
LastToPurchaseOrderDate
ReadOnly
MemoReportOptionAssignment
MemoReportOptionQuotation
Required
Between 0 and 500 lines
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
PreferredDeliveryDate
Must be today or in the future
PreferredDeliveryTimeFrom
Maximum 50 characters
PreferredDeliveryTimeTo
Maximum 50 characters
PrivateRemarksOnWorkOrder
Indicates the PrivateRemarks will be visible in the WorkOrder report.
ProcessedGroupUserId
ReadOnly
ProcessedLabelDate
ReadOnly
PurchaseOrderCreated
ReadOnly
Reference
Maximum 40 characters
ReturnOrderReasonCodeId
Reason for returning the order. This is a ReasonCode with Type CustomerOrderReturns.
Must be an existing reason code of type CustomerOrderReturns
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
StoreId
Can't be updated
Must be an existing store
ToDeliveryNoteGroupUserId
ReadOnly
ToDeliveryNoteLastDate
ReadOnly
ToPurchaseOrderGroupUserId
ReadOnly
TransportRemarks
Maximum 500 characters
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
SkipDiscountCalculation
On POST: Will skip discount calculation, any active discount will be ignored.
CustomerOrderCancel
CustomerOrderCreateStoreJobsFromPickingLinesRequest
Properties
IPAddress
Maximum 40 characters
LineRemark
Defaults to 'Klantorder pickregel' when null
CustomerOrderCreateStoreJobsFromPickingLinesResponse
CustomerOrderExtensions
Extensions for customer orders allow setting special properties like the ExternalShippingId for a order
Properties
CustomerOrderId
The Id of the customerOrder the extension belongs to. Filled automatically on POST
Must be existing CustomerOrder
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
AmountOfLabels
Max 25 labels allowed
OrderLines
Payments
PickingLines
Properties
PreviouslyDeliveredQuantity
Status
Open, Closed or Deleted
Repair options
Used for orders of type 'Repair'
Properties
BrandId
Must be an existing product brand
RepairProductId must be set
CustomerAdditionalPartsNote
CustomerComplaintDescription
CustomerReferenceID
Maximum 50 characters
DownPaymentAmount
Greater than or equal to 0
ExportID
Maximum 50 characters
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
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
RepairerReference
Maximum 50 characters
RepairerSupplierId
Must be an existing supplier
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
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
WarrantyCertificateID
Maximum 100 characters
TrackTrace
Track and Trace
Properties
Link
The link to the trackingpage
Customers
Customer are needed to login and create orders.
Properties
AdditionalParameters
Additional options like sending of the welcome mail through SendWelcomeEmail
AllowBonusPoints
Deprecated
Store specific
Will be set based on CustomerGroup-settings
Readonly
AutoSendReceipt
Automatically send receipt
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'
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
CustomerGroupId
Will get default value if left empty, storesetting 'DefaultCustomerGroup'
Must be an existing customer group
DefaultContactId
Must be an existing contact
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'
The fields of the customer on the current store
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
Initials
Maximum 10 characters
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
ParentCustomerId
Must be an existing customer
Password
Only used when creating a new customer. Cannot be retrieved.
Minimum 6 characters, maximum 50 characters
PriceListId
Store specific
Will get default value if left empty or 0, storesetting 'DefaultPriceList'
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.
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
FreeBalance
OpenOrderAmount - Balance
OpenOrderAmount
Sum of non delivered items on order lines for given customer. TotalInclTax / Quantity * BackorderQuantity
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
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
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
AllowBonusPoints
Deprecated
BicSwiftCode
Maximum 75 characters
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
DirectDebitPeriod
Usually in days
Maximum 75 characters
DiscountPercentage
Default discount percentage on all products if the product allows discount
Between 0 and 100
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
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
RepresentativeGroupUserId
Must be an existing group user or 0 to reset
StoreId
Inferred from the url or query parameter
ReadOnly, But Required when added on customer creation
TaxCodeId
Must be an existing tax code or 0 to set to default
CustomerStoreSettingsAdditionalParameters
Additional parameters which are used in POST/PATCH request
Properties
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
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
Daily payment totals
Properties
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
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
Status
Closed, Counted, Inactive or Open
Type
Bonuspoints, Cash, CustomerCount, InterStore, Invoice, Safe or Webshop
Cashregister
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
DeliveryState
One of Default, Invoice, Open
InvoiceMark
One of NotMarked, MultiInvoice, SingleInvoice
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
Destinations
Properties
City
Maximum 100 characters
CountryId
Indicates in which country the destination is located
IATA
The unique IATA code for the destination
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
API-methods
GET api/discount-records
Retrieve all discount records
GET api/discount-records/{id}
Retrieve a specific discount record by id.
Discounts
Properties
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
A product added to the receipt by this discount
EndDate
The last day this discount is active.
EndTime
The discount is only active until the EndTime of each day.
FlyerCode
'Folderkenmerk' in backoffice
HideOnWebshopPage
Can be used to show or hide something on you webshop, it does not affect the functionality of the discounts
IsActive
If true, discount can be applied on the current store when all other requirements are also met (start/end time, products, etc.)
Only when DiscountCategory is Product
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
The voucher needed to trigger this discount
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
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.
Dynamic Menus are used as menu's in the POS or SCO
Properties
TabStatus
One of Active, ActiveInheritable, Not active, Test
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
EVouchers
Properties
Code
The code of the voucher
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)
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
EscPosData
The EscPosData
PrintOrder
The print order
Receipt
The receipt itself
Expected Payments
Expected Payments are for guarding payments to be made.
Properties
Amount
The amount must be greater than 0 and cannot be greater than the result of TotalOrderAmount -/- TotalOrderPayment -/- TotalOpenExpectedPayments -/- TotaldeliveryNotes.
Id
Readonly. Expected payments can only be created for orders with type: Normal, PreOrderWebShop or Repair.
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
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.
FaqLinks
Define FAQ links and in what order they appear.
Properties
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
DateLastUpdated
Time of the last update of the flight data in the Schiphol API
DestinationIATA
The unique IATA code for the destination
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
LastModifiedDate
ReadOnly
ScheduleDate
The scheduled date of departure
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
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
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
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
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
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
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
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
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
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
IsActive
If left blank on POST, defaults to true
IsAutoLogin
Defaults to false
LanguageCode
If left blank on POST, defaults to NL
Valid options are: DE, EN, ES, FR, NL
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
SecurityGroupId
Required on POST
SocialSecurityNumber
Must be between 0 and 20 characters
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.
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
BackofficeSettingsJson
Settings used in our backoffice system
Must be valid Json
LastModifiedDate
ReadOnly
SettingsXml
Must be valid XML
Hibernated Transactions
Manage hibernated transactions
Properties
CreatedByGroupUserId
The Group user hibernated the transaction
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.
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
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.
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
Description
Optional. Length must be between 1 and 100 characters if set
LastModifiedDate
ReadOnly
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
Quantity
Between 0 and 999
SortOrder
Greater than or equal to 0
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
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
Quantity
Between 0 and 999
SortOrder
Greater than or equal to 0
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
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
Description
Required
Length between 0 and 100 characters
LastModifiedDate
ReadOnly
MaximumQuantity
Required
Between 0 and 999
MinimumQuantity
Required
Between 0 and 999
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
BackwardCompatibleLabelTypeId
PrinterType
ASCII, Blaster, Citizen, MobileReceiptPrinter, Normal, Unknown or Zdesigner
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
Expands by LabelLayoutId property
ReadOnly
Expands by LabelTypeId property
API-methods
GET api/label-types/{id}
Get a specific label type
GET api/label-types
Get a list of label types
Labels
Properties
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
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
ProductId
Required
Must be an existing product
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
TaggedByGroupUserId
Must be an existing group user
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
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
HouseNumber
Maximum 6 characters
HouseNumberExtension
Maximum 6 characters
PostalCode
Format: 'AAAA11'
LoggingBaseLine
Add a record into the LoggingBaseLine
Properties
BaseLineDuration
Greater than or equal to 0
CallDescription
Maximum 100 characters
Catalog
Maximum 100 characters
DataSource
Maximum 100 characters
Duration
Greater than or equal to 0
Reason
Maximum 1000 characters
SourceIP
Required
Maximum 50 characters
SourceServerName
Required
Maximum 100 characters
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
Bcc
Every record must be a valid email address
Cc
Every record must be a valid email address
CustomerContactId
Id is not saved, only used to retrieve data from specific contact
Must exist
FromEmail
Defaults to store email
Must be a valid email address
FromName
Defaults to store name
Max length of 100 characters
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
Code
Required
Maximum 50 characters.
Must be unique per TableName
Description
Required
Maximum 200 characters
ExternalCode
Maximum 45 characters
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
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
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
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
DiscountDescription
Readonly
DiscountPercentage
Readonly
DiscountReasonCodeId
Reason for discounting the line. This is a ReasonCode with Type Discount.
Must be an existing reason code of type Discount
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
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
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
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
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
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
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
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.
- Payment methods have a field 'Webshop', these can be filtered by using the tag 'webshop'
Properties
CustomerContactPinCodeRequired
Store specific
If true, a contacts pin must be validated before adding this payment to an order
GenericSettings
Contains generic settings for the payment method
IsDefault
Store specific
Default payment for the given store
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.
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
ScanCode
Format of the scancode of the coupon. An x means any number
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
Amount
Must be larger than 0
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
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
PaymentReference
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
AdditionalParameters
Additional parameters to create a batch from CustomerOrderPickingLine ids
FinishDate
Shows when the pick batch was fully handled
StartDate
Shows when the pick was originally put in progress
Status
Open, Closed, InProgress, Packing, PutToLight
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
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
ContainerType
Mastertable 'ContainerType'
ContainerTypeDescription
ReadOnly
Description
Maximum 100 characters
HeightInCms
Between 0 and 32767
LengthInCms
Between 0 and 32767
PictureLink
Maximum 2048 characters
ScanId
Required
Maximum 256 characters
Status
On POST: Defaults to Free
In use, Free
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
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
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
Code
Required
Must be unique. Maximum 200 characters
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
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
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
AdditionalParameters
Cannot be retrieved
Code
Required when creating a product field and must be unique for the ProductId/StoreId/LanguageCode. Cannot be updated
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
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
Choices
Valid values if fieldType is 'DropDown'
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
AttentionMemo
Maximum 100 characters
BonusPointsFactorStartDate
Code
Required
Maximum 15 characters.
Description
Maximum 25 characters
ProductLabelType
Geen Label, Prijslabels, Schaplabel, Beiden
PurchaseDiscountLedgerAccountId
RealizedTaxLedgerAccountId
RevaluationLedgerAccountId
SecondPurchaseLedgerAccountId
Type
Omzetgroep, Uitbetalingen or Uitgaven
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
AdditionalParameters
Cannot be retrieved
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
SortOrder
Greater than or equal to 0
TotalPriceExclTax
Between 0 and 1000000
TotalPriceInclTax
Between 0 and 1000000
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
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
OverwriteChildStores
Specifies whether values set by child stores should be overwritten or kept
ProductKitGroupStoreSettingsContract
These are values that a store can override.
Properties
AdditionalParameters
Cannot be retrieved
MaximumQuantity
Between 0 and 999
MinimumQuantity
Between 0 and 999
ProductKitGroupId
CreateOnly
SortOrder
Greater than or equal to 0
TotalPriceExclTax
Between 0 and 1000000
TotalPriceInclTax
Between 0 and 1000000
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
ProductKitChild
Properties
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
PriceInclTax
On POST: if useDefaults is true, defaults to product selling price
Must be greater than or equal to 0
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
Status
On POST: defaults to Active
Active or Inactive
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
FileName
Name of the attachment
MemoType
CashRegisterPopup, Composition, InternetMemo, ManufacturerInfo, ProductLabel or Usage
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
IsProcessed
Indicates if the record is processed. Processed records can not be changed anymore
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
ProductId
Can only be set on creation
Must be an existing Product
PurchaseDiscountPercentage
Status
Required
Either Open or Closed
StoreId
Can only be set on creation
Required
Must be an existing store
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
Content
The review itself, can contain html encoded characters
CustomerRating
Must range between 1 and 5
IsVisible
Default value is true
Language
Reviews are saved in a specific language
LastModifiedDate
ReadOnly
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
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
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
BrandId
Required based on store setting 'ProductBrandReq'
CategoryGroupId
Required based on store setting 'ProductCategoryReq'
CollectionCode
Mastertable 'ProductCollection'
CollectionDescription
ReadOnly
ColorCode
Mastertable 'Colors'
ColorDescription
ReadOnly
Content
Between 0 and 1000000
ContentType
Maximum 20 characters
DefaultLabelTypeId
Store specific
DefaultOrderQuantity
On POST: Defaults to 1
Must be between 0 and 1000000
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
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
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.
GroupId
Extra validation checks might occur based on group
HasActiveWebNodes
ReadOnly
Height
Between 0 and 1000000
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
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
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
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
PurchaseUnitFactor
On POST: defaults to 1
Between 0.001 and 1000000
ReceivingCheckType
Store specific
Default, Always, Sometimes, Never
SalesUnit
Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat or Zak
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'
State
Active, Expected, Inactive, Inactive-connected, OneShot, Uitlopend
StoreId
Cannot be updated
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
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
VariantCode
Used for matrix products
Maximum 30 characters
VariantSubCode
Maximum 30 characters
Weight
Between 0 and 1000000
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
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.
When AnswerType is Choice, the valid options are given with id and value.
QuestionDescription
ReadOnly
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
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
AmountExclTax
The discount amount (excl tax)
AmountInclTax
The discount amount (incl tax)
Description
The description as configured in the backoffice
Percentage
The discount as a percentage from the original price
PriceExclTax
The new product price. (excl tax)
PriceInclTax
The new product price. (incl tax)
Discounts
Images
MatrixChildProducts
If a product is of type 'MatrixProduct', it is a child of a MatrixProduct.
Properties
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
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
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.
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.
Quantity
The default quanity.
Product kit option group
A group of kit options.
Properties
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
AssortimentDescription
ReadOnly
PreferredProductSupplierId
PriceCodeDescription
ReadOnly
SellingPriceExclTax
ReadOnly
SellingPriceInclTax
ReadOnly
ScanCodes
SlimStock
Properties
Stock
Actual stock on given 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
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
DeliveriesPendingQuantity
Number of stock sold today on account
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
UpdateMinMax request
Properties
AllowSystemOverride
Defaults to false
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
ForceImmediateProcessing
If true, pricechange is immediately processed. Otherwise it will be done based on store settings 'AutoPriceChange'
StoreId
Must be an existing store
UpdateSource
Maximum 20 characterrs
UpdateStock request
Properties
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.
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
CustomerId
Required if Reference is empty.
Price
This will not affect the real price of the given product
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
Code
Required
Maximum 15 characters.
Must be unique
Description
Required
Maximum 40 characters
PreferredSupplierId
Store specific
ProductGroupId
Required
Cannot be updated
PurchaseDiscountLedgerAccountId
RealizedTaxLedgerAccountId
RevaluationLedgerAccountId
StoreId
On POST: Defaults to same storeId as product group
ReadOnly
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
DeliverableFromDate
Cannot be set later than DeliverableToDate
DeliverableToDate
Cannot be set earlier than DeliverableToDate
DepositProductId
Must be an existing Product
DesiredMargin
Store specific
DiscountPercentage
Store specific
Between 0 and 100
MinimumOrderQuantity
Store specific
Length beteween 0 and 100000
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
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
StoreId
Can only be set on creation
Required
Must be an existing Store
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
DeliveryPeriodInDays
Greater than or equal to 0
DesiredMargin
Greater than or equal to 0
DiscountPercentage
Between 0 and 100
MinimumOrderQuantity
Length between 0 and 100000
PurchasePrice
Length between 0 and 100000
ProjectRecord
ProjectRecord is used for records in a project. Think about articles or hours needed
Properties
Description
Maximum200 characters
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
Address1
Maximum 300 characters
Address2
Maximum 300 characters
Contact
Maximum 300 characters
EmailAddress
Maximum 300 characters
Name
Required
Maximum 200 characters
PhoneNumber
Maximum30 characters
StatusCode
Required
One of Offer, Order, PreOffer and Closed
Title
Required
Maximum length of 100 characters
API-methods
GET api/projects
Get all projects
Allows ordering on:
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
CalculationStartDate
Defaults to Now when not specified in POST
CreatedByGroupUserId
Defaults to UserId in Session when not specified in POST
PurchaseOrderType
Default, InterStore, MultistorePurchaseOrder, Pushorder, PreEntry, DiscountOrder, Urgent, Manual, NEXTDAYDELIVERY. Defaults to Default when not specified in POST
Status
Open or Deleted. Defaults to Open when not specified in POST
StoreId
Defaults to StoreId in Session when not specified in POST
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
Purchase Advices
Properties
AllowedExecutionDays
Collection of days where the Purchase Advice may be performed
DoNotCreateInterstorePurchaseOrder
Status
One of Active, NotActive or Deleted
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
DeliveryAddressCountryCode
DeliveryType
Mail or Package
KindCode
Linked to master table(stamtabel) 'Inkoopordersoort'
LastModifiedDate
Filterable
MarketingContributionPercentage
PaymentConditionCode
Linked to master table(stamtabel) 'Betaalconditie'
PaymentConditionDescription
ReadOnly
SelectionCode
Linked to master table(stamtabel) 'Inkooporder sel.code'
SelectionDescription
ReadOnly
Source
IMPORT, InterStore, Manual, ManualDCDistribution, ManualDCOverstock or PurchaseAdvice
State
AutoOrdered, Cancelled, Full received, Ordered, Partially received, PartiallyCancelled, Pending, PreOrder, Pre-Order, PreOrderOrdered or PurchaseAdvice
Type
Filterable. Default, DiscountOrder, InterStore, Manual, MultistorePurchaseOrder, NEXTDAYDELIVERY, PreEntry, Pushorder or Urgent
API-methods
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
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
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
ProductId
Required
Must be existing Product
PurchaseUnit
Must be one of Doos, Ds/om, KG, Liter, M2, Meter, Paar, Rol, Slof, Stuk, Vat, Zak
ReceivingId
Required
Must be exisiting receiving, Cannot be updated
ScanLine
Maximum of 30 characters
TaxCodeId
Uses Product TaxCode if left empty
Must be existing taxcode
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
BoxNumber
Maximum 30 characters
CountingDifference
ReadOnly
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
OrderedQuantity
On POST: Defaults to product quantity * factor
Cannot be updated
Required if product quantity not given.
ParentMatrixProductId
ReadOnly
ProductDescription
On POST: Defaults to product description
Maximum 60 characters
ProductId
Cannot be updated
Required
Must be an existing product
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
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
ReceivingCheckType
Default, Always, Never or Sometimes
ReceivingsCountingLineId
ReadOnly
ScanLine
Maximum 30 characters
SellingPrice
On POST: Defaults to product selling price
SupplierProductCode
On POST: Defaults to suppliers product code or product number
Maximum 25 characters
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
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
DistributionKeyId
Must be an existing distribution key
EntryNumber
Maximum 20 characters
InvoiceCode
Maximum 30 characters
LastModifiedDate
Filterable
OverwritePreferredSupplier
ProcessedGroupUserId
ReadOnly
PurchaseOrderId
Must be an existing purchase order
ReceivedDate
On POST: defaults to current date
Required
Between 1 and 500 lines
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
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
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
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
IPAddress
Maximum 40 characters
JobType
Valid values are: ReceivingPutAway
LineRemark
Defaults to 'Ontvangstregel' when null
ReceivingCreateStoreJobsResponse
Reports
Properties
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.
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
PickedQuantity
Total Sum of all the OrderLines' ToDeliveryQuantity that use the product.
ToPickQuantity
The OrderLines' Sum of BackOrderQuantity minus the Sum of ToDeliveryQuantity.
Scancodes
Properties
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
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
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
Type
The type of the response. One of: Product, Customer, Transaction, GroupUser or Giftcard
SecurityCall
Logging into the SecurityCall logs
Properties
GroupUserId
This value is overwritten when accessing this endpoint using user credentials
Must exist
Key
Maximum length of 500 characters
SecurityDoorCode
Defaults to the Webshop Log
Must exist
TableName
Maximum length of 50 characters
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
Code
Required
Must be an existing code
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
InventoryCheckType
One of CountAdvice, DifferenceCounting, EmptyShelves, NegativeCountAdvice, Nullcounting, PartialCounting
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
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
Stock mutations
Stock mutations are records containing info about stock changes
Properties
Type
One of: Sale, Purchase, CustomerOrder, Received, Correction, InterStoreSale, CustomerOrderSales, Loss, AutoTransferReturnStock, CustomerOrderSalesV2
API-methods
GET api/stock-mutations
Retrieve a list of stockmutations.
Allows ordering on:
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
Product is linked through the StoreGroupProduct
API-methods
/api/stock-count-differences
Get StockDifference based on the StockCount
StoreJobLines
Lines from the StoreJobs
Properties
IPAddress
Automatically set from authentication token
Maximum 40 characters
JobStatus
Required
One of the JobStatus values (Open, Pending, Processed, Finished, Closed or Deleted)
Location
Maximum 25 characters
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
CreatedByGroupUserId
Required
Must be existing GroupUser
CreatedByStoreId
Required
Must be existing StoreId, Cannot be updated
DocumentId
Maximum 10 characters
FinishedDate
Valid Sql Date
JobDocumentId
Maximum 10 characters
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)
SortOrder
Required
Must be Count or Display
SortOrderType
Required
Must be Description or Location
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
ReceivingId
Must be an existing receiving
FinishAndClose
Properties
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'
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
CoCNumber
Chamber of commerce number
CountryCode
ISO 3166 2-digit country code
LocationType
A1, A2, B1, B2, C1, C2
Status
Active, No longer active, Not yet active or TestStore. Only active stores can be used in most cases
Type
City shop, Shopping center, Village shop, Virtual, N'PickupStore
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
ParentGroupId
Id of the group above this group
VirtualStoreId
The Id of the virtual store (Sales organisation).
API-methods
GET api/stores/store-tree
Restricted access
Retrieve the whole storetree
Images
Location
The location specifies the coordinates of the store on the map.
Properties
DistanceInMeters
Only calculated if a from-location (distanceFromLatitude/distanceFromLongitude) is provided.
GlobalLocationNumber
Sometimes called International Location Number
Opening times
Properties
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
InheritedFromStoreId
Indicates the storeId that the property is inherited from.
Value
Freetext: between 1 and 250. YesNo: 'True' or 'False'. Dropdown: Must be an existing option.
StoreDay
Properties
ClosingTime
Format HH:mm:ss
Day
Day of the week; Monday, Tuesday, ..
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
GroupId
The group this store belongs to
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
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
DefaultPickupOrderWarehouseId
SupplierAddresses
API-methods
GET /api/supplier-addresses/{id}
Retrieve a specific supplier address
SupplierGroups
All suppliers are part of a supplier group
Properties
Code
Required
Maximum 5 characters
Description
Maximum 30 characters
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
ExportTransactions
Denotes whether this store's data should be included when exporting the supplier
OrderFileType
BMN, CB, DIP, Email, EmailAttachment, Intres, JDS, JDSWEB, LDPLUS, MITRA, ODBMS
PurchaseOrderType
Default, DiscountOrder, InterStore, Manual, MultistorePurchaseOrder, NEXTDAYDELIVERY, PreEntry, Pushorder, Urgent
ReceivingFromPurchaseOrderAllowed
Indicates whether creating a receiving for a purchase order from this supplier is allowed. Defaults to true
RequestProcessOrderTypeEnabled
API-methods
GET api/suppliers
Get all suppliers with optional filter for debtor codes
Supports paging.
Can be sorted by:
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
Changes in this expanded resource will NOT result in a updated product
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
Changes in this expanded resource will NOT result in a updated product
Changes in this expanded resource will NOT result in a updated product
DefaultScanCodeId
Store specific
Changes in this expanded resource will NOT result in a updated product
DiscountPrice
Store specific. Price used in From/For discount, this is NOT the calculated discount
Changes in this expanded resource will NOT result in a updated product
Changes in this expanded resource will NOT result in a updated product
Changes in this expanded resource will NOT result in a updated product
Changes in this expanded resource will NOT result in a updated product
Changes in this expanded resource will NOT result in a updated product
OrderFormulaDescription
ReadOnly
Changes in this expanded resource will NOT result in a updated product
PreferredProductSupplierId
PriceExclTax
Store specific
PriceInclTax
Store specific
Changes in this expanded resource will NOT result in a updated product
PurchasePrice
Store specific
PurchaseUnit
Store specific
Changes in this expanded resource will NOT result in a updated product
SyncProductStockInfo
The stock information per product, store and warehouse.
Properties
DeliveriesPendingQuantity
IsDeleted
If true all other properties except Id are empty
PurchaseOrderPendingQuantity
SyncWebNode
Properties
BigImageLink
Complete url to image
DisplayType
Menu, Icons or Hidden
IsDeleted
If true all other properties except Id are empty
SmallImageLink
Complete url to image
Status
Active or NotActive
SyncWebNodeRecord
WebNodeRecords are the connection between a webNode and a product
Properties
IsDeleted
If true all other properties except Id are empty
Status
Active or NotActive
SystemMasterDataLists
Properties
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
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
TaxNumbers
API-methods
POST api/tax-numbers/Validate
Restricted access
Validate a tax number.
TaxNumberValidationInfo
Properties
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
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
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
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
Language
Cannot be updated after creation
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
AdditionalParameters
Optional option to overwrite the child stores through OverwriteChildStores
Subject
Maximum of 300 characters
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
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
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
Code
Must be unique per transactionId
Only the following codes can be added or updated on an existing transaction: PickupQuantity
Cannot be updated
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
AmountExclTax
Total price of record
AmountInclTax
Total price of record
CustomerOrderLineId
Must be an Existing CustomerOrderLine and all given orderlines in 1 transaction needs to be from the same order
Description
Maximum 40 characters
DiscountAmount
If entered manually will be subtracted from PriceInclTax
KitGroupId
Id of the kitgroup this line belongs to
Either ProductKitId or KitGroupId is required for kitlines that you add yourself
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
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
ScanCode
Maximum 30 characters
SerialNumber
Maximum 50 characters
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
Code
Master table field code
Value
The value of the extension
Transactions
Properties
CashDrawerId
Must be an existing cash drawer for given store
CustomerCardId
Must be an existing customer card
CustomerId
Must be an existing customer
Date
Defaults to current date
GroupUserId
GroupUser that created this transaction
Must be an existing GroupUser
State
ReadOnly
Aborted, Bill, Commited, Fiatchecked, Hibernated, Hibernated_converted, Hibernated_from, Open_anonymous, Open_identified, Rolledback_manual, Rolledback_system, Transfered, Waitforfiat
StoreId
Must be an existing store
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
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
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
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
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
Value
Between 1 and 100.000 characters
TransactionPayments
Properties
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
SerialNumber
Can be used to store voucher code
TransactionReceipt
Properties
EscPosData
Raw esc-pos print data
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
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
CountryCode
Currently only FR is supported
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
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
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
CreatedByGroupUserId
Must be an existing GroupUser
FieldName
Required
Must be an existing property of the related type
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
Product to use for the shipment costs
The tiers for this transportcosts records. Consists of Min, Max and AmountExclTax
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
Action
Add, Update or Delete
CreatedBySource
On POST; Set to clientID if null
Maximum 100 characters
CustomerId
Only set when Type is CustomerMutations or CustomerSales or Customer
ReadOnly
ExternalID
Maximum 100 characters
ExternalIDType
On POST; if Product_Ean, relatedId will be set to productId based on given externalID
Maximum 100 characters
IsSent
Indicates if trigger is successfully sent to url in store-settings and received a 200OK response
ProcessedBySource
If status is set to processed, automatically set to clientID if null
Maximum 100 characters
SentCount
Indicates how many times the trigger is sent before succeeding
Status
Open, Processing, Processed, Error
StoreId
Cannot be updated
Tag
Maximum 100 characters
TransactionId
Only set when Type is Transaction
ReadOnly
Type
CustomerMutations, CustomerSales, Transaction, Customer, Product, Stock, Picklist, CustomerOrder, CustomerOrderUpdated, CustomerOrderCreated, DeliveryNote
Cannot be updated
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
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
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.
Printed
Default false, can only be set to true with PATCH method.
Shown
Default false, can only be set to true with PATCH method.
Status
Readonly, Active, InActive, Blocked, Redeemed or Closed
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
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.
API-methods
POST api/vouchers/{id}/Redeem
Redeems a vouchers.
VoucherTypes
Get details about the different types of vouchers
Properties
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
EndDate
Voucher activation date must be before this date
EndRange
Voucher code must be below this number
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
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
BigImageLink
Complete url to image
Maximum 200 characters
CategoryCode
Linked to stamtabel WebnodeCategory in backoffice
CategoryDescription
ReadOnly
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
HasProducts
Shows if the node has active links to products, child-nodes are not included.
InternalDescription
Maximum 40 characters
LinkedWebnodeId
Must be existing web node
ParentId
Must be existing web node
SeoDescription
Maximum 160 characters
SeoTitle
Maximum 70 characters
SmallImageLink
Complete url to image
Maximum 200 characters
SortOrderDetail
Maximum 100 characters
Status
Active or NotActive
API-methods
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
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
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
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
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
WebNodesProductSuggestRequest
Properties
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
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
WebNodeId
An optional web node to narrow down the search
WebNodesProductSuggestResult
Properties
Products
The products matching the request.
Suggestions
The suggestions matching the request.
WebLog
Add a record into the Weblog
Properties
Button
Name of the button the user clicked
Maximum 255 characters
LinkFrom
Url of webpage the user came from
Maximum 300 characters
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
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
DetailType
Currently only Article is supported
ReadOnly
RelatedId
Product id if the detail type is Article
Required Must be an existing product
Cannot be updated
StartDate
Must be before end date
Status
Active or NotActive
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
CurrentVersion
The currently active version of the webpage
Description
Maximum of 300 characters
LastChangedGroupUserId
Required
Needs to be existing user
LastModifiedDate
ReadOnly
StoreId
Needs to be existing store. Cannot be updated
TemplateId
Required
Needs to be existing template
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
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
Description
Maximum of 300 characters
LanguageCode
one of the languagecodes: nl, en, de, fr. Cannot be updated
LastChangedGroupUserId
Needs to be existing user
StoreId
Needs to be existing store. Cannot be updated
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
EventType
One of the specified event types
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
Code
One of the specified event types
Description
Required
Between 1 and 60 characters
PictureLink
Required
Between 1 and 2048 characters
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
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
AdditionalParameters
Cannot be retrieved
WorkstationEventTypeId
ReadOnly
WorkstationEventTypeStoreSettingsAdditionalParameters
Additional parameters which are used in POST/PATCH request
Properties
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
Code
Required
Maximum 50 character
Description
Required
Maximum 40 characters
DeviceTypeCode
Attached to the POSType master table
DeviceTypeDescription
ReadOnly
EFTDevicePortName
Readonly
EFTDeviceSettings
Readonly
FirstDynamicMenuId
Readonly
LastModifiedDate
Readonly
ReceiptFooterText
Readonly
ReceiptHeaderText
Readonly
ReceiptPrinterName
Readonly
ReceiptPrinterPortName
Readonly
ReceiptPrinterType
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