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
Print Receipt
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
| Device | Port | Protocol | Direction |
|---|---|---|---|
| Key Encoder | 8080 | TCP | Outbound |
| POS Terminal | 443 | HTTPS | Outbound |
| Printer | 9100 | TCP | Outbound |
| ID Scanner | USB | - | Local |
Network Diagram
┌─────────────┐
│ HMP API │
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌─────┴─────┐ ┌────┴────┐ ┌─────┴─────┐
│ Encoder │ │ Terminal│ │ Printer │
└───────────┘ └─────────┘ └───────────┘
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Key not encoding | Encoder offline | Check network/power |
| Terminal timeout | Network issue | Verify connectivity |
| Print failed | Paper jam/offline | Check printer status |
| Scan failed | Document not flat | Rescan document |