project and legal - huginsdk/fpu GitHub Wiki
The most important rule of working with FPU is that your sales application must trigger fiscal operation at the time of initial interaction with the customer.
Turkish Revenue Authority (GİB) requires that all receipt (fiş) transactions must begin and end at FPU regardless of payment method. In addition, all transactions including invoice and e-invoice (fatura, e-fatura, e-arşiv..) requiring credit card payment must also begin end at FPU.
###What does it mean for a transaction to begin at FPU?
For example, at table service restaurants FPU must be triggered at the time of ticket opening for each table (at the time new customer sits down at the table and places initial order) Likewise for self service or other type of cashier operated POS, FPU must be triggered before first sales item is processed (i.e. first barcode is scanned or PLU button pressed and results are displayed on screen)
This requires the cashier to know the type of fiscal document (receipt vs invoice) that will be printed and the payment method before transaction begins. Therefore the sales application is advised to have an initial menu consisting of 3 buttons to start a sale transaction:
- Receipt (Fiş)
- Invoice / Credit card (Fatura / kredi kartı)
- Invoice / Cash&other (Fatura / nakit, diğer)
When either option 1 or 2 are selected, FPU must be triggered immediately. When FPU is triggered via call to PrintReceiptHeader function, it will print receipt/invoice header and issue a fiscal sales token to the sales application which will allow it to make a fiscal sale. Unless a valid "fiscal token" is obtained from FPU first, subsequent calls will not be accepted.
All software vendors willing to integrate with FPU have to sign a binding agreement with Hugin, accepting that their software will not violate these rules and also will not function in any way to alter sales total or VAT calculations. Hugin will inform government authorities about the details of the software vendor, software model and version in order to obtain a license code for each software vendor.