Skip to main content

Hardware Integration

HMP integrates with various hardware devices used in hotel operations.

Supported Hardware​

Key Card Systems​

  • Assa Abloy (VingCard)
  • Dormakaba (ILCO)
  • Onity
  • Salto

Payment Terminals​

  • Verifone
  • Ingenico
  • PAX Technology
  • Pine Labs

Printers​

  • Receipt printers (Epson, Star)
  • Registration card printers
  • Kitchen printers

Scanners​

  • Passport/ID scanners
  • Barcode scanners

Kiosks​

  • Self check-in kiosks
  • Payment kiosks

Key Card Integration​

Assa Abloy (VingCard)​

Configuration​

key_card:
system: vingcard
vingcard:
host: "192.168.1.50"
port: 8080
encoder_id: "ENC001"
site_code: "123"

Create Key​

curl -X POST https://api.hmpcloud.com/v1/keycard/encode \
-H "Authorization: Bearer <token>" \
-d '{
"room_number": "405",
"guest_name": "John Doe",
"check_in": "2026-02-15T14:00:00Z",
"check_out": "2026-02-18T11:00:00Z",
"key_count": 2,
"access_areas": ["ROOM", "POOL", "GYM"]
}'

Response​

{
"data": {
"key_id": "key_123",
"room_number": "405",
"encoded_at": "2026-02-15T14:05:00Z",
"expires_at": "2026-02-18T11:00:00Z",
"key_count": 2
}
}

Invalidate Key​

curl -X POST https://api.hmpcloud.com/v1/keycard/invalidate \
-H "Authorization: Bearer <token>" \
-d '{
"room_number": "405"
}'

Dormakaba Integration​

key_card:
system: dormakaba
dormakaba:
server: "https://kaba.hotel.local"
username: "hmp_api"
password: "xxxxx"

Payment Terminal Integration​

Terminal Configuration​

payment_terminal:
type: pine_labs
pine_labs:
merchant_id: "12345678"
terminal_id: "TID001"
api_key: "xxxxx"

Payment Flow​

Process Payment​

const payment = await terminal.processPayment({
amount: 5000.00,
currency: 'INR',
transactionType: 'SALE',
reference: 'folio_123'
});

// Response
{
status: 'APPROVED',
authCode: '123456',
cardType: 'VISA',
lastFour: '4242',
reference: 'TXN123456'
}

Printer Integration​

Receipt Printer Setup​

printers:
receipt:
type: epson
model: TM-T88VI
connection: network
ip_address: "192.168.1.100"
port: 9100
const receipt = await printer.print({
template: 'GUEST_RECEIPT',
data: {
hotelName: 'Grand Hotel',
guestName: 'John Doe',
roomNumber: '405',
items: [
{ description: 'Room Charge', amount: 5000.00 },
{ description: 'Restaurant', amount: 1500.00 }
],
total: 6500.00,
date: '2026-02-18'
}
});

Kitchen Printer​

printers:
kitchen:
type: star
model: SP700
connection: network
ip_address: "192.168.1.101"

ID Scanner Integration​

Passport Scanner​

id_scanner:
type: desko
model: PENTA
connection: usb

Scan Document​

curl -X POST https://api.hmpcloud.com/v1/scanner/scan \
-H "Authorization: Bearer <token>"

Response​

{
"data": {
"document_type": "PASSPORT",
"country": "IND",
"number": "J1234567",
"first_name": "JOHN",
"last_name": "DOE",
"date_of_birth": "1985-06-15",
"expiry_date": "2030-05-10",
"gender": "M",
"mrz": "P<INDDOE<<JOHN<<<<<<<<<<<<<<<<<<<<<<<<<<<J12345678IND8506152M3005108<<<<<<<<<<<<<<02",
"face_image": "base64_encoded_image"
}
}

Kiosk Integration​

Self Check-in Kiosk​

kiosk:
type: hmp_kiosk
features:
- reservation_lookup
- id_scanning
- payment_collection
- key_dispensing

Check-in Flow​

Kiosk API​

# Initiate kiosk check-in
curl -X POST https://api.hmpcloud.com/v1/kiosk/checkin \
-H "Authorization: Bearer <token>" \
-d '{
"confirmation_number": "HTLABC20260215001",
"id_document": {
"type": "PASSPORT",
"number": "J1234567"
}
}'

Network Requirements​

Firewall Rules​

DevicePortProtocolDirection
Key Encoder8080TCPOutbound
POS Terminal443HTTPSOutbound
Printer9100TCPOutbound
ID ScannerUSB-Local

Network Diagram​

                    ┌─────────────┐
│ HMP API │
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌─────┴─────┐ ┌────┴────┐ ┌─────┴─────┐
│ Encoder │ │ Terminal│ │ Printer │
└───────────┘ └─────────┘ └───────────┘

Troubleshooting​

IssueCauseSolution
Key not encodingEncoder offlineCheck network/power
Terminal timeoutNetwork issueVerify connectivity
Print failedPaper jam/offlineCheck printer status
Scan failedDocument not flatRescan document