Overview
This help file is designed to guide developers through integrating FDM2 hardware into a POS system using our SDK. By following this guide, you will be able to integrate the objects provided by the SDK to work with FDM2 for signing various transactions and events related to cash register operations.
Objects Overview
1. Company
Represents the company owning the POS system.
public class Company
{
public string VatNo { get; set; } // Vat number for the company
public string EstNo { get; set; } // Establishment number for this establishment where the POS is at
}
2. Cash Drawer
Represents a physical or logical cash drawer in the POS system.
public class CashDrawer
{
public string Id { get; set; }
public string DrawerName { get; set; }
}
3. Employee
Represents an employee who operates the POS system.
4. Pos System
Represents the POS system that communicates with the Checkbox hardware for transaction signing and management.
public class PosSystem
{
public string PosType { get; set; }
public string PosId { get; set; }
public string SoftwareVersion { get; set; }
public List<CheckboxUnit> CheckboxUnits { get; set; }
public List<PosTerminal> Terminals { get; set; }
public List<CashDrawer> CashDrawers { get; set; }
public List<string> CheckboxIdentifiers { get; }
}
- CheckboxUnits: Represents the connected FDM hardware units.
- Terminals: POS terminals associated with this system.
- CashDrawers: List of cash drawers connected to this POS system.
5. Pos Terminal
Represents a terminal within the POS system. This can be a handheld, but also the fixed input device. So a pos system always needs at least one terminal.
public class PosTerminal
{
public string TerminalType { get; set; }
public string TerminalName { get; set; }
public string DeviceId { get; set; }
}
6. Pos Product
Represents a product that can be sold through the POS system.
public class PosProduct
{
public ProductDepartment Department { get; set; }
public string Id { get; set; }
public string ProductName { get; set; }
public QuantityType QuantityType { get; set; }
public List<ProductVatRate> VatBuildup { get; set; }
public decimal UnitPrice { get; }
}
- VatBuildup: Describes the VAT structure for the product.
- UnitPrice: Total price of the product including VAT.
7. Money Transfer
Represents a transfer of money (e.g., payment or withdrawal).
public class MoneyTransfer
{
public string Id { get; set; }
public string Name { get; set; }
public PaymentType Type { get; set; }
public InputMethod InputMethod { get; set; }
public decimal Amount { get; set; }
public MoneyInOutLineType AmountType { get; set; }
public CashDrawer CashDrawer { get; set; }
}
8. Payment
Represents a payment transaction within the POS system.
public class Payment
{
public string Id { get; set; }
public string Name { get; set; }
public PaymentType Type { get; set; }
public InputMethod InputMethod { get; set; }
public decimal Amount { get; set; }
public PaymentLineType AmountType { get; set; }
public CashDrawer? CashDrawer { get; set; }
}
9. Transaction On Costcenter
Represents a financial transaction linked to a specific cost center.
10. Costcenter
A costcenter is the location where the order is placed. Typically a table, but this can also be a chair, or a specific customer. Costcenters can be detailled with subcostcenters,
Note: This is only valid, 2 levels deep.
public class Costcenter
{
public string Id { get; set; }
public CostCenterType Type { get; set; }
public string Reference { get; set; }
}
Further uses of these objects can be seen in action in the tutorials.
Here is the best place to start with the tutorials.