KFI V1.01
The KFI (KassaForte Interface) is a simple API to send orders to a KassaForte POS and retrieve feedback about the order.
Table of Contents
-
Sending or requesting data
These are requests, that are initiated by your system. -
Receiving push updates (optional)
These are updates, that are send by our server to an endpoint of your choice, whenever a relevant event occurs. These are optional to use. If you want to use them please contact us, and tell us the endpoint to send to, and which of the features should be activated.
Sending an Order
This is pretty simple: Just send a HTTP-POST request with the XML-document as the body to
https://webserver.kassaforte.de/interfaces/KFI/v1/
A simple example using curl can be found here
Request expected waiting times
With this, you can request the currently expected waiting times for delivery and pickup orders. Beware, these are general estimations and are not tied to a specific order.
https://webserver.kassaforte.de/interfaces/KFI/v1/waitingtimes/
This request doesn't need a body.
Expected waiting times updated
Your endpoint will receive this update, whenever the estimated waiting times are updated in KassaForte POS. This is the same information, that can be obtained by the request above.
The data will be send as application/x-www-form-urlencoded
with the following parameters (regex shows possible values):
[
"report" => "expectedWaitingTime",
"kfiUsername" => (\w+),
"deliverytime" => (\d+|-1),
"pickuptime" => (\d+|-1)
]
kfiUsername can be used to identify the shop on your end, as this call can't provide an order-id.
A value of -1 for the *time parameters means, that the user wished to explizitly close the shop for that particular order type.
Delivery time for order updated
Your endpoint will receive this update, when the order was received by KassaForte POS and the user chose an appropriate delivery time.
The data will be send as application/x-www-form-urlencoded
with the following parameters (regex shows possible values):
[
"report" => "updateDeliveryTime",
"orderId" => <your order-id>,
"deliverytime" => <ISO 8601 date> // e.g. 2021-12-10T20:00:00+01:00
]
Order canceled
Your endpoint will receive this update, when the order was received by KassaForte POS and the user chose to cancel the order.
The data will be send as application/x-www-form-urlencoded
with the following parameters (regex shows possible values):
[
"report" => "cancel",
"orderId" => <your order-id>,
"reason" => <a string containing the reason for the cancellation>
]
Unfetched orders
Our webserver periodically searches for orders, that should have been transmitted to KassaForte POS, but didn't in time. There can be many reasons for this, but most likely it is a loss of communication between the POS and our webservers.
To mitigate the effects of this as much as possible, we can report unfetched order back to you, so you could act on this information if you find it nessessary.
An order is considered unfetched in two cases:
- It is a ASAP-order and was received more than 5 minutes ago
- It is an order with an desired delivery time, this time is within one hour from the time of the check and was recieved more than 5 minutes ago
Opening hours are also taken into account, to avoid false positives during downtimes.
The data will be send as application/x-www-form-urlencoded
with the following parameters (regex shows possible values):
[
"report" => "unfetched",
"orderIds" => [<your order-id>, <your order-id>,...],
]