Two billing postures
When Housing.Cloud integrates with your student information system, there are two distinct billing postures. Your institution should be on exactly one of them. Which one you are on is determined by how the TRANSACTIONS and OCCUPANCY integration configs are set.
Implicit billing
With implicit billing, the OCCUPANCY sync sends room rates, and your SIS generates the charges from those rates. Housing.Cloud does not send individual transactions.
This posture requires room rates ON (OCCUPANCY.roomRatesRequired = true) and transactions OFF. Billing is implied by the occupancy and rate data.
Explicit billing
With explicit billing, Housing.Cloud sends individual transactions directly to your SIS, and room rates are not used to bill. Billing is stated explicitly, line by line.
This posture requires room rates OFF and transactions ON (both includeHousingAssignmentTransactions and includeMealPlanAssignmentTransactions = true).
Misconfigurations to avoid
Any combination other than the two clean postures is flagged as Possible Misconfiguration in the integrations UI. The specific misconfigurations are:
Rates ON + transactions ON — double billing. The student gets charged twice: once from rates, and once from transactions.
Rates OFF + transactions OFF — nothing is billed.
Transactions hybrid — only one of housing or meal plan transactions is enabled. This is an incomplete setup.
Configuration truth table
Room rates | Transactions | Result |
|---|---|---|
ON | OFF | Implicit Billing |
OFF | ON | Explicit Billing |
ON | ON | Misconfiguration (double billing) |
OFF | OFF | Misconfiguration (nothing billed) |
any | HYBRID | Misconfiguration (mixed flags) |
Why this matters
The integrations screen surfaces an Implicit Billing, Explicit Billing, or Possible Misconfiguration tag so admins can confirm their billing posture at a glance. If you see the warning tag, your transactions and occupancy configs disagree. Resolve to exactly one posture before charges flow.
The tag only resolves when both TRANSACTIONS and OCCUPANCY configs exist. If either config is missing, no tag is shown because the integration cannot be reasoned about yet.
Fixing a misconfiguration
The tag tells you your posture is wrong; the fix is always to resolve to exactly one clean posture:
Seeing double billing (rates ON + transactions ON)? Decide which system should carry billing and turn the other off — set OCCUPANCY.roomRatesRequired = false (to go Explicit) or disable the transaction includes (to go Implicit).
Seeing nothing billed (both OFF)? Turn exactly one on.
Seeing hybrid transactions? Enable both includeHousingAssignmentTransactions and includeMealPlanAssignmentTransactions, or neither — never just one.