Customer Verification Platform for a Lithuanian E-Money Institution
Designed and built a clickable KYC and KYB case-management platform for a Vilnius electronic money institution: a case queue with SLAs, individual and business cases with registry comparison and beneficial ownership traced through every layer, an explainable risk score, four-eyes approval and requests for information sent to customers.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, case queue, individual case, business case, four-eyes approvals and requests for information. Every case in the queue opens its own case page with step rail, checks, risk, documents and activity.
Percentages are multiplied along each chain and the chains added up. In the showcase business case, one owner reaches 60% through two 30% paths, one of them via a Cyprus holding flagged as not yet verified from a registry.
Onboarding decisions, PEP relationships, risk overrides, step waivers and EDD conclusions. The requester can never approve their own proposal, and PEP and high-risk items wait for the MLRO.
20 open and 5 closed cases across 6 workflows, with 10 approvals, 13 requests for information and 8 staff users, in Lithuanian names, legal forms and euro amounts.
Pamarys Pay grew from 4,000 to 44,000 customers in three years on an identity-verification vendor's dashboard, a shared mailbox and a spreadsheet of business owners. Every business application became an email thread: analysts copied registry data by hand, drew ownership charts in slides and worked out indirect percentages on a calculator. Nobody could say how many cases were past SLA, and a Bank of Lithuania inspection found risk assessments that did not match the file and PEP relationships approved without a recorded senior sign-off.
Gija is the one place the compliance team verifies every customer. Cases arrive in a queue with SLA countdowns, individual cases bring identity, liveness, address and screening results together, business cases compare registry data with the customer's declaration and calculate beneficial owners through every layer, and any decision above an analyst's risk mandate goes to a second reviewer with the reason on screen.
As an EMI licensed by the Bank of Lithuania, Pamarys Pay has to apply customer due diligence under Lithuania's AML/CTF law, which transposes the EU anti-money laundering directives. The checks depend on the customer's risk, and for a business they reach through every company in the chain to the people who own or control it.
A beneficial owner generally holds more than 25% of shares or voting rights, directly or indirectly, or controls the company by other means. Where nobody qualifies, the senior managing official is recorded instead. With holdings in several countries, analysts had to multiply percentages along each chain by hand.
Lithuanian companies are checked against the Register of Legal Entities and its JANGIS shareholder data, and discrepancies between the register and what the customer says should be reported. Copying fields by hand made mismatches easy to miss and impossible to track.
PEPs, their family and close associates, customers linked to high-risk third countries and complex structures need enhanced due diligence, and a PEP relationship needs senior management approval. Approvals by email left no record of who signed off, and risk scores did not always match the file.
Missing documents were asked for in free-text emails, and customers answered with photos in the wrong format. With no queue, nobody knew which cases were waiting on the customer or past their SLA, and business onboarding took a median of 11 working days.
Mapped 9 roles from KYC analyst to MLRO, auditor and the customer, 29 screens (25 staff and 4 customer portal) and the data model for cases, workflow steps, checks, documents, company roles, registry snapshots, ownership structures, risk assessments, approvals and requests. Wrote down the rules the design follows: the risk-based approach, the beneficial ownership threshold, register discrepancy reporting, PEP approval, the EBA guidelines on remote onboarding, eIDAS identification such as Smart-ID, record keeping, GDPR for biometric data, and keeping thresholds configurable for the EU AMLR expected from July 2027.
Built 6 key screens on a production dashboard kit: the dashboard with KPIs, queue by status and risk mix, the case queue with tabs, filters, SLA countdowns and a quick view to pick up a case, the individual case with check cards and re-run, the business case with registry comparison, people, ownership tree, UBO results and calculation trace, approvals with approve, reject and ask a question, and requests with item-by-item accept or reject, reminders and due date extensions. Decide, Request information and Escalate to EDD open as working modals.
Integration with an identity verification provider (such as Ondato, iDenfy or Veriff), Smart-ID and Mobile-ID, Registrų centras and JANGIS, foreign registries through Kyckr or OpenCorporates, Creditinfo, the screening service, the core ledger, and Postmark and Twilio for customer messages. Staff auth by role and risk mandate, a hash-chained audit log that records every view of sensitive data, configurable retention, and the remaining screens: new case, ownership explorer, periodic reviews, customers, register discrepancies, the workflow builder, the risk model, reports, settings and the customer portal.
The ownership tab lists each beneficial owner with their effective percentage and a trace of every path, such as VK Holdings 60% times Jonas P. 50% equals 30.0%. Structure checks confirm shares add up to 100%, there is no circular ownership and every chain ends in a person, and flag any layer that is only customer declared.
The registry tab compares each field pulled from the Register of Legal Entities with what the customer declared and marks every mismatch with a Log discrepancy button. Discrepancies waiting to be reported then show in the dashboard's needs attention list.
Every risk score is a table of factors and points, banded at 35, 60 and 85, and a PEP or high-risk country forces at least high. Each user has a risk mandate, so a decision above it or on a PEP case routes to a second reviewer, as do risk overrides and step waivers, and items reserved for the MLRO stay read-only for everyone else.
SLA countdowns turn amber in the last 20% and red once breached, and the queue header counts cases past SLA. Requests for information list each item the customer must answer, sent through a signed link with a one-time SMS code, and each answer is accepted or rejected with a reason.

Designed and built a clickable AML transaction monitoring system for a US neobank and its sponsor bank: scenario alerts ranked by a transparent priority score, an investigation workspace that shows why each alert fired, real-time payment holds, and cases that count down to the SAR filing deadline.

Designed and built a clickable regulatory reporting platform for an Australian customer-owned bank: prepare APRA returns from core banking and general ledger data, clear validation errors, comment on variances, approve adjustments within policy limits and sign off against an evidence pack, with every reported number traceable to its source.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab