ADVERTISEMENT

Disputes on contracts between buyers, sellers of real estate projects should be settled by HSAC, not RTC -- SC

Published Sep 10, 2025 02:51 pm
Disputes involving contractual and legal obligations between buyers and developers of real estate projects, life condominium units, should be decided by the Human Settlements Adjudication Commission (HSAC) and not by the regional trial court (RTC), the Supreme Court (SC) ruled.
In a Decision written by Associate Justice Henri Jean Paul B. Inting, the SC said that under Presidential Decree No. 957, as amended, the then Housing and Land Use Regulatory Board, now HSAC, has exclusive jurisdiction over cases involving contractual and legal obligations between buyers and developers of real estate projects.
The SC said that while the RTC has jurisdiction over the criminal aspect of the case, it did not have the authority to rule on the civil liability arising from the contract.
With its ruling, the SC nullified the RTC’s ruling that held Vivien M. Cadungog and Sung Ha Jung civilly liable to each other over a contract to sell involving a condominium unit.
A summary of the decision issued by the SC’s Office of the Spokesperson stated that under the contract, Cadungog -- a developer of a condominium building in Cebu City -- agreed to deliver a unit to Sung once the payment of P3.5 million was completed.
Sung paid P175,000 as down payment and then P3 million, leaving a balance of P258,950.
Because of the unpaid amount, Cadungog refused to deliver the unit.
Sung then filed a criminal complaint against Cadungog, citing a violation of PD 957, the Subdivision and Condominium Buyers’ Protective Decree.
On Sept. 16, 2011, the RTC acquitted Cadungog of the criminal charge, but ordered her to either deliver the unit upon full payment or return the amount paid by Sung.
Cadungog elevated the case to the Court of Appeals (CA) and pointed out that the then HLURB, not the RTC, had jurisdiction over the civil aspect of her case.
However, the CA dismissed Cadungog’s petition with a ruling that under the 2000 Rules on Criminal Procedure, civil liability is automatically included in a criminal case unless specifically waived.
Represented by her heirs, Cadungog filed a petition before the SC and challenged the 2019 and 2020 rulings of the CA.
The SC granted the petition filed by the heirs of Cadungog.
It explained that while civil liability can be decided in a criminal case, this does not apply when the liability arises from a contract like in the Cadungog case.
It said the civil dispute between Cadungog and Sung stemmed from their contract to sell. It also said that at the time Sung filed the complaint, it was the HLURB that had authority over such cases.
The SC clarified that while the RTC had jurisdiction over the criminal aspect of the case, it did not have the authority to rule on the civil liability arising from the contract.
Thus, the RTC’s decision on the civil matter is null and void, the SC ruled
The dispositive portion of the SC decision:
“Accordingly, the Petition for Review on Certiorari is granted. The Decision dated Aug. 20, 2019, and the Resolution dated Aug. 28, 2020, of the Court of Appeals in CA-G.R. SP No. 06966 are reversed and set aside.
“The Decision dated Sept. 16, 2011, of Branch 14, Regional Trial Court, Cebu City, in Criminal Case No. CBU-90099, insofar as it ruled on the civil liabilities of the parties, is hereby declared as null and void for lack of jurisdiction. So ordered.”
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.