Mobile App Development for Utility Payments: GIS Housing, Billing, SBP Integration
Mobile app development for utility payments is our specialization. Such an app for a management company automates meter readings, charges, and payment collection. Over 5 years, we have delivered more than 15 projects for management companies and aggregators, accumulating integration experience with dozens of billing systems. Imagine: a user opens the app, enters meter readings, sees charges, and pays in three taps. But behind this are dozens of integrations—from GIS Housing to the specific management company's billing, from SBP to push notifications. If the API is not ready or data arrives in "raw" form, deadlines slip. We know how to avoid the pitfalls.
How to Integrate with GIS Housing?
The main challenge is the diversity of data sources. Management companies use different systems: 1C:Housing, Mercury, RCC, or their own billing. Each has its own API scheme—from SOAP services to REST with JWT. Some companies still only provide data in XML with outdated schemas. A data aggregator (e.g., Fintech Hub, Free Utility API, EPS) normalizes information from various sources into a single format—saving up to 80% of integration time.
Practically: if there is no direct contract with the management company, we connect via SMEV or paid intermediaries. The aggregator normalizes data from different companies into a unified format—saving a month of adapter development.
// Request for charges by personal account struct BillingRequest: Encodable { let accountNumber: String let period: String // "2025-03" } struct BillingResponse: Decodable { let services: [UtilityService] let totalDebt: Decimal let lastPaymentDate: Date? } struct UtilityService: Decodable { let id: String let name: String // "Cold water supply" let amount: Decimal let debt: Decimal let meterValue: Double? // current reading } | Source | Integration Complexity | Adaptation Time | Monthly Cost |
|---|---|---|---|
| Direct company API | High (individual scheme) | 2–4 weeks | No subscription fee |
| Aggregator | Low (unified REST) | 1–2 weeks | 10,000 – 30,000 RUB |
How is the Meter Reading Problem Solved?
The user enters readings—they go to the billing system via PUT /meters/{meterId}/readings. The billing system only accepts readings during a specific period (e.g., 15th to 25th). Outside that period, an error 403 READINGS_NOT_ACCEPTED_NOW is returned. This must be clearly shown in the UI, not as "Unknown error".
Another nuance: readings must be greater than the previous ones. Client-side validation does not replace server-side, but it saves requests—we immediately block input of a lower value with a hint.
Why SBP is More Convenient for Utilities?
For payments, we use SBP (most convenient for utilities—no commission for individuals), YooKassa, or bank acquiring (if the management company has a direct contract). We create a PaymentOrder with recipient details: Tax ID, KPP, BIC, company account, and payment purpose with the personal account.
When paying multiple services in a batch, each goes as a separate payment because different services have different recipient details. Visually, it's one flow for the user; technically, it is several sequential POST /payments. Cancelling one should not roll back already processed payments.
On Android, Google Pay button via PaymentsClient from com.google.android.gms:play-services-wallet. On iOS—PKPaymentRequest via PassKit. Both require a Merchant ID and an agreement with the acquirer. SBP is 3 times faster to implement than classic acquiring.
| Payment Method | User Commission | Implementation Speed | Provider Requirements |
|---|---|---|---|
| SBP | 0% | 1–2 days | Any bank with SBP |
| Bank card | 0–2% | 2–4 weeks | Agreement with acquirer |
Auto-Payments and Debt Notifications
Auto-payments are set up as recurring payments on a schedule. The user specifies the amount and debit day; the system automatically checks charges and initiates payment via SBP or card. If funds are insufficient—a push notification to top up the card. Debt notifications are configured via Firebase Cloud Messaging or APNs. The system sends a push when the balance becomes negative or the payment deadline is approaching.
How is the Development and Testing Process Organized?
We go from auditing sources to deployment. The process includes the following steps:
- Audit available data sources of the management company (GIS Housing, billing, aggregator).
- Design a data model that allows adding new providers.
- Develop screens: personal accounts, meter reading submission, payment.
- Integrated payment gateway (SBP, acquiring).
- Configure push notifications and payment history.
- Test with real data simulating edge cases (double payment, gateway failure).
- Deploy to App Store and Google Play.
- Document and train operators.
The billing API response time is usually 200–500 ms, allowing bill payment in 2–3 seconds. Savings on commissions when switching to SBP can be up to 300,000 RUB per year for a management company with a turnover of 15 million RUB.
What is Included in the Work
- Analysis of available data sources of the management company (GIS Housing, billing, aggregator)
- Integration and testing of the payment gateway
- Development of screens for personal accounts, meter readings, batch payment—full utility billing functionality in the mobile app
- Configuration of push notifications and payment history
- Upload to App Store and Google Play (certificates, consents)
- API documentation and operator instructions
- Training for the client's team (2–3 hours)
- 12-month warranty support
Timeline and Milestones
4–6 weeks for MVP with one management company. 8–12 weeks for an app supporting multiple companies via an aggregator, with meter reading submission and batch payment. The cost is calculated individually after requirements analysis.
Order a mobile app development for utility payments—contact us, we will prepare a commercial proposal within a day. Get a consultation: fill out the form on the website or call us.







