ADVERTISEMENT

LTO pushes for blacklisting of its online platform operator

Published Aug 4, 2026 08:48 pm
The Land Transportation Office (LTO) said it started preparing the blacklisting proceedings against the foreign operator of the agency’s online platform over the alleged failure to deliver a complete and functional system for all the transactions involving vehicle registration and driver’s license processing. 
LTO executive director Martin Ontog explained that the Dermalog, through its Land Transportation Management System (LTMS), was supposed to digitalized all the transactions in the agency.
But since it bagged the LTO’s P3.19 billion digitalization project in May 2018, the system is still incomplete up to this point and according to Ontog, that includes 61 unresolved issues as of March 2026.
In seeking for the blacklisting of Dermalog, Ontog also cited other reasons like the company’s alleged refusal to honor 13 formal turnover demands and its withholding of source code and encryption keys.
“Because of Dermalog’s persistent failure to deliver a complete and functional system and its continued non-compliance with its obligations under Republic Act No. 9184, LTO is already preparing blacklisting proceedings against Dermalog,” Ontog told lawmakers in a congressional hearing.
He explained that the refusal to turn over the source code and encryption keys resulted in the LTO effectively blinded in operating, maintaining, and securing the LTMS.
“We cannot secure a system we do not control,” he stressed.
Dermalog is yet to respond to the LTO's statement on blacklisting.
According to Ontog, the delay for the full turnover of the complete and functional system remains incomplete for more than 900 days now despite 13 contract extensions—these issues were flagged by the Commission on Audit (COA) for four consecutive years.
As a result, Ontog said the LTMS is still unable to process even a single public utility vehicle (PUV) transaction or automatically collect penalties on new vehicle registrations, among other limitations.
In June 3, a series of glitches were also recorded in the LTMS which prompted Department of Transportation Secretary Giovanni Lopez to order an investigation into the incident.
Ontog said the investigation found that the outages occurred after the LTMS’s storage was fully utilized and that the firewall logs showing repeated VPN connection attempts. He said the LTO has since disabled the identified accounts and recommended replacing the firewall to ensure that full system access is placed under LTO control.
The incomplete function of the LTMS, according to Ontog, left the LTO with no choice but to continue the parallel operation of the LTMS and the Stradcom-developed LTO-IT System to ensure uninterrupted public services.
This, despite the Office of the Ombudsman’s earlier order directing the LTO to cease using the Stradcom-developed LTO-IT System.
He argued that the use of the LTO-IT System is not an improvised workaround but is anchored on valid contracts and legal grounds.

Related Tags

LTO LTMS
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; } }

{{ static_articles_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.