Post incidental charges from a POS, minibar system, spa terminal, or custom middleware onto the in-house guest folio without staff manual entry.
POST /api/v1/folio-inbound/charges
Content-Type: application/json
x-api-key: <property-scoped Connect API key>Authentication matches the Connect API: ApiKeyGuard + ConnectScopeGuard. A property-scoped key automatically pins the tenant; platform keys are not usable here without a bound property (the controller requires principal.propertyId).
OpenAPI tag: folio-inbound.
| Field | Required | Notes |
|---|---|---|
roomNumber |
yes | Guest room number (max 20 chars) |
type |
yes | One of: food_beverage, minibar, phone, laundry, parking, spa, incidental, fee, adjustment, package |
amount |
yes | Decimal string, e.g. "18.50" |
currencyCode |
yes | ISO 4217, e.g. "USD" |
vendorTxnId |
yes | Your unique transaction id (max 120) — used for idempotency |
description |
no | Line description |
serviceDate |
no | YYYY-MM-DD |
Example:
{
"roomNumber": "1204",
"type": "minibar",
"amount": "18.50",
"currencyCode": "USD",
"vendorTxnId": "pos-txn-0001249",
"description": "Minibar restock",
"serviceDate": "2026-07-23"
}- Resolves the room and an in-house reservation (
checked_in,stayover, ordue_out) for that property. - Posts the charge to the guest folio via the core folio service.
- Duplicate
vendorTxnIdfor the same property returns the existing charge (safe retries from POS). - Unknown room →
400; no in-house guest → error from business rules.
- Issue a property-scoped API key (Connect API key).
- On checkout at the POS, send room number (from room charge account or PMS lookup) and line items.
- Retry on network errors with the same
vendorTxnId. - Optionally subscribe to
folio.*or payment events via webhooks for reconciliation.
HAIP also exposes POST /api/v1/pos/charges for outlet POS integrations (DTO includes explicit propertyId for platform callers). Prefer folio-inbound when you only have room number + amount and a property-bound key.
POS vendors that post via this inbound pattern (middleware maps vendor tickets → folio charges):
square-pos, toast, clover, epos-now, shopify-pos, loyverse, erply, marketman.