Customer & Engagement

Synchronise customer master data, loyalty artefacts and communication workflows between POSSUM back office, POS terminals and external systems.

CustomerController

Provides delta-synchronisation for customer profiles, exposes loyalty discount structures and supports inbound customer creation from POS channels as well as Visma ERP integrations.

Endpoint Description Request Response
GET /api/Customer/GetCustomers Returns customers created or updated inside the requested time window. Query: Dates with LastExecutedDate, CurrentDate and optional paging metadata. List of Customer entities without related custom fields.
GET /api/Customer/GetAllCustomers Provides the full customer master including custom fields for first-time synchronisation. None. List of Customer objects with their Customer_CustomField values populated.
GET /api/Customer/GetCustomerDiscount Returns discount cards, discount groups and customer discount mappings updated within the specified timeframe. Query: Dates delta window. CustomerDiscountData with CustomerCards, DiscountGroups and CustomerDiscountGroups.
GET /api/Customer/GetCompany Exposes the tenant company metadata resolved for the authenticated user. None. Company entity from the master database.
GET /api/Customer/GenerateDBBackup Triggers a SQL backup of the tenant database, downloads it locally on the server and streams the .bak file back to the caller. None. Binary stream (application/octet-stream) containing the database backup.
POST /api/Customer/PostCustomer Creates or updates a customer record submitted from the POSSUM POS application. Body: single Customer with contact details and balance metadata. HTTP 200 on success; HTTP 417 when persistence fails.
POST /api/Customer/PostVismaCustomer Bulk upserts customers received from Visma, matching on the ExternalId when available. Body: array of Customer objects from the Visma export. HTTP 200 once all customers are synchronised; HTTP 417 if an exception is thrown.

SubscriptionController

Lets integrations verify whether a tenant's subscription is active before allowing POS login or data sync.

Endpoint Description Request Response
GET /api/Subscription/GetSubscription Checks the subscription table for the supplied company GUID and confirms that the status is active. Query: companyGuid string (GUID). true when the subscription exists and is active, otherwise false.

DepositHistoryController

Synchronises deposit ledger movements between back office and tills, enabling accurate gift card and deposit balances.

Endpoint Description Request Response
GET /api/DepositHistory/GetDepositHistory Fetches deposit transactions created during the provided window with paging support. Query: Dates including PageNo and PageSize. List of DepositHistory entries ordered by creation date.
POST /api/DepositHistory/PostDepositHistory Creates or updates a deposit transaction captured offline by a POS terminal. Body: DepositHistory object. HTTP 200 when persisted; HTTP 417 for validation or persistence errors.

ShareController

Supports post-sale communications by emailing receipts or forwarding PDF reports supplied by POS applications.

Endpoint Description Request Response
POST /api/Share/ShareReceipt Composes an HTML receipt from the submitted order data and emails it to the requested address. Body: ShareReceipt containing Order, line items, payments and the recipient email. HTTP 200 if the SMTP send succeeds; HTTP 417 or 501 if not.
POST /api/Share/ShareFile Accepts a multipart file upload and emails it to the provided recipient. Form data: fields for Email, Subject, FileName plus the uploaded file stream. HTTP 200 when the email is sent; HTTP 400 or 417 when sending fails.