Skip to main content

Accounting Integration

HMP integrates with accounting software to synchronize financial data.

Supported Systems​

SystemIntegration TypeFeatures
TallyDirect APIVouchers, Ledgers
QuickBooksOAuth APIInvoices, Payments
SAPWeb ServicesFull ERP sync
Zoho BooksREST APIInvoices, Contacts
XeroOAuth APIInvoices, Bank

Integration Architecture​

Data Synchronization​

Revenue Posting​

Daily revenue is exported to accounting:

{
"date": "2026-01-22",
"entries": [
{
"account": "ROOM_REVENUE",
"debit": 0,
"credit": 500000.00,
"description": "Room Revenue - Jan 22"
},
{
"account": "FB_REVENUE",
"debit": 0,
"credit": 150000.00,
"description": "F&B Revenue - Jan 22"
},
{
"account": "CGST_PAYABLE",
"debit": 0,
"credit": 58500.00,
"description": "CGST Collected"
},
{
"account": "SGST_PAYABLE",
"debit": 0,
"credit": 58500.00,
"description": "SGST Collected"
},
{
"account": "GUEST_LEDGER",
"debit": 767000.00,
"credit": 0,
"description": "Guest Receivables"
}
]
}

City Ledger Transfers​

Company/TA invoices transferred to accounting:

{
"type": "INVOICE",
"invoice_number": "INV-2026-0122",
"customer": {
"name": "ABC Corporation",
"code": "CUST001"
},
"amount": 50000.00,
"tax": 9000.00,
"total": 59000.00,
"due_date": "2026-02-22",
"line_items": [
{
"description": "Room charges - John Doe",
"amount": 50000.00
}
]
}

Tally Integration​

Configuration​

accounting:
system: tally
tally:
host: "192.168.1.100"
port: 9000
company: "Hotel Operations"

Voucher Export​

<ENVELOPE>
<HEADER>
<TALLYREQUEST>Import Data</TALLYREQUEST>
</HEADER>
<BODY>
<IMPORTDATA>
<REQUESTDESC>
<REPORTNAME>Vouchers</REPORTNAME>
</REQUESTDESC>
<REQUESTDATA>
<TALLYMESSAGE>
<VOUCHER>
<DATE>20260122</DATE>
<VOUCHERTYPENAME>Journal</VOUCHERTYPENAME>
<NARRATION>Daily Revenue - Jan 22</NARRATION>
<ALLLEDGERENTRIES.LIST>
<LEDGERNAME>Room Revenue</LEDGERNAME>
<AMOUNT>-500000</AMOUNT>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
</TALLYMESSAGE>
</REQUESTDATA>
</IMPORTDATA>
</BODY>
</ENVELOPE>

QuickBooks Integration​

OAuth Setup​

  1. Create QuickBooks Developer account
  2. Register application
  3. Configure OAuth redirect
  4. Authorize HMP access

Configuration​

accounting:
system: quickbooks
quickbooks:
client_id: "xxxxx"
client_secret: "xxxxx"
realm_id: "123456789"
environment: "production"

Invoice Sync​

const invoice = await qbo.createInvoice({
CustomerRef: { value: customerId },
Line: [
{
Amount: 50000,
DetailType: "SalesItemLineDetail",
SalesItemLineDetail: {
ItemRef: { value: "ROOM_REVENUE" },
Qty: 1,
UnitPrice: 50000
}
}
],
DueDate: "2026-02-22"
});

Account Mapping​

Chart of Accounts​

Map HMP transaction codes to accounting accounts:

account_mapping:
# Revenue accounts
ROOM_REVENUE: "4000"
FB_REVENUE: "4100"
OTHER_REVENUE: "4200"

# Tax accounts
CGST_PAYABLE: "2100"
SGST_PAYABLE: "2101"
IGST_PAYABLE: "2102"

# Receivable accounts
GUEST_LEDGER: "1200"
CITY_LEDGER: "1210"

# Payment accounts
CASH: "1000"
BANK: "1010"
CREDIT_CARD: "1020"

Export Options​

Manual Export​

curl -X POST https://api.hmpcloud.com/v1/accounting/export \
-H "Authorization: Bearer <token>" \
-d '{
"date_from": "2026-01-01",
"date_to": "2026-01-31",
"format": "TALLY_XML"
}'

Scheduled Export​

export_schedule:
frequency: daily
time: "06:00"
format: TALLY_XML
destination: "sftp://accounting.hotel.com/imports/"

Export Formats​

  • Tally XML
  • QuickBooks IIF
  • CSV
  • JSON
  • Excel

Reports for Accounting​

Trial Balance​

Daily trial balance matching front office and accounting.

Revenue Summary​

{
"date": "2026-01-22",
"revenue": {
"rooms": 500000.00,
"food_beverage": 150000.00,
"banquet": 75000.00,
"other": 25000.00,
"total_gross": 750000.00,
"taxes": 117000.00,
"total_net": 633000.00
}
}

Receivables Aging​

{
"aging": [
{
"period": "0-30 days",
"amount": 500000.00
},
{
"period": "31-60 days",
"amount": 200000.00
},
{
"period": "61-90 days",
"amount": 50000.00
},
{
"period": "90+ days",
"amount": 25000.00
}
]
}

Reconciliation​

Daily Reconciliation​

Verify:

  • Guest ledger balance
  • Cash receipts
  • Credit card settlements
  • City ledger transfers

Month-End Close​

  1. Verify all folios settled
  2. Complete AR aging review
  3. Reconcile bank statements
  4. Generate final reports
  5. Export to accounting