Errors ¶
500 - InternalServerErrorJsonException
410 - OutdatedVersionJsonException
501 - NotImplementedJsonException
404 - NotFoundJsonException
409 - VersionConflictJsonException
400 - InvalidETagFormatJsonException
401 - UnauthorizedJsonException
400 - MessageNotReadableJsonException
400 - HttpHeaderMissingJsonException
400 - RequestParameterMissingJsonException
400 - TypeMismatchJsonException
405 - RequestMethodNotSupportedJsonException
403 - ForbiddenJsonException
For instance if one seller is trying to access data of another seller.
Or seller is trying to reach data available for admins only.
Or trying to reach public data for non-public seller.
When trying to get user info, while the authentication is by seller role.
No additional details provided.
All possible error codes are listed below.
INSUFFICIENT_ACCESS_RIGHTS -
It is most used code, which covers cases when credentials is not sufficient to perform request
or, for example, on attempt to get non-public data.
ACTIVATION_CLOSED_ALREADY -
If activation in credentials is closed already.
I.e. it is in the CLOSED state.
ACTIVATION_STILL_ISSUED -
If activation in credentials is not activated.
I.e. it is in the ISSUED state.
ACTIVATION_NO_FEATURE -
If activation doesn't have required feature.
I.e. it is in the {@link com.srv4pos.server.api.activation.Feature} state.
SELLER_NOT_FOUND -
If there is credentials and seller with given country and corporate id is not registered.
If caught, you should register yourself on the server.
WRONG_ACTIVATION_PERIOD -
If either activation's period haven't started yet or has expired already.
WRONG_USERNAME_OR_PASSWORD -
If either username or password failed to pass authorization.
User should get "Please contact sales@srv4pos.com if this error appears longer than 24h".
AUTHORIZATION_DATA_IS_NOT_VALID -
When auth data doesn't pass verification. For example, if username is empty.
INCOMPATIBILITY_OF_SESSION_ID -
When passed session id hasn't passed verification.
CU_ARE_NOT_MANAGEABLE_BY_SVA -
When software vendor isn't able to manage CU.
REGISTRATION_IS_NOT_THINKASSAN -
When used registration is not thinkassan but needs to be.
EMAIL_IS_NOT_FREE -
When attempt to send a free email on non-free address.
SELLER_IS_NOT_PUBLIC -
When requested seller is not public.
OLD_PASSWORD_IS_INCORRECT -
When verification on old password failed during password change operation.
503 - ServiceUnavailableJsonException
All possible error codes are listed below.
SERVER_IS_DOWN -
When server is down or under maintenance.
REQUIRES_SETUP -
When local server is not ready yet.
413 - RequestEntityTooLargeJsonException
400 - NonUniqueJsonException
404 - ReferenceNotFoundJsonException
409 - InconsistentDataJsonException
All possible error codes are listed below.
SV_MISMATCH_IN_APP_DESC_AND_CU - Occurs when references to software vendor in application description and control unit don't match.
VALID_FROM_AND_VALID_TO_INCONSISTENCY - Occurs when some inconsistency was detected during 'ValidFrom' or 'ValidTo' validation.
ACTIVATION_CODE_WRONG_LENGTH - Occurs during activation process when activation code is tested.
ACTIVATION_CODE_ALREADY_EXISTS - Occurs during activation process when passed activation has its signature already.
ACTIVATION_STATUS_IS_NOT_MODIFIABLE_BY_PUT - Occurs in case of attempting to modify activation status by 'PUT' http method.
QUERY_PARAM_CANT_BE_NEGATIVE - Occurs if passed query parameter is negative, but positive of zero value is expected.
SELLER_HAS_NOT_REGISTRATION - Occurs when passed by query param cash register name doesn't belong to the passed seller.
SELLER_SHOULD_BE_PROVIDED_FOR_CR - Occurs when cash register name passed as query param without specified seller.
SERVER_IS_OVERLOADED -
Occurs when retrieving data bulk is too large. It signals to specify maxResults param to not greater that some limit.
IDENTIFIER_LENGTH_VIOLATION - Occurs when passed identifier (for instance, seller identifier) doesn't fit into length requirements.
SERVER_CANT_BE_REMOVED - Occurs in case of attempting to remove current working server.
URL_AND_BODY_IDENTIFIERS_MISMATCH -
Occurs when identifier in URL and body is not the same. Commonly, it is used to forbid changing identifier by PUT.
LOCAL_AND_SERVER_VERSIONS_INCONSISTENCY - Occurs when passed version is more then server's one.
WORKING_WITH_CU_IS_NOT_SUPPORTED_BY_APP - Occurs when application without ability to work with control units attempts to send a kd.
PRODUCTION_NUMBER_AND_CONNECTION_MISMATCH - Occurs during connection to activation process when connection production number is not equal with installation.
PRODUCTION_NUMBER_AND_DEVICE_ID_MISMATCH - Occurs during ordering an activation. Indicates that passed production number doesn't belong to device.
REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION - Occurs during ordering an activation. Indicates that registration already exists for the same seller and installation.
ACTIVATION_APPLICATION_PACKAGE_MUST_BE_NULL_OR_EQUAL - Occurs during ordering an activation. ApplicationPackage must be null or equal to applicationPackage for installation from
database.
ACTIVATION_PRODUCTION_NUMBER_SHOULD_BE_NULL - Occurs during ordering an activation. Production number should be null.
ACTIVATION_PRODUCTION_NUMBER_SHOULD_BE_NULL_OR_EQUAL - Occurs during ordering an activation. Production number should be null or equal to production number from database.
ACTIVATION_MUST_HAVE_INSTALLATION_OR_ACTIVATION_CODE -
Occurs during creating installation, when we cannot find a installation by a seller and a registration
(registration can be found by CashRegisterName or ProductionNumber) and ConnectionCode is empty
VALID_FROM_AND_VALID_TO_INCONSISTENCY - Occurs when some inconsistency was detected during 'ValidFrom' or 'ValidTo' validation.
REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION - Occurs during ordering an activation. Indicates that registration already exists for the same seller and installation.
SV_MISMATCH_IN_APP_DESC_AND_CU - Occurs when references to software vendor in application description and control unit don't match.
REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION - Occurs during ordering an activation. Indicates that registration already exists for the same seller and installation.
ACTIVATION_APPLICATION_PACKAGE_MUST_BE_NULL_OR_EQUAL - Occurs during ordering an activation. ApplicationPackage must be null or equal to applicationPackage for installation from
database.
ACTIVATION_PRODUCTION_NUMBER_SHOULD_BE_NULL - Occurs during ordering an activation. Production number should be null.
ACTIVATION_PRODUCTION_NUMBER_SHOULD_BE_NULL_OR_EQUAL - Occurs during ordering an activation. Production number should be null or equal to production number from database.
ACTIVATION_MUST_HAVE_INSTALLATION_OR_ACTIVATION_CODE -
Occurs during creating installation, when we cannot find a installation by a seller and a registration
(registration can be found by CashRegisterName or ProductionNumber) and ConnectionCode is empty
422 - UnprocessableEntityJsonException
All possible error codes are listed below.
TREASURER_IS_JOINED_TO_USER_ALREADY -
Occurs on attempt to join treasurer which is joined already.
Need to disjoin treasurer from user at first.
USER_HAS_TREASURER_WITH_SAME_SELLER_ID_ALREADY - Occurs on attempt to join treasurer, but user has treasurer with same seller id already.
TREASURER_IS_NOT_JOINED_TO_USER -
Occurs on disjoin treasurer.
Indicates that treasurer is not joined to any user and disjoin doesn't make any sense.
COMPANY_NAME_MUST_BE_SET_IF_NO_SELLER - Occurs if both passed seller wasn't found and company name wasn't set.
CU_LOCATION_MUST_BE_SET - Occurs on attempt to set control unit without geolocation info specified.
INSTALLATION_IS_OUT_OF_DATE -
Indicates that passed production number is out of date with device since another instance of application was installed already.
Reinstall of application is suggested.
CU_IS_MISSING_FOR_ACTIVATION - Indicates that control unit should be set if application is working with control unit
AUTO_ACTIVATE_IS_NOT_POSSIBLE_ON_NEW_CU -
Occurs during ordering an activation.
Indicates the attempt to enable auto-activation upon not yet registered control unit.
PRODUCTION_NUMBER_AND_DEVICE_ID_MISMATCH -
Occurs during ordering an activation. Indicates that passed production number doesn't belong to device.
Reinstall of application is suggested.
APPLICATION_PACKAGES_MISMATCH -
Occurs during ordering an activation.
Indicates that passed application package in the request body and another one identified by production number are not the same.
APP_DESC_HAS_REFERENCED_DATA - Occurs on attempt to remove application description which is referenced in another entities.
SOFTWARE_VENDOR_HAS_REFERENCED_DATA -
Occurs on attempt to remove software vendor which is referenced in another entities.
SOFTWARE_VENDOR_IS_MISSING - Occurs on attempt to create/edit user with ROLE_SOFTWARE_VENDOR_ADMIN.
PROHIBITED_ORDER_STATUS_CHANGE - Occurs on attempt to change status of order which breaks conceived logic.
CU_HAS_REFERENCED_DATA -
Occurs on attempt to delete the control unit which has referenced data.
DAY_IS_CLOSED -
Occurs when current day is closed.
DAY_IS_NOT_CLOSED -
Occurs when current day isn't closed.
RECEIPT_IS_PRINTED_ALREADY -
Occurs when current receipt is printed already.
RECEIPT_IS_NOT_PRINTED -
Occurs when current receipt is not printed yet.
REPORT_IS_PRINTED_ALREADY -
Occurs when report is printed already.
REPORT_IS_NOT_PRINTED -
Occurs when report is not printed yet.
ACTIVATION_IS_CLOSED_ALREADY -
Occurs when activation is closed already.
ACTIVATION_IS_ACTIVE_ALREADY -
Occurs when activation is active already.
ACTIVATION_IS_WORKING_ALREADY -
Occurs when activation is working already.
ORDER_ALREADY_HAS_PRECEPT -
Occurs when new precept is creating with order that already has precept.
SELLER_MUST_HAVE_CURRENCY -
Occurs when currency is necessary for make payment and seller doesn't have it.
CONTROL_UNIT_IS_CONNECTED_ALREADY -
Control unit is connected to SV already.
CONTROL_UNIT_IS_DISCONNECTED_ALREADY -
Control unit is disconnected from SV already.
LATEST_SELLER_CAN_NOT_BE_DELETED -
Can not delete the latest seller.
DEVICE_IS_ATTACHED_TO_NON_MULTI_TERMINAL -
Device is attached to not multi user terminal.
DEVICE_IS_ATTACHED -
Device is attached to terminal.
DEVICE_CANNOT_BE_DELETED -
Device cannot be deleted until force deleting terminals which have attaching and detaching of this device.
CONFLICT_DATES -
Specified date has conflict with current data.
DEVICE_SHOULD_BE_DETACHED -
Device should be detached from terminal.
DEVICE_IS_NOT_AVAILABLE -
Device is not available.
NEW_DEVICE_SHOULD_BE_SPECIFIED -
New device should be specified.
CU_LOCATION_MUST_BE_SET - Occurs on attempt to set control unit without geolocation info specified.
CU_IS_MISSING_FOR_ACTIVATION - Indicates that control unit should be set if application is working with control unit
INSTALLATION_IS_OUT_OF_DATE -
Indicates that passed production number is out of date with device since another instance of application was installed already.
Reinstall of application is suggested.
400 - ValueNotValidJsonException
All possible error codes are listed below.
SHOULD_NOT_BE_NULL - Occurs if non-null constraint violated.
SHOULD_MATCH_PATTERN -
Occurs if regex violated.
See params in details by keys 'actualValue' and 'pattern'.
SIZE_SHOULD_BE_EQUAL_EXACTLY -
Says that size of the field in characters should be equal to limiting number.
See params in details 'actualValue', 'sizeMin' and 'sizeMax'.
SIZE_SHOULD_BE_LESS_THEN -
Says that size of the field in characters should be less then limiting number.
See params in details by keys 'actualValue', 'sizeMin' and 'sizeMax'.
SIZE_SHOULD_BE_MORE_THEN -
Says that size of the field in characters should be more or equal then limiting number.
See params in details by keys 'actualValue', 'sizeMin' and 'sizeMax'.
SIZE_SHOULD_BE_IN_RANGE -
Says that size of the field in characters should be in some range.
See params in details by keys actualValue' and 'pattern'.
VALUE_SHOULD_BE_GREATER_THEN -
Says that numerical value should be greater or equal then some limiting value.
See params in details by keys 'actualValue' and 'valueMin'.
VALUE_SHOULD_BE_LESS_THEN -
Says that numerical value should be less or equal then some limiting value.
See params in details by keys 'actualValue' and 'valueMax'.
VALUE_SHOULD_NOT_BE_NEGATIVE -
Says that value should be positive.
See params in details by keys 'actualValue' and 'valueMin'.
SHOULD_MATCH_CORPORATE_ID_VALIDATION_SWEDISH - Says that seller's corporate id failed to pass swedish validation.
SHOULD_MATCH_CORPORATE_ID_VALIDATION_LUHN - Says that seller's corporate id failed to pass Luhn-algorithm validation.
SHOULD_BE_BASE64_ENCODED - Says that value can't be decoded from base64 format.
MAX_UPLOAD_SIZE_EXCEEDED - Says that max uploading file size is exceeded.
SHOULD_BE_CONSISTENT_WITH_ANOTHER_FIELD - Says that value of field related to value of another field.
SHOULD_MATCH_CORPORATE_ID_VALIDATION_SWEDISH - Says that seller's corporate id failed to pass swedish validation.
500 - ControlUnitReceiptJsonException
The name is one of the following:
500 - ControlUnitUnavailableJsonException
500 - ControlUnitCommunicationJsonException
Types ¶
identifierType
corporateIdType
sellerIdType
productionNumberType
deviceIdType
applicationPackageType
printType
controlUnitLocationType
countryType
cashRegisterNameType
roleType
activationStatusType
One of the following values: 'ISSUED' (
imageVersionType
One of the following values: 'current', 'version'.
sellerFieldsType
One of the following values: 'COUNTRY', 'NAME'.
ticketCategoryType
One of the following values: 'CONTROL_UNIT_BROKEN', 'ACTIVATION_ISSUED', 'CONTROL_UNIT_ADDRESS_CHANGED'.
ticketStatusType
One of the following values: 'OPEN', 'CLOSED'.
salesUnitType
One of the following values: 'Piece', 'Price', 'Kilogram', 'Hektogram', 'Meters', 'Centimeters', 'Hours', 'Minutes'.
changeBalanceActionType
One of the following values: 'DEPOSIT', 'WITHDRAWAL'.
deviceFormFactorType
One of the following values: 'PHONE', 'TABLET_SMALL', 'TABLET_BIG'.
saleStateType
One of the following values: 'Open', 'Paid', 'Cancelled', 'Complete'.
deliveryType
One of the following values: 'Display', 'Print', 'SMS', 'Email', 'Discard', 'Journal'.
paymentType
One of the following values: 'Cash', 'EmvStandalone', 'WyWallet', 'PayEx', 'SEQR', 'EmvIntegrated', 'ClosePayment'.
paymentStateType
One of the following values: 'SENDING', 'SENDING_FAILED', 'PENDING', 'APPROVED', 'REJECTED', 'PAUSED', 'CANCELLED', 'CHARGE_FAILED', 'CHARGE_UNKNOWN'.
keyActionType
One of the following values: 'Product', 'SaleItemsView', 'POSSaleItemsView', 'Camera', 'InitiateReturn', 'InitSaleCash', 'InitSaleCard', 'InitSaleAirpay', 'InitSaleSEQR', 'InitSaleIZettle', 'InitSaleWyWallet', 'InitSalePayex', 'SubKeyboard', 'Numeric1', 'Numeric2', 'Numeric3', 'Numeric4', 'Numeric5', 'Numeric6', 'Numeric7', 'Numeric8', 'Numeric9', 'Numeric0', 'Numeric00', 'CurrencyUnit', 'ProductUnit', 'NumericReset', 'NumericDot', 'NumericBackspace', 'NumericIndicator', 'PercentDiscount', 'CurrencyDiscount', 'SendOrder', 'GetOrders', 'SubtotalIndicator', 'ProductsSearchView', 'GroupsProductsView', 'GroupsProductsTextView', 'TablesProductsView', 'TablesProductsTextView', 'NetworkIndicator', 'PrintProforma', 'SalesInOperation'.
activationFeatureType
One of the following values: 'VOUCHERS', 'SEQR', 'WYWALLET', 'PAYEX', 'CLOSEPAYMENT', 'AIRPAY', 'SUPPORT', 'SYNCHRONIZATION', 'IZETTLE', 'CONTROL_UNIT', 'COUPONS', 'SKATTERVERKET'.
autoActivationConditionType
currencyType
One of the following values: 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BWP', 'BYR', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GGP', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'IMP', 'INR', 'IQD', 'IRR', 'ISK', 'JEP', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PRB', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STD', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMK', 'ZWL'.
corporateIdValidationMethodType
One of the following values: 'NONE', 'VALIDATE_SWEDISH'.
userRoleType
One of the following values: 'ROLE_HYPER_ADMIN', 'ROLE_SOFTWARE_VENDOR', 'ROLE_REGULAR_USER'.
mailEncryptionType
One of the following values: 'TLS' (
InconsistentDataErrorType
UnprocessableEntityErrorType
ValueNotValidErrorType
ForbiddenErrorType
ServiceUnavailableErrorType
PictureReportErrorType
orderPaymentStatus
One of the following values: 'NEW' (
dateGroupingUnit
One of the following values: 'HOUR' (
preceptStatusType
One of the following values: 'NEW' (
dayOfWeek
One of the following values: 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'.
InconsistentDataErrorType
registrationStatusType
applicationNameAndVersionType
UnprocessableEntityErrorType
ValueNotValidErrorType
GET /v45/auth/handshake ¶
Request
Response
Errors
403 ForbiddenJsonExceptionSee there: SELLER_NOT_FOUND .
GET /v45/auth/user ¶
Request
Response
{/*
'username': 'username', //
'email': 'mail@username.com', //
'role': 'ROLE_SOFTWARE_VENDOR_ADMIN', // roleType. May NOT be null.
'softwareVendor': null //
}, // A complex object.
'connectedSellers': [ {/*
'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se' // countryType. May NOT be null.
} ] // List of objects.
}
Errors
403 ForbiddenJsonExceptionSee there: INSUFFICIENT_ACCESS_RIGHTS, WRONG_USERNAME_OR_PASSWORD .
POST /v45/activations-advanced ¶
Seller for the activation is identified by country and corporateId.
Installation:
- can be found as via registration (seller and cash register name); production number should be null or equal, application package should be null or equal
- can be found as via production number; application package should be null or equal
- can be null, if activation's application is ThinKassan; production number should be null
- can be null, if installation will be connected to this activation via connectionCode later
Registration will be found or created by seller and installation. Note. If there is a Swedish application, ValueNotValidJsonException#SHOULD_MATCH_CORPORATE_ID_VALIDATION_SWEDISH for invalid corporate ID will be thrown.
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'cashRegisterName': 'Cash1', // cashRegisterNameType. May NOT be null.
'validFrom': new Date().setHours(0,0,0,0), //
'validTo': new Date(new Date().getTime()+31536000000).setHours(0,0,0,0), //
'features': [], //
'comment': '', //
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, //
'controlUnitSerial': null, //
'controlUnitLocation': 'DEVICE', //
'controlUnitGeolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
}, //
'registrationGeolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
}, //
'applicationPackage': 'com.pos4mobile', // applicationPackageType. May be null.
'productionNumber': null, // productionNumberType. May be null.
'installationCreationInfo': { 'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {}, //
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, //
'connectionCode': null, //
'applicationNameAndVersion': 'Mobilkassan SE 1.2' // applicationNameAndVersionType. May NOT be null.
}
Response
{ 'apiKey': '-:s854kfsdgfwqei32445u4ry9efh2o398y1r2y3hr', //
'productionNumber': 'PM22500000000000000061191', // productionNumberType. May NOT be null.
'activationId': 8071436, //
'address': '', //
'zip': '', //
'city': '', //
'phone': '' //
}
Errors
404 ReferenceNotFoundJsonException
See there: VALID_FROM_AND_VALID_TO_INCONSISTENCY, REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION, SV_MISMATCH_IN_APP_DESC_AND_CU, REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION, ACTIVATION_APPLICATION_PACKAGE_MUST_BE_NULL_OR_EQUAL, ACTIVATION_PRODUCTION_NUMBER_SHOULD_BE_NULL, ACTIVATION_PRODUCTION_NUMBER_SHOULD_BE_NULL_OR_EQUAL, ACTIVATION_MUST_HAVE_INSTALLATION_OR_ACTIVATION_CODE .
422 UnprocessableEntityJsonExceptionSee there: CU_LOCATION_MUST_BE_SET, CU_IS_MISSING_FOR_ACTIVATION, INSTALLATION_IS_OUT_OF_DATE .
400 ValueNotValidJsonExceptionSee there: SHOULD_MATCH_CORPORATE_ID_VALIDATION_SWEDISH .
POST /v45/activations-advanced ¶
Seller and/or installation will be created, if it's needed.
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'cashRegisterName': 'Cash1', // cashRegisterNameType. May NOT be null.
'applicationPackage': 'com.pos4mobile', // applicationPackageType. May be null.
'features': [], //
'validFrom': new Date().setHours(0,0,0,0), //
'validTo': new Date(new Date().getTime()+31536000000).setHours(0,0,0,0), //
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, //
'comment': '', //
'controlUnitSerial': null, //
'controlUnitLocation': 'DEVICE', //
'controlUnitGeolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
}, //
'installationCreationInfo': { 'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {}, //
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, //
'applicationNameAndVersion': 'Mobilkassan SE 1.2' // applicationNameAndVersionType. May NOT be null.
}
Response
{ 'apiKey': '-:s854kfsdgfwqei32445u4ry9efh2o398y1r2y3hr', //
'productionNumber': 'PM22500000000000000061191', // productionNumberType. May NOT be null.
'activationId': 8071436, //
'address': '', //
'zip': '', //
'city': '', //
'phone': '' //
}
Errors
404 ReferenceNotFoundJsonException
See there: VALID_FROM_AND_VALID_TO_INCONSISTENCY, REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION, SV_MISMATCH_IN_APP_DESC_AND_CU .
422 UnprocessableEntityJsonExceptionSee there: CU_LOCATION_MUST_BE_SET, CU_IS_MISSING_FOR_ACTIVATION .
POST /v45/activations-advanced ¶
Seller and/or installation will be created, if it's needed.
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'cashRegisterName': 'Cash1', // cashRegisterNameType. May NOT be null.
'applicationPackage': 'com.pos4mobile', //
'features': [], //
'validFrom': new Date().setHours(0,0,0,0), //
'validTo': new Date(new Date().getTime()+31536000000).setHours(0,0,0,0), //
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, //
'comment': '', //
'installationCreationInfo': { 'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {}, //
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, //
'applicationNameAndVersion': 'Mobilkassan SE 1.2' // applicationNameAndVersionType. May NOT be null.
}
Response
{ 'apiKey': '-:s854kfsdgfwqei32445u4ry9efh2o398y1r2y3hr', //
'productionNumber': 'PM22500000000000000061191', // productionNumberType. May NOT be null.
'activationId': 8071436, //
'address': '', //
'zip': '', //
'city': '', //
'phone': '' //
}
Errors
404 ReferenceNotFoundJsonException
See there: VALID_FROM_AND_VALID_TO_INCONSISTENCY, REGISTRATION_EXISTS_FOR_SELLER_AND_INSTALLATION .
POST /v45/activations-advanced ¶
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'cashRegisterName': 'Cash1', // cashRegisterNameType. May NOT be null.
'features': [], //
'validFrom': new Date().setHours(0,0,0,0), //
'validTo': new Date(new Date().getTime()+31536000000).setHours(0,0,0,0), //
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, //
'comment': '', //
'controlUnitSerial': null, //
'controlUnitLocation': 'DEVICE', //
'controlUnitGeolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
} //
}
Response
{ 'apiKey': '-:s854kfsdgfwqei32445u4ry9efh2o398y1r2y3hr', //
'productionNumber': 'PM22500000000000000061191', // productionNumberType. May NOT be null.
'activationId': 8071436, //
'address': '', //
'zip': '', //
'city': '', //
'phone': '' //
}
Errors
404 ReferenceNotFoundJsonException
See there: VALID_FROM_AND_VALID_TO_INCONSISTENCY, SV_MISMATCH_IN_APP_DESC_AND_CU .
422 UnprocessableEntityJsonExceptionSee there: CU_LOCATION_MUST_BE_SET, CU_IS_MISSING_FOR_ACTIVATION, INSTALLATION_IS_OUT_OF_DATE .
POST /v45/activations-advanced ¶
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'cashRegisterName': 'Cash1', // cashRegisterNameType. May NOT be null.
'features': [], //
'validFrom': new Date().setHours(0,0,0,0), //
'validTo': new Date(new Date().getTime()+31536000000).setHours(0,0,0,0), //
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, //
'comment': '' //
}
Response
{ 'apiKey': '-:s854kfsdgfwqei32445u4ry9efh2o398y1r2y3hr', //
'productionNumber': 'PM22500000000000000061191', // productionNumberType. May NOT be null.
'activationId': 8071436, //
'address': '', //
'zip': '', //
'city': '', //
'phone': '' //
}
Errors
404 ReferenceNotFoundJsonException
See there: VALID_FROM_AND_VALID_TO_INCONSISTENCY .
422 UnprocessableEntityJsonExceptionSee there: INSTALLATION_IS_OUT_OF_DATE .
POST /v45/noauth/activations/cash-register-name/existance ¶
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'cashRegisterName': 'Cash1' // cashRegisterNameType. May NOT be null.
}
Response
{ 'exists': false //
}
Errors
400 NonUniqueJsonException
POST /v45/activations/activation-code ¶
Request
Response
{ 'activationInfoVersion': 2, //
'activationDescriptorInfo': 'TODO show json here', //
'signature': 'TODO show signature here', //
'publicKeyFileName': 'file.pc' //
}
Errors
403 ForbiddenJsonExceptionSee there: ACTIVATION_STILL_ISSUED, WRONG_USERNAME_OR_PASSWORD .
POST /v45/activations/connection ¶
Request
'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {'KEY1':'VALUE1', 'KEY2':'VALUE2'}, // A complex object. May NOT be null.
'applicationPackage': 'package', // applicationPackageType. May NOT be null.
'productionNumber': 'TEST100000000000000000081', // productionNumberType.
'registrationDate': 45672345, // Date: amount of milliseconds since UNIX epoch.
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, //
'activationCode': '123456789' // String. Minimum 4 characters. Maximum 9 characters. May NOT be null.
}
Response
{ 'apiKey': '', //
'productionNumber': '', // productionNumberType. May NOT be null.
'activationId': , //
'address': '', //
'zip': '', //
'city': '', //
'phone': '' //
}
Errors
404 ReferenceNotFoundJsonException
See there: ACTIVATION_CODE_WRONG_LENGTH, PRODUCTION_NUMBER_AND_CONNECTION_MISMATCH, PRODUCTION_NUMBER_AND_DEVICE_ID_MISMATCH .
422 UnprocessableEntityJsonExceptionSee there: APPLICATION_PACKAGES_MISMATCH .
GET /v45/sellers/{sellerId} ¶
sellerId |
|
Request
Response
{ 'corporateId': '9876543217', // corporateIdType. May NOT be null.
'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'publicAccess': true, // Boolean. May NOT be null.
'description': 'description', // String. Maximum 1024 characters. May be null.
'city': 'Koenig', // String. Maximum 255 characters. May be null.
'workHours': '24', // String. Maximum 255 characters. May be null.
'workHoursWeek': { 'MONDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'TUESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'WEDNESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'THURSDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'FRIDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SATURDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SUNDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
} // A complex object. May be null.
}, // A complex object. May NOT be null.
'address': 'Address 1', // String. Maximum 500 characters. May be null.
'phone': '89814532074', // String. Maximum 255 characters. May be null.
'custom': 'some text', // String. Maximum 65535 characters. May be null.
'currency': 'SEK', // currencyType. May be null.
'masterPassword': '9999', // String. Minimum 1 characters. Maximum 64 characters. May be null.
'protectedHeaders': 'header1;header2;', // String. Minimum 1 characters. Maximum 1024 characters. May be null.
'zip': '' // String. Maximum 12 characters. May be null.
}
PUT /v45/sellers/{sellerId} ¶
sellerId |
|
Request
'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'publicAccess': true, // Boolean. May NOT be null.
'description': 'description', // String. Maximum 1024 characters. May be null.
'city': 'Koenig', // String. Maximum 255 characters. May be null.
'workHours': '24', // String. Maximum 255 characters. May be null.
'workHoursWeek': { 'MONDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'TUESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'WEDNESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'THURSDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'FRIDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SATURDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SUNDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
} // A complex object. May be null.
}, // A complex object. May NOT be null.
'address': 'Address 1', // String. Maximum 500 characters. May be null.
'phone': '89814532074', // String. Maximum 255 characters. May be null.
'custom': 'some text', // String. Maximum 65535 characters. May be null.
'currency': 'SEK', // currencyType. May be null.
'masterPassword': '9999', // String. Minimum 1 characters. Maximum 64 characters. May be null.
'protectedHeaders': 'header1;header2;', // String. Minimum 1 characters. Maximum 1024 characters. May be null.
'zip': '' // String. Maximum 12 characters. May be null.
}
Response
Errors
409 VersionConflictJsonException
DELETE /v45/sellers/{sellerId} ¶
sellerId |
|
Request
Response
GET /v45/sellers ¶
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ { 'corporateId': '9876543217', // corporateIdType. May NOT be null.
'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'publicAccess': true, // Boolean. May NOT be null.
'description': 'description', // String. Maximum 1024 characters. May be null.
'city': 'Koenig', // String. Maximum 255 characters. May be null.
'workHours': '24', // String. Maximum 255 characters. May be null.
'workHoursWeek': { 'MONDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'TUESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'WEDNESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'THURSDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'FRIDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SATURDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SUNDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
} // A complex object. May be null.
}, // A complex object. May NOT be null.
'address': 'Address 1', // String. Maximum 500 characters. May be null.
'phone': '89814532074', // String. Maximum 255 characters. May be null.
'custom': 'some text', // String. Maximum 65535 characters. May be null.
'currency': 'SEK', // currencyType. May be null.
'masterPassword': '9999', // String. Minimum 1 characters. Maximum 64 characters. May be null.
'protectedHeaders': 'header1;header2;', // String. Minimum 1 characters. Maximum 1024 characters. May be null.
'zip': '' // String. Maximum 12 characters. May be null.
} ]
GET /v45/{sellerId}/version ¶
sellerId |
|
Request
Response
{ 'version': 0, //
'modificationApiVersion': //
}
GET /v45/{sellerId}/stats ¶
sellerId |
|
Request
Response
{/*
'expiredActivations': , //
'expireSoonActivations': , //
'hasTables': false, //
'hasAdditives': false, //
'hasAdditiveClasses': false //
}
GET /v45/{sellerId}/modifications ¶
sellerId |
|
|
from | Query param |
|
to | Query param |
|
Request
Response
Errors
400 RequestParameterMissingJsonException
Errors
410 OutdatedVersionJsonException
POST /v45/{sellerId}/images ¶
sellerId |
|
Request
Response
GET /v45/{sellerId}/images ¶
sellerId |
|
Request
Response
[ {/*
} ]
GET /v45/{sellerId}/images/current/{pictureFilename} ¶
sellerId |
|
|
pictureFilename |
|
Request
Response
GET /v45/{sellerId}/images/{pictureVersion}/{pictureFilename} ¶
sellerId |
|
|
pictureVersion |
|
|
pictureFilename |
|
Request
Response
PUT /v45/{sellerId}/images/current/{pictureFilename} ¶
sellerId |
|
|
pictureFilename |
|
Request
Response
Errors
404 ReferenceNotFoundJsonException
DELETE /v45/{sellerId}/images/current/{pictureFilename} ¶
sellerId |
|
|
pictureFilename |
|
Request
Response
GET /v45/{sellerId}/seller-images-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{/*
'filename': 'MAIN.PNG', //
'version': 12345, //
'entityIdentifier': '12345', //
'modified': 78953145421 //
}
POST /v45/{sellerId}/taxes ¶
sellerId |
|
Request
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
PUT /v45/{sellerId}/taxes/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/taxes/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
{ 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}
Errors
409 VersionConflictJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
DELETE /v45/{sellerId}/taxes/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/taxes-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}
GET /v45/{sellerId}/taxes ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
{ 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}
GET /v45/{sellerId}/taxes/stats ¶
sellerId |
|
|
period | Query param |
|
cashRegisterName | Query param |
|
Request
Response
{/*
'taxStats': [ {/*
'vatSum': 2500, //
'vatName': '25%' // String.
} ] // List of objects. May NOT be null.
}
Errors
400 TypeMismatchJsonException
POST /v45/{sellerId}/categories ¶
sellerId |
|
Request
'identifier': null, // identifierType. May be null.
'name': 'Test', //
'color': 0 //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
PUT /v45/{sellerId}/categories/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': '0-2U10', // identifierType. May be null.
'name': 'Test1', //
'color': 0 //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/categories/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
{ 'deleted': 'false', //
'identifier': '0-2U10', // identifierType. May be null.
'name': 'Test1', //
'color': 0 //
}
Errors
409 VersionConflictJsonException
DELETE /v45/{sellerId}/categories/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/categories-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': 'false', //
'identifier': 'se9876543217', // identifierType. May be null.
'name': 'Category name', //
'color': 0 //
}
GET /v45/{sellerId}/categories ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
{ 'deleted': 'false', //
'identifier': 'se9876543217', // identifierType. May be null.
'name': 'Category name', //
'color': 0 //
}
GET /v45/{sellerId}/categories/stats ¶
sellerId |
|
|
period | Query param |
|
cashRegisterName | Query param |
|
Request
Response
{/*
'totalProductsSold': 100, //
'categoryStats': [ {/*
'name': 'Latte', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'brutto': 200, //
'count': 50, //
'vatSum': 100 //
} ] // List of objects. May NOT be null.
}
Errors
400 TypeMismatchJsonException
POST /v45/{sellerId}/categories/{categoryIdentifier}/images ¶
sellerId |
|
|
categoryIdentifier |
|
Request
Response
GET /v45/{sellerId}/categories/{categoryIdentifier}/images ¶
sellerId |
|
|
categoryIdentifier |
|
Request
Response
[ {/*
} ]
GET /v45/{sellerId}/categories/{categoryIdentifier}/images/current/{pictureFilename} ¶
sellerId |
|
|
categoryIdentifier |
|
|
pictureFilename |
|
Request
Response
GET /v45/{sellerId}/categories/{categoryIdentifier}/images/{pictureVersion}/{pictureFilename} ¶
sellerId |
|
|
categoryIdentifier |
|
|
pictureVersion |
|
|
pictureFilename |
|
Request
Response
PUT /v45/{sellerId}/categories/{categoryIdentifier}/images/current/{pictureFilename} ¶
sellerId |
|
|
categoryIdentifier |
|
|
pictureFilename |
|
Request
Response
Errors
404 ReferenceNotFoundJsonException
DELETE /v45/{sellerId}/categories/{categoryIdentifier}/images/current/{pictureFilename} ¶
sellerId |
|
|
categoryIdentifier |
|
|
pictureFilename |
|
Request
Response
GET /v45/{sellerId}/category-images-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{/*
'filename': 'test', //
'version': 12345, //
'entityIdentifier': '12345', //
'modified': 78953145421 //
}
POST /v45/{sellerId}/products ¶
sellerId |
|
Request
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}
Response
{/*
}
Errors
409 VersionConflictJsonException
See there: SIZE_SHOULD_BE_IN_RANGE, SHOULD_MATCH_PATTERN .
PUT /v45/{sellerId}/products/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/products/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
{ 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/products-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}
GET /v45/{sellerId}/products ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ { 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
} ]
DELETE /v45/{sellerId}/products/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/products/stats ¶
sellerId |
|
|
period | Query param |
|
cashRegisterName | Query param |
|
Request
Response
{/*
'totalProductsSold': 100, //
'productStats': [ {/*
'name': 'Latte', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'brutto': 200, //
'count': 50, //
'salesUnit': 'Piece', //
'vatSum': 1000 //
} ] // List of objects. May NOT be null.
}
Errors
400 TypeMismatchJsonException
PUT /v45/{sellerId}/products/{productIdentifier}/images/current/{pictureFilename} ¶
sellerId |
|
|
productIdentifier |
|
|
pictureFilename |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/products/{productIdentifier}/images ¶
sellerId |
|
|
productIdentifier |
|
Request
Response
[ {/*
} ]
GET /v45/{sellerId}/products/{productIdentifier}/images/current/{pictureFilename} ¶
sellerId |
|
|
productIdentifier |
|
|
pictureFilename |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/products/{productIdentifier}/images/{pictureVersion}/{pictureFilename} ¶
sellerId |
|
|
productIdentifier |
|
|
pictureVersion |
|
|
pictureFilename |
|
Request
Response
Errors
404 NotFoundJsonException
DELETE /v45/{sellerId}/products/{productIdentifier}/images/current/{pictureFilename} ¶
sellerId |
|
|
productIdentifier |
|
|
pictureFilename |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/product-images-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{/*
'filename': 'MAIN.PNG', //
'version': 1, //
'entityIdentifier': '12345', //
'modified': 78953145421 //
}
POST /v45/{sellerId}/commodities ¶
sellerId |
|
Request
'identifier': null, //
'product': '0-2U12', //
'category': '0-2U10', //
'custom': '', // String. Maximum 65535 characters. May be null.
'color': 0 //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
PUT /v45/{sellerId}/commodities/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': '0-2U18', //
'product': '0-2U12', //
'category': '0-2U10', //
'custom': '', // String. Maximum 65535 characters. May be null.
'color': 0 //
}
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/commodities/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
404 NotFoundJsonException
GET /v45/{sellerId}/commodities ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ { 'deleted': false, //
'identifier': '0-2U18', //
'product': '0-2U12', //
'category': '0-2U16', //
'custom': '', // String. Maximum 65535 characters. May be null.
'color': 0 //
} ]
GET /v45/{sellerId}/commodities-advanced ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ {/*
'identifier': '0-2U18', //
'product': '', //
'category': '', //
'custom': '', // String. Maximum 65535 characters. May be null.
'color': 0 //
}, // A complex object. May NOT be null.
'productAdvancedInfo': { 'deleted': 'false', //
'product': { 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}, // A complex object. May NOT be null.
'tax': { 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}, // A complex object. May NOT be null.
'images': ['PRODUCT1.PNG', 'PRODUCT2.PNG'] // A complex object. May NOT be null.
}{/*
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '', // String. Maximum 65535 characters. May be null.
'price': '0' //
}, // A complex object. A complex object. May NOT be null.
'categoryInfo': {/*
'identifier': null, // identifierType. May be null.
'name': 'Test', //
'color': 0 //
} // A complex object. May NOT be null.
} ]
DELETE /v45/{sellerId}/commodities/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/commodities-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': false, //
'identifier': '1', //
'product': 'test product', //
'category': 'test category', //
'custom': '', // String. Maximum 65535 characters. May be null.
'color': 0 //
}
POST /v45/{sellerId}/keyboards ¶
sellerId |
|
Request
'identifier': null, // identifierType. May be null.
'name': 'Test', //
'width': 0, //
'height': 0, //
'deviceFormFactor': 'PHONE', //
'custom': '', // String. Maximum 65535 characters. May be null.
'index': //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
PUT /v45/{sellerId}/keyboards/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': '0-2U20', // identifierType. May be null.
'name': 'Test1', //
'width': 0, //
'height': 0, //
'deviceFormFactor': 'PHONE', //
'custom': '', // String. Maximum 65535 characters. May be null.
'index': //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/keyboards/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
{ 'deleted': 'false', //
'identifier': '0-2U20', // identifierType. May be null.
'name': 'Test1', //
'width': 0, //
'height': 0, //
'deviceFormFactor': 'PHONE', //
'custom': '', // String. Maximum 65535 characters. May be null.
'index': //
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/keyboards ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ { 'deleted': 'false', //
'identifier': '0-2U20', // identifierType. May be null.
'name': 'Test1', //
'width': 0, //
'height': 0, //
'deviceFormFactor': 'PHONE', //
'custom': '', // String. Maximum 65535 characters. May be null.
'index': //
} ]
DELETE /v45/{sellerId}/keyboards/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/keyboards-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': 'false', //
'identifier': '0-2U20', // identifierType. May be null.
'name': 'Test1', //
'width': 0, //
'height': 0, //
'deviceFormFactor': 'PHONE', //
'custom': '', // String. Maximum 65535 characters. May be null.
'index': //
}
POST /v45/{sellerId}/keyboard-entries ¶
sellerId |
|
Request
'identifier': null, //
'product': '0-2U12', //
'keyboard': '0-2U20', //
'subKeyboard': '0-2U20', //
'positionX': 1, //
'positionY': 1, //
'width': 1, //
'height': 1, //
'keyAction': 'Product', //
'label': 'KeyboardEntry 1', //
'custom': '' // String. Maximum 65535 characters. May be null.
}
Response
{/*
}
Errors
409 VersionConflictJsonException
PUT /v45/{sellerId}/keyboard-entries/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': '0-2U28', //
'product': '0-2U12', //
'keyboard': '0-2U20', //
'subKeyboard': '0-2U20', //
'positionX': 1, //
'positionY': 1, //
'width': 1, //
'height': 1, //
'keyAction': 'Product', //
'label': 'KeyboardEntry 1', //
'custom': '' // String. Maximum 65535 characters. May be null.
}
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/keyboard-entries/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
DELETE /v45/{sellerId}/keyboard-entries/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/keyboard-entries-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': false, //
'identifier': '45а5543534', //
'product': 'test', //
'keyboard': 'keyboard', //
'subKeyboard': 'value', //
'positionX': 56, //
'positionY': 89, //
'width': 123, //
'height': 675, //
'keyAction': 'Product', //
'label': 'test', //
'custom': 'test' // String. Maximum 65535 characters. May be null.
}
GET /v45/{sellerId}/keyboard-entries ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
{ 'deleted': false, //
'identifier': '45а5543534', //
'product': 'test', //
'keyboard': 'keyboard', //
'subKeyboard': 'value', //
'positionX': 56, //
'positionY': 89, //
'width': 123, //
'height': 675, //
'keyAction': 'Product', //
'label': 'test', //
'custom': 'test' // String. Maximum 65535 characters. May be null.
}
POST /v45/{sellerId}/orders ¶
sellerId |
|
Request
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
}
Response
{/*
}
Errors
404 ReferenceNotFoundJsonException
GET /v45/{sellerId}/orders ¶
sellerId |
|
|
firstResult | Query param |
|
maxResults | Query param |
|
orderBy | Query param |
|
orderDesc | Query param |
|
like | Query param |
|
status | Query param |
|
Request
Response
[ {/*
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
} ]
GET /v45/{sellerId}/orders/{orderId} ¶
sellerId |
|
|
orderId |
|
Request
Response
{/*
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/orders-advanced ¶
sellerId |
|
|
firstResult | Query param |
|
maxResults | Query param |
|
orderBy | Query param |
|
orderDesc | Query param |
|
like | Query param |
|
status | Query param |
|
Request
Response
[ {/*
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
}, // A complex object. May NOT be null.
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
}, // A complex object. May NOT be null.
'productInfo': { 'deleted': 'false', //
'product': { 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}, // A complex object. May NOT be null.
'tax': { 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}, // A complex object. May NOT be null.
'images': ['PRODUCT1.PNG', 'PRODUCT2.PNG'] // A complex object. May NOT be null.
} // A complex object. May NOT be null.
} ], // List of objects.
'bookingInfo': { 'identifier': '', // identifierType. May be null.
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': , // Integer. May NOT be null.
'description': '', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': '' //
} // A complex object. May be null.
} ]
GET /v45/{sellerId}/orders-advanced/{orderId} ¶
sellerId |
|
|
orderId |
|
Request
Response
{/*
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
}, // A complex object. May NOT be null.
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
}, // A complex object. May NOT be null.
'productInfo': { 'deleted': 'false', //
'product': { 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}, // A complex object. May NOT be null.
'tax': { 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}, // A complex object. May NOT be null.
'images': ['PRODUCT1.PNG', 'PRODUCT2.PNG'] // A complex object. May NOT be null.
} // A complex object. May NOT be null.
} ], // List of objects.
'bookingInfo': { 'identifier': '', // identifierType. May be null.
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': , // Integer. May NOT be null.
'description': '', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': '' //
} // A complex object. May be null.
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/orders-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
|
status | Query param |
|
Request
Response
{/*
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
}
PUT /v45/{sellerId}/orders/{orderId} ¶
sellerId |
|
|
orderId |
|
Request
'orderItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'status': 'NEW', // orderPaymentStatus. May NOT be null.
'deleted': 'false', //
'booking': 'BOK1', // identifierType. May be null.
'delivery': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object.
'address': '', //
'date': new Date().setHours(0,0,0,0), //
'comment': '' //
}, // A complex object. May be null.
'created': 1414800000001 // Date: amount of milliseconds since UNIX epoch. May be null.
}
Response
Errors
404 ReferenceNotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
422 UnprocessableEntityJsonExceptionSee there: PROHIBITED_ORDER_STATUS_CHANGE .
409 VersionConflictJsonException
DELETE /v45/{sellerId}/orders/{orderId} ¶
sellerId |
|
|
orderId |
|
Request
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/treasurers/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
{ 'deleted': false, //
'identifier': '0-2U0Z', // identifierType. May NOT be null.
'name': 'test', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'ssn': '123423567', //
'custom': '', // String. Maximum 65535 characters.
'user': '', //
'pin': '8888' //
}
Errors
409 VersionConflictJsonException
PUT /v45/{sellerId}/treasurers/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'identifier': '0-2U0Z', // identifierType.
'name': 'test', // String. Minimum 1 characters. Maximum 32 characters.
'ssn': '123423567', // String. Minimum 1 characters. Maximum 16 characters.
'pin': '9999', // String. Minimum 1 characters. Maximum 16 characters.
'custom': '' // String. Maximum 65535 characters.
}
Response
Errors
409 VersionConflictJsonException
POST /v45/{sellerId}/treasurers ¶
sellerId |
|
Request
'identifier': '0-2U0Z', // identifierType.
'name': 'test', // String. Minimum 1 characters. Maximum 32 characters.
'ssn': '123423567', // String. Minimum 1 characters. Maximum 16 characters.
'pin': '9999', // String. Minimum 1 characters. Maximum 16 characters.
'custom': '' // String. Maximum 65535 characters.
}
Response
{/*
}
Errors
409 VersionConflictJsonException
DELETE /v45/{sellerId}/treasurers/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
404 NotFoundJsonException
GET /v45/{sellerId}/treasurers-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'deleted': false, //
'identifier': '0-2U0Z', // identifierType. May NOT be null.
'name': 'test', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'ssn': '123423567', //
'custom': '', // String. Maximum 65535 characters.
'user': '', //
'pin': '8888' //
}
GET /v45/{sellerId}/treasurers ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
{ 'deleted': false, //
'identifier': '0-2U0Z', // identifierType. May NOT be null.
'name': 'test', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'ssn': '123423567', //
'custom': '', // String. Maximum 65535 characters.
'user': '', //
'pin': '8888' //
}
GET /v45/{sellerId}/bookings/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
{ 'identifier': 'BOK1', // identifierType. May be null.
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': 4, // Integer. May NOT be null.
'description': 'no solt in all dishes', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': 'false' //
}
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
PUT /v45/{sellerId}/bookings/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': 4, // Integer. May NOT be null.
'description': 'no solt in all dishes', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': 'false' //
}
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
409 VersionConflictJsonException
POST /v45/{sellerId}/bookings ¶
sellerId |
|
Request
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': 4, // Integer. May NOT be null.
'description': 'no solt in all dishes', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': 'false' //
}
Response
{/*
}
Errors
404 NotFoundJsonException
DELETE /v45/{sellerId}/bookings/{identifier} ¶
sellerId |
|
|
identifier |
|
Request
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
409 VersionConflictJsonException
GET /v45/{sellerId}/bookings ¶
sellerId |
|
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
orderBy | Query param |
|
orderDesc | Query param |
|
Request
Response
{ 'identifier': 'BOK1', // identifierType. May be null.
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': 4, // Integer. May NOT be null.
'description': 'no solt in all dishes', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': 'false' //
}
GET /v45/{sellerId}/bookings-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'identifier': 'BOK1', // identifierType. May be null.
'bookingDate': new Date().setHours(0,0,0,0), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'persons': 4, // Integer. May NOT be null.
'description': 'no solt in all dishes', // String. Maximum 1024 characters.
'contactInfo': {/*
'phone': '56745325', //
'email': 'test@test.se' //
}, // A complex object. May NOT be null.
'deleted': 'false' //
}
GET /v45/{sellerId}/registrations ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
activeOnly | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
Request
Response
{ 'id': 654, //
'cashRegisterName': 'cash name', // String. Maximum 16 characters. May NOT be null.
'country': 'se', // String. Minimum 2 characters. Maximum 2 characters. May NOT be null.
'corporateId': '345342356', // corporateIdType. May NOT be null.
'productionNumber': 'TEST100000000000000000081' // productionNumberType. May be null.
}
GET /v45/{sellerId}/registrations-advanced ¶
sellerId |
|
|
orderBy | Query param |
|
orderDesc | Query param |
|
activeOnly | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
Request
Response
[ {/*
'cashRegisterName': 'cash name', // String. Maximum 16 characters. May NOT be null.
'country': 'se', // String. Minimum 2 characters. Maximum 2 characters. May NOT be null.
'corporateId': '345342356', // corporateIdType. May NOT be null.
'productionNumber': '' // productionNumberType. May be null.
}, // A complex object. May NOT be null.
'sellerInfo': { 'corporateId': '9876543217', // corporateIdType. May NOT be null.
'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'publicAccess': true, // Boolean. May NOT be null.
'description': 'description', // String. Maximum 1024 characters. May be null.
'city': 'Koenig', // String. Maximum 255 characters. May be null.
'workHours': '24', // String. Maximum 255 characters. May be null.
'workHoursWeek': { 'MONDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'TUESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'WEDNESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'THURSDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'FRIDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SATURDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SUNDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
} // A complex object. May be null.
}, // A complex object. May NOT be null.
'address': 'Address 1', // String. Maximum 500 characters. May be null.
'phone': '89814532074', // String. Maximum 255 characters. May be null.
'custom': 'some text', // String. Maximum 65535 characters. May be null.
'currency': 'SEK', // currencyType. May be null.
'masterPassword': '9999', // String. Minimum 1 characters. Maximum 64 characters. May be null.
'protectedHeaders': 'header1;header2;', // String. Minimum 1 characters. Maximum 1024 characters. May be null.
'zip': '' // String. Maximum 12 characters. May be null.
}, // A complex object. May NOT be null.
'installationInfo': {/*
'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {'KEY1':'VALUE1', 'KEY2':'VALUE2'}, // A complex object. May NOT be null.
'applicationPackage': 'package', // applicationPackageType. May NOT be null.
'productionNumber': 'TEST100000000000000000081', // productionNumberType.
'registrationDate': 45672345, // Date: amount of milliseconds since UNIX epoch.
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, // A complex object.
'deviceInfo': {/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
}, // A complex object.
'applicationDescriptionInfo': {/*
'productionNumberPrefix': 'PRENP', // String.
'controlUnitRequired': true, // Boolean.
'name': 'Super application', // String.
'softwareVendor': 2, // Integer.
'autoActivationCondition': 'NEVER', // autoActivationConditionType.
'corporateIdValidationMethod': 'NONE', // corporateIdValidationMethodType.
'geolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
} // A complex object. May be null.
}, // A complex object.
'buildInfoes': [ {/*
'value': '', // String. Maximum 1024 characters. May NOT be null.
'installation': '' // String. May NOT be null.
} ], // List of objects.
'registrationOverviewInfoes': [ {/*
'cashRegisterName': 'cash name', // String. Maximum 16 characters. May NOT be null.
'sellerOverviewInfo': { 'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'currency': 'SEK', // currencyType. May be null.
'countActiveCashRegisters': , // Integer.
'turnover': // Integer.
} // A complex object. May NOT be null.
} ] // List of objects.
} // A complex object. May NOT be null.
} ]
GET /v45/{sellerId}/registrations/stats ¶
sellerId |
|
|
period | Query param |
|
Request
Response
[ {/*
'total': 1200 //
} ]
Errors
400 TypeMismatchJsonException
POST /v45/{sellerId}/registration/{cashRegisterName}/kd ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | cashRegisterNameType. May NOT be null. |
Request
'vatRateToSum': {'6':1000}, //
'refund': false, // Boolean. May NOT be null.
'printType': 'Normal', // printType. May NOT be null.
'receiptNumber': 1, //
'date': new Date() // Date: amount of milliseconds since UNIX epoch. May NOT be null.
}
Response
{ 'response': 'K34P72NUH7A3HST7HY7EF6RUWJLLWVOC; MKFXCN7ENWYJS4KRP3JJ3KG64M', // String. May NOT be null.
'controlUnitSerial': 'PTEST900000000001' // String. May NOT be null.
}
Errors
404 ReferenceNotFoundJsonException
The name is one of the following:
POST /v45/{sellerId}/registration/{cashRegisterName}/kd ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | cashRegisterNameType. May NOT be null. |
Request
'vatRateToSum': {'6':1000}, //
'refund': false, // Boolean. May NOT be null.
'printType': 'Normal', // printType. May NOT be null.
'receiptNumber': 1, //
'date': new Date(), // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'controlUnitSerial': 'PTEST900000000001', //
'applicationPackage': 'test.app' // applicationPackageType. May NOT be null.
}
Response
{ 'response': 'K34P72NUH7A3HST7HY7EF6RUWJLLWVOC; MKFXCN7ENWYJS4KRP3JJ3KG64M', // String. May NOT be null.
'controlUnitSerial': 'PTEST900000000001' // String. May NOT be null.
}
Errors
404 ReferenceNotFoundJsonException
The name is one of the following:
GET /v45/{sellerId}/registrations/{cashRegisterName}/balance ¶
sellerId |
|
|
cashRegisterName | cashRegisterNameType. May NOT be null. |
Request
Response
{ 'amount': 10000 //
}
Errors
404 ReferenceNotFoundJsonException
See there: DAY_IS_CLOSED, DAY_IS_NOT_CLOSED, REPORT_IS_NOT_PRINTED .
POST /v45/{sellerId}/registrations/{cashRegisterName}/balance ¶
sellerId |
|
|
cashRegisterName | cashRegisterNameType. May NOT be null. |
Request
'action': 'DEPOSIT' //
}
Response
Errors
422 UnprocessableEntityJsonExceptionSee there: DAY_IS_CLOSED, DAY_IS_NOT_CLOSED, REPORT_IS_NOT_PRINTED .
GET /v45/{sellerId}/registrations/{cashRegisterName} ¶
sellerId |
|
|
cashRegisterName |
|
Request
Response
{ 'cashRegisterName': '', // cashRegisterNameType. May NOT be null.
'sellerOverviewInfo': { 'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'currency': 'SEK', // currencyType. May be null.
'countActiveCashRegisters': , // Integer.
'turnover': // Integer.
}, // A complex object. May NOT be null.
'applicationName': '', // String. Maximum 64 characters. May NOT be null.
'installationInfo': { 'id': 654353, //
'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {'KEY1':'VALUE1', 'KEY2':'VALUE2'}, // A complex object. May NOT be null.
'applicationPackage': 'package', // applicationPackageType. May NOT be null.
'productionNumber': 'TEST100000000000000000081', // productionNumberType.
'registrationDate': 45672345, // Date: amount of milliseconds since UNIX epoch.
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, // A complex object. May be null.
'deviceInfo': {/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
}, // A complex object. May be null.
'buildInfoes': [ {/*
'value': '', // String. Maximum 1024 characters. May NOT be null.
'installation': '' // String. May NOT be null.
} ], // List of objects. May be null.
'sellersAtSameInstallation': [ { 'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'currency': 'SEK', // currencyType. May be null.
'countActiveCashRegisters': , // Integer.
'turnover': // Integer.
} ], // List of objects. May be null.
'controlUnitSerial': '', // String. Minimum 1 characters. Maximum 20 characters. May NOT be null.
'lastActivation': '', // May NOT be null.
'activationsAtSameRegistration': [ { 'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'currency': 'SEK', // currencyType. May be null.
'countActiveCashRegisters': , // Integer.
'turnover': // Integer.
} ], // List of objects. May NOT be null.
'status': '', // registrationStatusType. May NOT be null.
'removedDate': // Date: amount of milliseconds since UNIX epoch. May NOT be null.
}
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/registrations/{cashRegisterName}/version ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. |
Request
Response
{ 'version': 0 //
}
Errors
404 ReferenceNotFoundJsonException
POST /v45/{sellerId}/registrations/{cashRegisterName}/sales ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. |
Request
'sellerIdentifier': 'se9876543217', //
'saleState': 'Open', //
'refund': true, //
'refundFor': 123, //
'absoluteDiscount': 0, //
'relativeDiscount': 1000, //
'vanillaBrutto': 37000, //
'discount': 3700, //
'brutto': 33300, //
'vat': 6660, //
'controlUnitId': '123456', //
'day': '', //
'treasurer': '0-ABCD', //
'close': new Date().setHours(0,0,0,0), //
'saleProducts': [ { 'productIdentifier': 'PRODUCT1', //
'deltaUnit': false, //
'delta': 300, //
'absoluteDiscount': 500, //
'relativeDiscount': 0, //
'vat': 7400, //
'netto': 29600, //
'brutto': 37500, //
'productBrutto': 12500, //
'vatRate': 25, //
'effectiveBrutto': 33300, //
'vanillaBrutto': 37500, //
'discount': 500, //
'created': 1414800000001 //
} ], // List of objects.
'prints': [ { 'receiptNumber': 1234, //
'printType': 'Normal', //
'deliveryType': 'Print', //
'controlNumber': '123456789', //
'created': new Date().setHours(0,0,0,0), //
'printed': false //
} ], // List of objects.
'payments': [ { 'paymentType': 'Cash', //
'amount': 100, //
'paymentState': 'SENDING' //
} ], // List of objects.
'vatRateSums': [ { 'vatRate': 2500, //
'vanillaVat': 7400, //
'vanillaNetto': 29600, //
'vanillaBrutto': 37000, //
'vat': 6600, //
'netto': 26640, //
'brutto': 33000 //
} ] // List of objects.
}
Response
{/*
}
Errors
404 ReferenceNotFoundJsonException
See there: DAY_IS_CLOSED, DAY_IS_NOT_CLOSED, REPORT_IS_NOT_PRINTED .
GET /v45/{sellerId}/registrations/{cashRegisterName}/sales/{identifier}/receipt ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
identifier |
|
Request
Response
POST /v45/{sellerId}/registrations/{cashRegisterName}/sales/{identifier}/receipt ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
identifier |
|
Request
Response
Errors
422 UnprocessableEntityJsonExceptionSee there: DAY_IS_NOT_CLOSED, RECEIPT_IS_PRINTED_ALREADY .
GET /v45/{sellerId}/registrations/{cashRegisterName}/sales/{saleId}/copy ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
saleId |
|
Request
Response
Errors
404 NotFoundJsonException
GET /v45/{sellerId}/registrations/{cashRegisterName}/sales-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
cashRegisterName | May NOT be null. | |
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'identifier': '', // identifierType. May be null.
'sellerIdentifier': 'se9876543217', //
'saleState': 'Open', //
'refund': true, //
'refundFor': 10, //
'absoluteDiscount': 0, //
'relativeDiscount': 50, //
'vanillaBrutto': 100, //
'discount': 100, //
'brutto': 50, //
'vat': 25, //
'controlUnitId': '123456', //
'day': '0-DCBA', //
'treasurer': '0-ABCD', //
'close': new Date().setHours(0,0,0,0), //
'saleProducts': [ { 'productIdentifier': 'PRODUCT1', //
'deltaUnit': false, //
'delta': 10, //
'absoluteDiscount': 0, //
'relativeDiscount': 50, //
'vat': 25, //
'netto': 100, //
'brutto': 125, //
'productBrutto': 12, //
'vatRate': 50, //
'effectiveBrutto': 125, //
'vanillaBrutto': 125, //
'discount': 50, //
'created': 1414800000001 //
} ], // List of objects.
'prints': [ { 'receiptNumber': 1234, //
'printType': 'Normal', //
'deliveryType': 'Print', //
'controlNumber': '123456789', //
'created': new Date().setHours(0,0,0,0), //
'printed': false //
} ], // List of objects.
'payments': [ { 'paymentType': 'Cash', //
'amount': 100, //
'paymentState': 'SENDING' //
} ], // List of objects.
'vatRateSums': [ { 'vatRate': 50, //
'vanillaVat': 5000, //
'vanillaNetto': 5000, //
'vanillaBrutto': 10000, //
'vat': 500, //
'netto': 500, //
'brutto': 1000 //
} ] // List of objects.
}
GET /v45/{sellerId}/sales/stats/payment-type ¶
sellerId | sellerIdType. May NOT be null. |
Request
Response
{/*
'paymentTypeStats': [ {/*
'vatSum': 2500, // Integer. Minimum 0.
'brutto': 1111 // Integer. Minimum 0.
} ] // List of objects. May NOT be null.
}
Errors
400 TypeMismatchJsonException
PUT /v45/{sellerId}/days/{identifier} ¶
sellerId | sellerIdType. May NOT be null. | |
identifier |
|
Request
'identifier': 'DAY1', //
'opened': false, //
'reportPrinted': false, //
'open': 1414800000000, //
'close': 1414800000000, //
'cash': 140, //
'cashAtClose': 140, //
'grandTotal': 140, //
'grandTotalRefund': 10, //
'closedDayTreasurer': 'TREASURER1', //
'version': 1, //
'modified': 1414800000000 //
}
Response
Errors
409 VersionConflictJsonException
GET /v45/{sellerId}/registrations/{cashRegisterName}/days ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
cashRegisterName | Query param |
|
period | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
{ 'dayNumber': 1, //
'identifier': 'DAY1', //
'opened': false, //
'reportPrinted': false, //
'open': 1414800000000, //
'close': 1414800000000, //
'cash': 140, //
'cashAtClose': 140, //
'grandTotal': 140, //
'grandTotalRefund': 10, //
'closedDayTreasurer': 'TREASURER1', //
'version': 1, //
'modified': 1414800000000, //
'id': '0', //
'date': '1414200000' //
}
GET /v45/{sellerId}/registrations/{cashRegisterName}/days-minified ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
cashRegisterName | Query param |
|
period | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
{ 'id': 0, //
'date': 1414200000 //
}
GET /v45/{sellerId}/registrations/{cashRegisterName}/days/{dayIdentifier}/report ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
dayIdentifier |
|
Request
Response
POST /v45/{sellerId}/registrations/{cashRegisterName}/days/{dayIdentifier}/report ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. | |
dayIdentifier |
|
Request
Response
Errors
404 NotFoundJsonException
See there: DAY_IS_NOT_CLOSED, REPORT_IS_PRINTED_ALREADY .
POST /v45/{sellerId}/registrations/{cashRegisterName}/days/current ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | May NOT be null. |
Request
Response
Errors
422 UnprocessableEntityJsonExceptionSee there: DAY_IS_CLOSED, RECEIPT_IS_NOT_PRINTED .
GET /v45/{sellerId}/registrations/{cashRegisterName}/days-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
cashRegisterName | May NOT be null. | |
versionFrom |
|
|
versionTo |
|
Request
Response
{ 'dayNumber': 1, //
'identifier': 'DAY1', //
'opened': false, //
'reportPrinted': false, //
'open': 1414800000000, //
'close': 1414800000000, //
'cash': 140, //
'cashAtClose': 140, //
'grandTotal': 140, //
'grandTotalRefund': 10, //
'closedDayTreasurer': 'TREASURER1', //
'version': 1, //
'modified': 1414800000000 //
}
GET /v45/{sellerId}/days/stats ¶
sellerId | sellerIdType. May NOT be null. |
Request
Response
{/*
'dayStats': [ {/*
'vatSum': 2500, // Integer. Minimum 0.
'brutto': 1111, // Integer. Minimum 0.
'open': 1414800000000, // Integer.
'close': 1414800000000 // Integer. May be null.
} ] // List of objects. May NOT be null.
}
Errors
400 TypeMismatchJsonException
GET /v45/{sellerId}/sales ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | Query param |
|
period | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ { 'identifier': '', // identifierType. May be null.
'sellerIdentifier': 'se9876543217', //
'saleState': 'Open', //
'refund': true, //
'refundFor': 10, //
'absoluteDiscount': 0, //
'relativeDiscount': 50, //
'vanillaBrutto': 100, //
'discount': 100, //
'brutto': 50, //
'vat': 25, //
'controlUnitId': '123456', //
'day': '0-DCBA', //
'treasurer': '0-ABCD', //
'close': new Date().setHours(0,0,0,0), //
'saleProducts': [ { 'productIdentifier': 'PRODUCT1', //
'deltaUnit': false, //
'delta': 10, //
'absoluteDiscount': 0, //
'relativeDiscount': 50, //
'vat': 25, //
'netto': 100, //
'brutto': 125, //
'productBrutto': 12, //
'vatRate': 25, //
'effectiveBrutto': 125, //
'vanillaBrutto': 125, //
'discount': 50, //
'created': 1414800000001 //
} ], // List of objects.
'prints': [ { 'receiptNumber': 1234, //
'printType': 'Normal', //
'deliveryType': 'Print', //
'controlNumber': '123456789', //
'created': new Date().setHours(0,0,0,0), //
'printed': false //
} ], // List of objects.
'payments': [ { 'paymentType': 'Cash', //
'amount': 100, //
'paymentState': 'SENDING' //
} ], // List of objects.
'vatRateSums': [ { 'vatRate': 50, //
'vanillaVat': 5000, //
'vanillaNetto': 5000, //
'vanillaBrutto': 10000, //
'vat': 500, //
'netto': 500, //
'brutto': 1000 //
} ] // List of objects.
} ]
GET /v45/{sellerId}/sales/stats ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | Query param |
|
period | Query param |
|
Request
Response
{ 'total': 1200, //
'amountOfSales': 100, //
'amountOfProducts': 150, //
'dateGroupingUnit': 'HOUR', //
'bruttoStats': {'2014-12-01T00:00:00.000+0000':424500} //
}
GET /v45/{sellerId}/sales/stats/csv ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | Query param |
|
period | Query param |
|
fileName | Query param |
|
Request
Response
GET /v45/{sellerId}/sales-minified ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | Query param |
|
period | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ { 'id': 0, //
'close': 1414200000, //
'brutto': 100, //
'receiptNumber': 100, //
'cashRegisterName': 'CashTK', //
'vatSum': 100, //
'treasurer': [ { 'deleted': false, //
'identifier': '0-2U0Z', // identifierType. May NOT be null.
'name': 'test', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'ssn': '123423567', //
'custom': '', // String. Maximum 65535 characters.
'user': '', //
'pin': '8888' //
} ], // List of objects.
'trip': {/*
'routeCode': 'ROUTE66', // String. Minimum 1 characters. Maximum 255 characters. May NOT be null.
'tripCode': 'TRIP1266', // String. Minimum 1 characters. Maximum 255 characters. May NOT be null.
'sales': [ { 'identifier': '', // identifierType. May be null.
'sellerIdentifier': '', //
'saleState': '', //
'refund': , //
'refundFor': , //
'absoluteDiscount': , //
'relativeDiscount': , //
'vanillaBrutto': , //
'discount': , //
'brutto': , //
'vat': , //
'controlUnitId': '', //
'day': '', //
'treasurer': '', //
'close': new Date().setHours(0,0,0,0), //
'saleProducts': [ { 'productIdentifier': '', //
'deltaUnit': , //
'delta': , //
'absoluteDiscount': , //
'relativeDiscount': , //
'vat': , //
'netto': , //
'brutto': , //
'productBrutto': , //
'vatRate': , //
'effectiveBrutto': , //
'vanillaBrutto': , //
'discount': , //
'created': //
} ], // List of objects.
'prints': [ { 'receiptNumber': , //
'printType': '', //
'deliveryType': '', //
'controlNumber': '', //
'created': new Date().setHours(0,0,0,0), //
'printed': //
} ], // List of objects.
'payments': [ { 'paymentType': '', //
'amount': , //
'paymentState': '' //
} ], // List of objects.
'vatRateSums': [ { 'vatRate': , //
'vanillaVat': , //
'vanillaNetto': , //
'vanillaBrutto': , //
'vat': , //
'netto': , //
'brutto': //
} ] // List of objects.
} ] // List of objects.
} // A complex object. May NOT be null.
} ]
GET /v45/{sellerId}/e-journals/{cashRegisterName} ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | cashRegisterNameType. May NOT be null. | |
orderDesc | Query param |
|
Request
Response
GET /v45/{sellerId}/generated-e-journals/{cashRegisterName} ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | cashRegisterNameType. May NOT be null. |
Request
Response
POST /v45/{sellerId}/e-journals/{cashRegisterName} ¶
sellerId | sellerIdType. May NOT be null. | |
cashRegisterName | cashRegisterNameType. May NOT be null. | |
orderDesc | Query param |
|
Request
Response
POST /v45/{sellerId}/days ¶
sellerId | sellerIdType. May NOT be null. |
Request
'identifier': 'DAY1', //
'opened': false, //
'reportPrinted': false, //
'open': 1414800000000, //
'close': 1414800000000, //
'cash': 140, //
'cashAtClose': 140, //
'grandTotal': 140, //
'grandTotalRefund': 10, //
'closedDayTreasurer': 'TREASURER1', //
'version': 1, //
'modified': 1414800000000 //
}
Response
{/*
}
Errors
409 VersionConflictJsonException
POST /v45/{sellerId}/precepts ¶
sellerId |
|
Request
'treasurerName': 'Treasurer 1', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'preceptItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'table': 'near the entrance', // String. Maximum 50 characters.
'created': 1414800000001, // Date: amount of milliseconds since UNIX epoch. May be null.
'status': 'NEW', // preceptStatusType. May NOT be null.
'message': '', // String. Maximum 512 characters. May be null.
'order': '0-1' // String. Minimum 1 characters. Maximum 50 characters. May be null.
}
Response
{/*
}
Errors
400 NonUniqueJsonException
See there: ORDER_ALREADY_HAS_PRECEPT .
GET /v45/{sellerId}/precepts/{preceptId} ¶
sellerId |
|
|
preceptId |
|
Request
Response
{/*
'treasurerName': 'Treasurer 1', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'preceptItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'table': 'near the entrance', // String. Maximum 50 characters.
'created': 1414800000001, // Date: amount of milliseconds since UNIX epoch. May be null.
'status': 'NEW', // preceptStatusType. May NOT be null.
'message': '', // String. Maximum 512 characters. May be null.
'order': '0-1' // String. Minimum 1 characters. Maximum 50 characters. May be null.
}
Errors
404 NotFoundJsonException
GET /v45/{sellerId}/precepts ¶
sellerId |
|
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ {/*
'treasurerName': 'Treasurer 1', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'preceptItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'table': 'near the entrance', // String. Maximum 50 characters.
'created': 1414800000001, // Date: amount of milliseconds since UNIX epoch. May be null.
'status': 'NEW', // preceptStatusType. May NOT be null.
'message': '', // String. Maximum 512 characters. May be null.
'order': '0-1' // String. Minimum 1 characters. Maximum 50 characters. May be null.
} ]
GET /v45/{sellerId}/precepts-diff/{versionFrom}/{versionTo} ¶
sellerId |
|
|
versionFrom |
|
|
versionTo |
|
Request
Response
{/*
'treasurerName': 'Treasurer 1', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'preceptItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'table': 'near the entrance', // String. Maximum 50 characters.
'created': 1414800000001, // Date: amount of milliseconds since UNIX epoch. May be null.
'status': 'NEW', // preceptStatusType. May NOT be null.
'message': '', // String. Maximum 512 characters. May be null.
'order': '0-1' // String. Minimum 1 characters. Maximum 50 characters. May be null.
}
PUT /v45/{sellerId}/precepts/{preceptId} ¶
sellerId |
|
|
preceptId |
|
Request
'treasurerName': 'Treasurer 1', // String. Minimum 1 characters. Maximum 32 characters. May NOT be null.
'preceptItems': [ {/*
'productCustomization': 'Customization A', //
'delta': 700 //
} ], // List of objects.
'table': 'near the entrance', // String. Maximum 50 characters.
'created': 1414800000001, // Date: amount of milliseconds since UNIX epoch. May be null.
'status': 'NEW', // preceptStatusType. May NOT be null.
'message': '', // String. Maximum 512 characters. May be null.
'order': '0-1' // String. Minimum 1 characters. Maximum 50 characters. May be null.
}
Response
{/*
}
Errors
400 NonUniqueJsonException
GET /v45/restaurants-overview/{sellerId} ¶
sellerId |
|
Request
Response
{/*
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'name': 'Super Restaurant', // String. Minimum 1 characters. Maximum 96 characters. May be null.
'city': 'Stockholm', // String. Minimum 1 characters. Maximum 255 characters.
'address': 'Street 194/144', // String. Minimum 1 characters. Maximum 500 characters.
'phone': '', // String. Minimum 1 characters. Maximum 96 characters.
'workHours': '8', // String.
'workHoursWeek': { 'MONDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'TUESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'WEDNESDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'THURSDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'FRIDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SATURDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
}, // A complex object. May be null.
'SUNDAY': {/*
'openTime': 600, //
'closeTime': 1200 //
} // A complex object. May be null.
}, // A complex object. May NOT be null.
'description': '', // String.
'averageBill': 150, // Integer.
'menu': [ {/*
'products': [ { 'deleted': 'false', //
'product': { 'deleted': 'false', //
'identifier': '0-2U12', // identifierType. May NOT be null.
'name': 'Product 1', //
'barcode': '012345678912', //
'netto': 100, //
'tax': 'TAX1', //
'salesUnit': 'Piece', //
'countedInPrice': 'false', //
'description': '', // String. Maximum 1024 characters. May be null.
'custom': '' // String. Maximum 65535 characters. May be null.
}, // A complex object. May NOT be null.
'tax': { 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
}, // A complex object. May NOT be null.
'images': ['PRODUCT1.PNG', 'PRODUCT2.PNG'] // A complex object. May NOT be null.
} ], // List of objects.
'images': ['PRODUCT1.PNG', 'PRODUCT2.PNG'] // A complex object.
} ], // List of objects.
'images': ['MAIN.PNG', 'SECONDARY.PNG'], // A complex object.
'custom': '', // String. Maximum 65535 characters.
'taxes': [ { 'deleted': 'false', //
'identifier': 'TAX1', //
'vat': 1, //
'name': 'Tax 1', //
'custom': '' //
} ], // List of objects.
'currency': 'SEK' // currencyType. May be null.
}
Errors
404 NotFoundJsonException
GET /v45/restaurants/{sellerId} ¶
sellerId |
|
Request
Response
{/*
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'averageBill': 150 // Integer.
}
Errors
404 NotFoundJsonException
DELETE /v45/restaurants/{sellerId} ¶
sellerId |
|
Request
Response
Errors
404 NotFoundJsonException
PUT /v45/restaurants/{sellerId} ¶
sellerId |
|
Request
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'averageBill': 150 // Integer.
}
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
GET /v45/restaurants ¶
orderBy | Query param |
|
orderDesc | Query param |
|
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ {/*
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'name': 'Super Restaurant', // String. Minimum 1 characters. Maximum 96 characters. May be null.
'description': '', // String.
'city': 'Stockholm', // String. Minimum 1 characters. Maximum 255 characters.
'address': 'Street 194/144', // String. Minimum 1 characters. Maximum 500 characters.
'averageBill': 150, // Integer.
'logo': '', // String.
'custom': '' // String. Maximum 65535 characters.
} ]
GET /v45/hairdressers/{sellerId} ¶
sellerId |
|
Request
Response
{/*
'corporateId': '9876543217' // corporateIdType. May NOT be null.
}
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
DELETE /v45/hairdressers/{sellerId} ¶
sellerId |
|
Request
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
PUT /v45/hairdressers/{sellerId} ¶
sellerId |
|
Request
'corporateId': '9876543217' // corporateIdType. May NOT be null.
}
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
GET /v45/devices-overview/{id} ¶
id | May NOT be null. |
Request
Response
{/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
}, // A complex object.
'latestInstallationInfo': {/*
'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {'KEY1':'VALUE1', 'KEY2':'VALUE2'}, // A complex object. May NOT be null.
'applicationPackage': 'package', // applicationPackageType. May NOT be null.
'productionNumber': 'TEST100000000000000000081', // productionNumberType.
'registrationDate': 45672345, // Date: amount of milliseconds since UNIX epoch.
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, // A complex object.
'deviceInfo': {/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
}, // A complex object.
'applicationDescriptionInfo': {/*
'productionNumberPrefix': 'PRENP', // String.
'controlUnitRequired': true, // Boolean.
'name': 'Super application', // String.
'softwareVendor': 2, // Integer.
'autoActivationCondition': 'NEVER', // autoActivationConditionType.
'corporateIdValidationMethod': 'NONE', // corporateIdValidationMethodType.
'geolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
} // A complex object. May be null.
}, // A complex object.
'buildInfoes': [ {/*
'value': '', // String. Maximum 1024 characters. May NOT be null.
'installation': '' // String. May NOT be null.
} ], // List of objects.
'registrationOverviewInfoes': [ {/*
'cashRegisterName': 'cash name', // String. Maximum 16 characters. May NOT be null.
'sellerOverviewInfo': { 'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'currency': 'SEK', // currencyType. May be null.
'countActiveCashRegisters': , // Integer.
'turnover': // Integer.
} // A complex object. May NOT be null.
} ] // List of objects.
} // A complex object.
}
Errors
404 NotFoundJsonException
GET /v45/devices ¶
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ {/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
} ]
Errors
404 ReferenceNotFoundJsonException
GET /v45/devices-overview ¶
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
seller | Query param |
|
Request
Response
[ {/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
}, // A complex object.
'latestInstallationInfo': {/*
'deviceId': '111AAA222BBB3-022', // deviceIdType. May NOT be null.
'buildInfo': {'KEY1':'VALUE1', 'KEY2':'VALUE2'}, // A complex object. May NOT be null.
'applicationPackage': 'package', // applicationPackageType. May NOT be null.
'productionNumber': 'TEST100000000000000000081', // productionNumberType.
'registrationDate': 45672345, // Date: amount of milliseconds since UNIX epoch.
'programVersion': 'Kassan 1.0' // String. Minimum 1 characters. Maximum 64 characters.
}, // A complex object.
'deviceInfo': {/*
'deviceId': '34565673' // deviceIdType. May NOT be null.
}, // A complex object.
'applicationDescriptionInfo': {/*
'productionNumberPrefix': 'PRENP', // String.
'controlUnitRequired': true, // Boolean.
'name': 'Super application', // String.
'softwareVendor': 2, // Integer.
'autoActivationCondition': 'NEVER', // autoActivationConditionType.
'corporateIdValidationMethod': 'NONE', // corporateIdValidationMethodType.
'geolocation': {/*
'city': 'Koenig', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'postalCode': '45664', // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
'companyName': 'Company name' // String. Minimum 0 characters. Maximum 255 characters. May NOT be null.
} // A complex object. May be null.
}, // A complex object.
'buildInfoes': [ {/*
'value': '', // String. Maximum 1024 characters. May NOT be null.
'installation': '' // String. May NOT be null.
} ], // List of objects.
'registrationOverviewInfoes': [ {/*
'cashRegisterName': 'cash name', // String. Maximum 16 characters. May NOT be null.
'sellerOverviewInfo': { 'name': 'CompanyName', // String. Maximum 96 characters. May be null.
'country': 'se', // countryType. May NOT be null.
'corporateId': '9876543217', // corporateIdType. May NOT be null.
'currency': 'SEK', // currencyType. May be null.
'countActiveCashRegisters': , // Integer.
'turnover': // Integer.
} // A complex object. May NOT be null.
} ] // List of objects.
} // A complex object.
} ]
Errors
404 ReferenceNotFoundJsonException
GET /v45/installations/{productionNumber}/build-infoes ¶
productionNumber | productionNumberType. May NOT be null. |
Request
Response
[ {/*
'value': 'VALUE', // String. Maximum 1024 characters. May NOT be null.
'installation': 'TEST100000000000000000081' // String. May NOT be null.
} ]
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
GET /v45/kd-facets ¶
firstResult | Query param |
|
maxResults | Query param |
|
orderBy | Query param |
|
orderDesc | Query param |
|
controlUnit | Query param |
|
seller | Query param |
|
cashRegisterName | Query param |
|
softwareVendor | Query param |
|
Request
Response
[ {/*
'brutto': 5000, // Integer.
'kdDate': 1414800000001, // Date: amount of milliseconds since UNIX epoch. May NOT be null.
'vatRateToSum': {'6':1000}, //
'receiptNumber': 1, //
'printType': 'Normal', // printType. May NOT be null.
'refund': false, // Boolean.
'errorMessage': 'Command kd 201411061916 1234567897 C1415276184016 0 normal 0,00 998,99 0,06;10,00 0,03;0,08 0,00;0,00 0,00;0,00 failed with response -1 K34P72NUH7A3HST7HY7EF6RUWJLLWVOC;MKFXCN7ENWYJS4KRP3JJ3KG64M 0x1ACB', // String.
'errorStackTrace': 'com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)' // String.
} ]
Errors
404 ReferenceNotFoundJsonException
See there: SELLER_SHOULD_BE_PROVIDED_FOR_CR, SELLER_HAS_NOT_REGISTRATION .
GET /v45/users/{username} ¶
username | May NOT be null. |
Request
Response
{/*
'username': 'username', //
'email': 'mail@username.com', //
'role': 'ROLE_SOFTWARE_VENDOR_ADMIN', // roleType. May NOT be null.
'softwareVendor': null //
}
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
PUT /v45/users/{username} ¶
username | May NOT be null. |
Request
'username': 'username', //
'email': 'mail@username.com', //
'role': 'ROLE_SOFTWARE_VENDOR_ADMIN', // roleType. May NOT be null.
'softwareVendor': null //
}
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
422 UnprocessableEntityJsonExceptionSee there: SOFTWARE_VENDOR_IS_MISSING .
POST /v45/users/{username} ¶
username | May NOT be null. |
Request
'username': 'username', //
'password': '9999', //
'email': 'mail@username.com', //
'role': 'ROLE_SOFTWARE_VENDOR_ADMIN', // roleType. May NOT be null.
'softwareVendor': null //
}
Response
Errors
403 ForbiddenJsonExceptionSee there: INSUFFICIENT_ACCESS_RIGHTS .
422 UnprocessableEntityJsonExceptionSee there: SOFTWARE_VENDOR_IS_MISSING .
GET /v45/users-minified ¶
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ {/*
} ]
GET /v45/users ¶
firstResult | Query param |
|
maxResults | Query param |
|
like | Query param |
|
Request
Response
[ {/*
'username': 'username', //
'email': 'mail@username.com', //
'role': 'ROLE_SOFTWARE_VENDOR_ADMIN', // roleType. May NOT be null.
'softwareVendor': null //
} ]
POST /v45/{seller}/treasurers/{identifier}/user ¶
seller | May NOT be null. | |
identifier |
|
Request
}
Response
Errors
404 ReferenceNotFoundJsonException
See there: TREASURER_IS_JOINED_TO_USER_ALREADY, USER_HAS_TREASURER_WITH_SAME_SELLER_ID_ALREADY .
DELETE /v45/{seller}/treasurers/{identifier}/user ¶
seller | May NOT be null. | |
identifier |
|
Request
Response
Errors
404 ReferenceNotFoundJsonException
See there: TREASURER_IS_NOT_JOINED_TO_USER .
PUT /v45/users/{username}/password ¶
username | May NOT be null. |
Request
'newPassword': '0101' //
}
Response
Errors
404 NotFoundJsonException
See there: INSUFFICIENT_ACCESS_RIGHTS .
403 ForbiddenJsonExceptionSee there: OLD_PASSWORD_IS_INCORRECT .
POST /v45/email ¶
Request
'contentType': 'text/plain; charset=UTF-8', // String. May be null.
'subject': 'Lorem ipsum', // String. May NOT be null.
'body': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', // String. Maximum 5000 characters. May NOT be null.
'attachments': [ {/*
'body': 'VGV4dCBvZiB2ZXJ5IGltcG9ydGFudCBkb2N1bWVudC4=' //
} ] // List of objects.
}
Response
Errors
403 ForbiddenJsonExceptionSee there: ACTIVATION_NO_FEATURE .
400 ValueNotValidJsonExceptionSee there: SIZE_SHOULD_BE_IN_RANGE, SHOULD_MATCH_PATTERN, SHOULD_BE_BASE64_ENCODED .