POSBridge Documentation

Data import specification — what comes in, where it goes

What POSBridge Does

POSBridge is the exclusive data gateway between POS systems and the PAG platform. No other application connects to a POS directly. POSBridge receives raw POS data (via CSV upload or API), maps it to a canonical platform model, and routes each record to the correct target application.

PHASE 1 (Current)
CSV / Excel Upload
Manual file import from POS exports
PHASE 2 (Planned)
Live API Adapters
EPASS XAPI, WhirlWind, STORIS
PHASE 3 (Future)
Bi-directional Sync
Platform → POS (orders, customers)

Data Flow

  POS System (EPASS / WhirlWind / STORIS / CSV Export)
       │
       ▼
  ┌─────────────────────────────────────────┐
  │            POSBridge                     │
  │  ┌──────────┐    ┌───────────────────┐  │
  │  │  Adapter  │───▶│  Field Mapping    │  │
  │  │ (CSV/API) │    │  Engine           │  │
  │  └──────────┘    └───────┬───────────┘  │
  │                          │               │
  │              ┌───────────▼───────────┐   │
  │              │  Canonical Data Model  │  │
  │              │  (Staging Database)    │  │
  │              └───────────┬───────────┘   │
  │                          │               │
  │              ┌───────────▼───────────┐   │
  │              │    Data Router         │  │
  │              └──┬──────┬──────┬──────┘   │
  └─────────────────┼──────┼──────┼──────────┘
                    │      │      │
         ┌──────────┘      │      └──────────┐
         ▼                 ▼                  ▼
  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐
  │  CRM Lite   │  │ PMAppliance  │  │  RepairPro   │
  │ (ClientPulse)│  │    Hub       │  │              │
  │             │  │              │  │              │
  │ • Customers │  │ • Appliances │  │ • Service    │
  │ • Orders    │  │ • Properties │  │   History    │
  │ • Quotes    │  │ • Warranties │  │ • Tickets    │
  │ • Products  │  │              │  │              │
  └─────────────┘  └──────────────┘  └──────────────┘

Data Types & Field Mapping

CUSTOMER

Customers

→ CRM Lite (Person)
Canonical Field Type Required WhirlWind EPASS Description
FirstName string Yes CustFirst FirstName Customer first name
LastName string Yes CustLast LastName Customer last name
Email string No CustEmail Email Primary email address
Phone string No CustPhone Phone1 Primary phone number
Address string No CustAddr1 Address1 Street address
City string No CustCity City City
State string No CustState State State/Province
Zip string No CustZip ZipCode ZIP/Postal code
CustomerCode string No CustNo CustomerCode POS customer account number
AccountType string No CustType AccountType Account type (Retail, Commercial, etc.)
DoNotEmail bool No OptOutEmail DoNotEmail Email opt-out flag
DoNotText bool No OptOutSMS DoNotText SMS opt-out flag
ORDER

Orders / Invoices

→ CRM Lite (PlatformOrder)
Canonical Field Type Required WhirlWind EPASS Description
OrderNumber string Yes OrderNo InvoiceNumber POS order/invoice number
CustomerCode string Yes CustNo CustomerCode Links to customer record
OrderDate DateTime Yes OrderDate InvoiceDate Date order was placed
Status string No OrderStatus Status Open, Pending, Delivered, etc.
SubTotal decimal No SubTotal SubTotal Pre-tax total
Tax decimal No TaxAmt TaxAmount Tax amount
Total decimal Yes OrderTotal Total Total including tax
DeliveryDate DateTime? No DelivDate DeliveryDate Scheduled/actual delivery date
DeliveryStatus string No DelivStatus DeliveryStatus Scheduled, Delivered, etc.
Notes string No Comments Notes Order notes or special instructions
LINE ITEM

Order Line Items

→ CRM Lite (PlatformOrderLine)
Canonical Field Type Required WhirlWind EPASS Description
OrderNumber string Yes OrderNo InvoiceNumber Parent order reference
ModelNumber string Yes Model ModelNumber Product model number
Brand string No Brand BrandName Manufacturer brand
Category string No ProdCat Category Product category
Description string No ProdDesc Description Product description
Quantity int Yes Qty Quantity Quantity ordered
UnitPrice decimal Yes Price SellPrice Sell price per unit
SerialNumber string No Serial SerialNumber Appliance serial number
QUOTE

Quotes

→ CRM Lite (CrmQuote)
Canonical Field Type Required WhirlWind EPASS Description
QuoteNumber string Yes QuoteNo QuoteNumber POS quote number
CustomerCode string Yes CustNo CustomerCode Links to customer
QuoteDate DateTime Yes QuoteDate QuoteDate Date quote was created
ExpirationDate DateTime? No ExpDate ExpirationDate Quote expiration
Status string No QuoteStatus Status Draft, Sent, Accepted, Expired
Total decimal Yes QuoteTotal Total Quote total
PRODUCT

Products / Catalog

→ CRM Lite (ProductCatalog)
Canonical Field Type Required WhirlWind EPASS Description
ModelNumber string Yes Model ModelNumber Product model number (unique key)
Brand string Yes Brand BrandName Manufacturer brand
Category string No ProdCat Category Product category
Description string No ProdDesc Description Product description
CostPrice decimal No Cost DealerCost Dealer/wholesale cost
RetailPrice decimal No MSRP ListPrice List/retail price
DELIVERY

Deliveries

→ CRM Lite (PlatformDelivery)
Canonical Field Type Required WhirlWind EPASS Description
OrderNumber string Yes OrderNo InvoiceNumber Links to order
DeliveryDate DateTime Yes DelivDate DeliveryDate Delivery date
Status string No DelivStatus Status Scheduled, Delivered, Failed
DriverNotes string No Notes DriverNotes Driver/delivery notes
SERVICE

Service History

→ RepairPro
Canonical Field Type Required WhirlWind EPASS Description
CustomerCode string Yes CustNo CustomerCode Links to customer
ServiceDate DateTime Yes SvcDate ServiceDate Date of service
TechnicianName string No TechName TechName Service technician
Description string No SvcDesc ProblemDescription Service description
Parts string No Parts PartsUsed Parts used (comma-separated)
Status string No SvcStatus Status Open, Completed, Cancelled
PAYMENT

Payments

→ DealerOS / CRM Lite
Canonical Field Type Required WhirlWind EPASS Description
OrderNumber string Yes OrderNo InvoiceNumber Links to order/invoice
PaymentDate DateTime Yes PmtDate PaymentDate Date payment received
Amount decimal Yes PmtAmt Amount Payment amount
Method string Yes PmtType PaymentMethod Cash, Check, Credit Card, Financing, ACH
ReferenceNumber string No RefNo ReferenceNumber Check #, card last 4, financing contract #
CardType string No CardType CardType Visa, MC, Amex (if credit card)
FinancingProvider string No FinCo FinanceCompany Synchrony, Wells Fargo, etc.
FinancingTerm string No FinTerm FinanceTerm 12mo, 24mo, etc.
IsDeposit bool No IsDeposit IsDeposit Deposit vs final payment
PO

Purchase Orders

→ DealerOS / Inventory
Canonical Field Type Required WhirlWind EPASS Description
PONumber string Yes PONo PONumber Purchase order number
VendorName string Yes VendorName VendorName Vendor/supplier name
VendorCode string No VendorNo VendorCode Vendor account code
OrderDate DateTime Yes PODate PODate PO creation date
ExpectedDate DateTime? No ETA ETADate Expected delivery date
Status string No POStatus Status Open, Partial, Received, Closed
Total decimal No POTotal Total Total PO amount
TrackingNumber string No Tracking TrackingNumber Shipping tracking number
Notes string No Comments Notes PO notes
PO LINE

PO Line Items

→ DealerOS / Inventory
Canonical Field Type Required WhirlWind EPASS Description
PONumber string Yes PONo PONumber Parent PO reference
ModelNumber string Yes Model ModelNumber Product model ordered
Brand string No Brand BrandName Manufacturer
Description string No ProdDesc Description Product description
QuantityOrdered int Yes QtyOrd QtyOrdered Quantity ordered
QuantityReceived int No QtyRcvd QtyReceived Quantity received so far
UnitCost decimal Yes Cost UnitCost Cost per unit
AssignedOrderNumber string No AssignOrd SalesOrderNumber Customer order this is allocated to
INVENTORY

Inventory Units

→ DealerOS / PMApplianceHub
Canonical Field Type Required WhirlWind EPASS Description
ModelNumber string Yes Model ModelNumber Product model number
SerialNumber string No Serial SerialNumber Unit serial number
Brand string No Brand BrandName Manufacturer
Location string No Location WarehouseLocation Warehouse aisle/bay/shelf
Condition string No Condition Condition New, Open Box, Damaged, Refurbished
ReceivedDate DateTime? No RcvDate ReceivedDate Date received into inventory
CostPaid decimal No CostPaid CostPaid Actual cost paid for this unit
AllocatedToOrder string No AllocOrd AllocatedOrder Order this unit is reserved for
PONumber string No PONo PONumber PO this unit came from
Status string No InvStatus Status Available, Held, Sold, Returned, Damaged
RETURN

Returns

→ DealerOS / ReturnFlow
Canonical Field Type Required WhirlWind EPASS Description
ReturnNumber string Yes RANo ReturnNumber Return authorization number
OriginalOrderNumber string Yes OrigOrder OriginalInvoice Original order being returned
CustomerCode string Yes CustNo CustomerCode Customer returning the item
ReturnDate DateTime Yes RetDate ReturnDate Date return was initiated
ModelNumber string Yes Model ModelNumber Product being returned
SerialNumber string No Serial SerialNumber Serial number of returned unit
Reason string No Reason ReturnReason Reason for return
Condition string No Condition InspectionResult Inspection result: Resellable, Damaged, Defective
RefundAmount decimal No RefundAmt RefundAmount Amount refunded to customer
VendorCreditAmount decimal No VendorCred VendorCredit Credit received from vendor
Disposition string No Disposition Disposition Restock, Return to Vendor, Scrap, Outlet
Status string No RetStatus Status Pending, Inspected, Processed, Closed
DEPOSIT

Bank Deposits

→ DealerOS / Accounting
Canonical Field Type Required WhirlWind EPASS Description
DepositDate DateTime Yes DepDate DepositDate Date of bank deposit
DepositNumber string No DepNo DepositNumber Deposit slip number
CashAmount decimal No Cash CashAmount Cash in deposit
CheckAmount decimal No Checks CheckAmount Checks in deposit
CardAmount decimal No Cards CardAmount Credit card batch total
TotalAmount decimal Yes DepTotal Total Total deposit amount
Status string No DepStatus Status Unposted, Posted, Reconciled
STAFF

Staff / Salespeople

→ DealerOS / CRM Lite
Canonical Field Type Required WhirlWind EPASS Description
EmployeeCode string Yes EmpNo EmployeeCode Employee/salesperson code
FirstName string Yes EmpFirst FirstName First name
LastName string Yes EmpLast LastName Last name
Email string No EmpEmail Email Email
Phone string No EmpPhone Phone Phone
Role string No EmpRole Role Sales Associate, Manager, Warehouse, etc.
CommissionRate decimal? No CommRate CommRate Commission percentage
IsActive bool No Active IsActive Currently active employee
PROPERTY

Properties / Homes

→ PMApplianceHub
Canonical Field Type Required WhirlWind EPASS Description
CustomerCode string Yes CustNo CustomerCode Links to customer/owner
Address string Yes ShipAddr DeliveryAddress Property street address
City string No ShipCity DeliveryCity City
State string No ShipState DeliveryState State
Zip string No ShipZip DeliveryZip ZIP code
UnitNumber string No Unit Suite Apartment/unit number
PropertyType string No House, Condo, Apartment, Commercial
TenantName string No Current tenant (if rental)
APPLIANCE

Appliance Ownership

→ PMApplianceHub (UnitAppliance)
Canonical Field Type Required WhirlWind EPASS Description
CustomerCode string Yes CustNo CustomerCode Links to customer/property owner
PropertyAddress string No ShipAddr DeliveryAddress Property where installed
ApplianceType string Yes ProdCat Category Refrigerator, Range, Dishwasher, etc.
Brand string Yes Brand BrandName Manufacturer brand
ModelNumber string Yes Model ModelNumber Product model number
SerialNumber string No Serial SerialNumber Appliance serial number
PurchaseDate DateTime? No OrderDate InvoiceDate Date purchased (from order)
PurchasePrice decimal? No Price SellPrice Price customer paid
InstallDate DateTime? No DelivDate DeliveryDate Date installed
WarrantyExpires DateTime? No WarrExp WarrantyExpDate Warranty expiration date
WarrantyType string No WarrType WarrantyType Manufacturer, Extended, None
DAMAGE

Damage Reports

→ DealerOS / Warehouse
Canonical Field Type Required WhirlWind EPASS Description
OrderNumber string No OrderNo InvoiceNumber Related order (if applicable)
ModelNumber string Yes Model ModelNumber Damaged product model
SerialNumber string No Serial SerialNumber Serial of damaged unit
DamageDate DateTime Yes DmgDate DamageDate Date damage reported
Severity string No Severity Severity Minor, Moderate, Severe
Description string No DmgDesc Description Description of damage
PhotoUrls string No Damage photos (URLs, comma-separated)
Disposition string No Disposition Disposition Return to Vendor, Outlet, Scrap
TRANSFER

Warehouse Transfers

→ DealerOS / Warehouse
Canonical Field Type Required WhirlWind EPASS Description
TransferNumber string Yes XferNo TransferNo Transfer document number
FromLocation string Yes FromLoc FromWarehouse Source warehouse/location
ToLocation string Yes ToLoc ToWarehouse Destination warehouse/location
TransferDate DateTime Yes XferDate TransferDate Date of transfer
ModelNumber string Yes Model ModelNumber Product being transferred
SerialNumber string No Serial SerialNumber Serial number
Quantity int Yes Qty Quantity Quantity transferred
Status string No XferStatus Status Pending, In Transit, Received
QUOTE LINE

Quote Line Items

→ CRM Lite (CrmQuoteLineItem)
Canonical Field Type Required WhirlWind EPASS Description
QuoteNumber string Yes QuoteNo QuoteNumber Parent quote reference
ModelNumber string Yes Model ModelNumber Product model number
Brand string No Brand BrandName Manufacturer brand
Description string No ProdDesc Description Product description
Quantity int Yes Qty Quantity Quantity quoted
UnitPrice decimal Yes Price SellPrice Quoted price per unit
DiscountPercent decimal? No DiscPct DiscountPct Line-level discount percentage
ExtendedPrice decimal No ExtPrice ExtendedPrice Quantity x UnitPrice - Discount
VENDOR

Vendors / Suppliers

→ DealerOS / CRM Lite (Company)
Canonical Field Type Required WhirlWind EPASS Description
VendorCode string Yes VendorNo VendorCode Vendor account code
VendorName string Yes VendorName VendorName Company name
ContactName string No VendorContact ContactName Primary contact person
Phone string No VendorPhone Phone Phone number
Email string No VendorEmail Email Email address
Address string No VendorAddr Address1 Street address
City string No VendorCity City City
State string No VendorState State State
Zip string No VendorZip ZipCode ZIP code
AccountNumber string No AcctNo AccountNumber Retailer's account # with this vendor
PaymentTerms string No Terms Terms Net 30, COD, etc.
IsActive bool No Active IsActive Active vendor
ADDRESS

Customer Addresses

→ CRM Lite (PersonAddress)
Canonical Field Type Required WhirlWind EPASS Description
CustomerCode string Yes CustNo CustomerCode Links to customer
AddressType string Yes AddrType AddressType Billing, Shipping, Service, Home
Address string Yes Addr1 Address1 Street address
Address2 string No Addr2 Address2 Suite, apt, unit
City string No City City City
State string No State State State
Zip string No Zip ZipCode ZIP code
IsPrimary bool No Primary IsPrimary Primary address for this type
Notes string No AddrNotes Notes Delivery instructions, gate code, etc.
ROUTE

Delivery Routes / Stops

→ DealerOS / DeliveryFlow
Canonical Field Type Required WhirlWind EPASS Description
RouteDate DateTime Yes RouteDate RouteDate Delivery route date
RouteName string No RouteName RouteName Route identifier (Truck A, Route 1, etc.)
DriverName string No Driver DriverName Assigned driver
TruckId string No TruckNo TruckId Truck/vehicle identifier
StopNumber int Yes StopNo StopSequence Stop order on route
OrderNumber string Yes OrderNo InvoiceNumber Order being delivered at this stop
CustomerCode string No CustNo CustomerCode Customer at this stop
Address string No DelivAddr DeliveryAddress Delivery address
TimeWindow string No TimeWin TimeWindow Delivery window (8am-12pm, etc.)
ItemCount int No Items ItemCount Number of items on this stop
Status string No StopStatus Status Scheduled, En Route, Delivered, Failed
CompletedAt DateTime? No DelivTime CompletedTime Actual delivery time
DriverNotes string No Notes DriverNotes Driver notes at delivery
SignatureUrl string No SigUrl SignatureUrl Customer signature image URL
PhotoUrls string No Photos PhotoUrls Delivery photos (comma-separated URLs)
PRICING

Price Lists / Price Codes

→ PriceSync2 / DealerOS
Canonical Field Type Required WhirlWind EPASS Description
PriceCode string Yes PriceCode PriceCode Price list identifier (Retail, Builder, Employee, VIP)
Description string No PriceDesc Description Price list description
ModelNumber string Yes Model ModelNumber Product model
ListPrice decimal No MSRP ListPrice Manufacturer suggested retail price
SellPrice decimal Yes SellPrice SellPrice Selling price for this price code
CostPrice decimal No Cost DealerCost Dealer cost
MinPrice decimal? No MinPrice MinPrice Minimum allowed sell price (MAP)
EffectiveDate DateTime? No EffDate EffectiveDate When this price takes effect
ExpirationDate DateTime? No ExpDate ExpirationDate When this price expires
PROMO

Promotions / Rebates

→ DealerOS / CRM Lite
Canonical Field Type Required WhirlWind EPASS Description
PromoCode string Yes PromoNo PromoCode Promotion/rebate identifier
PromoName string Yes PromoName PromoName Promotion name
PromoType string No PromoType PromoType Manufacturer Rebate, Store Promo, Co-op, Spiff
Brand string No Brand BrandName Applicable brand (or blank for all)
ModelNumber string No Model ModelNumber Specific model (or blank for category)
Category string No ProdCat Category Product category
DiscountAmount decimal? No DiscAmt DiscountAmount Fixed dollar discount
DiscountPercent decimal? No DiscPct DiscountPct Percentage discount
RebateAmount decimal? No RebateAmt RebateAmount Mail-in/instant rebate amount
StartDate DateTime Yes StartDate StartDate Promotion start date
EndDate DateTime Yes EndDate EndDate Promotion end date
IsActive bool No Active IsActive Currently active
WARRANTY

Warranty Claims

→ RepairPro
Canonical Field Type Required WhirlWind EPASS Description
ClaimNumber string Yes ClaimNo ClaimNumber Warranty claim number
CustomerCode string Yes CustNo CustomerCode Customer filing claim
ModelNumber string Yes Model ModelNumber Product model
SerialNumber string Yes Serial SerialNumber Appliance serial number
ClaimDate DateTime Yes ClaimDate ClaimDate Date claim filed
IssueDescription string No ClaimDesc Description Description of the issue
ClaimStatus string No ClaimStatus Status Filed, Approved, Denied, Paid
ClaimAmount decimal? No ClaimAmt ClaimAmount Amount claimed
PaidAmount decimal? No PaidAmt PaidAmount Amount paid by manufacturer
ManufacturerRef string No MfgRef MfgReference Manufacturer reference/case number
NOTE

Customer Notes

→ CRM Lite (Communication)
Canonical Field Type Required WhirlWind EPASS Description
CustomerCode string Yes CustNo CustomerCode Links to customer
NoteDate DateTime Yes NoteDate NoteDate Date note was created
NoteText string Yes Note NoteText Note content
NoteType string No NoteType NoteType General, Phone Call, Follow-up, Complaint
CreatedBy string No Author CreatedBy Employee who wrote the note
FINANCE

Financing Applications

→ DealerOS
Canonical Field Type Required WhirlWind EPASS Description
ApplicationId string Yes AppNo ApplicationId Financing application ID
CustomerCode string Yes CustNo CustomerCode Customer applying
Provider string Yes FinCo FinanceCompany Synchrony, Wells Fargo, GreenSky, etc.
ApplicationDate DateTime Yes AppDate ApplicationDate Date applied
RequestedAmount decimal No ReqAmt RequestedAmount Amount requested
ApprovedAmount decimal? No ApprvAmt ApprovedAmount Amount approved
Term string No FinTerm Term 12mo, 24mo, 36mo, etc.
InterestRate decimal? No IntRate Rate Interest rate (0 for promos)
Status string No AppStatus Status Pending, Approved, Denied, Expired
OrderNumber string No OrderNo InvoiceNumber Order this financing is applied to
PARTS

Parts Inventory

→ RepairPro
Canonical Field Type Required WhirlWind EPASS Description
PartNumber string Yes PartNo PartNumber Part number / SKU
Description string No PartDesc Description Part description
Brand string No Brand BrandName Manufacturer
QuantityOnHand int No QtyOH QtyOnHand Current stock count
CostPrice decimal No PartCost Cost Cost per unit
SellPrice decimal No PartPrice SellPrice Sell price per unit
Location string No Bin BinLocation Storage bin/shelf location
CompatibleModels string No FitsModels CompatibleModels Appliance models this part fits (comma-separated)
APPOINTMENT

Service Appointments

→ RepairPro
Canonical Field Type Required WhirlWind EPASS Description
AppointmentId string Yes SvcTicket TicketNumber Service ticket/appointment ID
CustomerCode string Yes CustNo CustomerCode Customer
ScheduledDate DateTime Yes SvcDate ScheduledDate Scheduled service date
TimeWindow string No TimeWin TimeWindow Morning, Afternoon, 8-12, 1-5
TechnicianName string No Tech TechName Assigned technician
ServiceAddress string No SvcAddr ServiceAddress Where service is performed
ApplianceModel string No Model ModelNumber Appliance to be serviced
ApplianceSerial string No Serial SerialNumber Serial number
ProblemDescription string No Problem Problem Customer-reported issue
Status string No SvcStatus Status Scheduled, Dispatched, In Progress, Completed, Cancelled
EstimatedDuration string No EstTime EstDuration Estimated time (1hr, 2hr, etc.)
TAX

Tax Codes / Rates

→ DealerOS / PriceSync2
Canonical Field Type Required WhirlWind EPASS Description
TaxCode string Yes TaxCode TaxCode Tax jurisdiction code
Description string No TaxDesc Description Tax jurisdiction name
Rate decimal Yes TaxRate TaxRate Tax rate percentage
IsDefault bool No Default IsDefault Default tax code for new orders
State string No State State State this tax applies to
County string No County County County (if applicable)
City string No City City City (if applicable)
EffectiveDate DateTime? No EffDate EffectiveDate When this rate takes effect

Supported POS Systems

CSV / Excel Upload
Any POS system that can export to CSV or Excel. Manual upload, field mapping, preview before import.
AVAILABLE NOW
WhirlWind
WhirlWind POS integration. Product catalog, inventory, orders, customer records. Primary POS target for V1.
PHASE 2 — PRIORITY
EPASS XAPI
Direct API integration via EPASS XAPI. Customers, invoices, service requests, dispatching.
PHASE 2
STORIS
STORIS ERP integration for furniture/appliance retailers.
PHASE 3

API Endpoints (Phase 2)

When live API adapters are built, these will be the endpoints POSBridge exposes for other platform apps to call:

Method Endpoint Description Status
GET/api/customers/{posId}Look up customer by POS IDPlanned
POST/api/customers/syncSync customer from POS to platformPlanned
GET/api/orders/{posOrderNumber}Look up order by POS order numberPlanned
POST/api/orders/syncSync order/invoice from POSPlanned
POST/api/quotes/send-to-posSend a CRM quote to the POS systemPlanned
GET/api/inventory/{model}Check POS inventory for a productPlanned
POST/api/import/uploadUpload CSV/Excel for batch importPhase 1
GET/api/import/{jobId}/statusCheck import job progressPhase 1
An unhandled error has occurred. Reload X