Skip to content
giron.ai
← Projects

Electoral Tribunal of Panama

A nation's identity fits inside a kiosk, if the system is not allowed to fail.

When
2018–2022
With
XPLOR, CTO, public sector, mission critical, 100 units delivered, 24/7 operation

XPLOR was the technology vendor that built the multiservice kiosks for Panama’s Electoral Tribunal. As its CTO I led the programme from 2018 to 2022: 100 units built and delivered to the institution that guards a country’s identity.

The Tribunal deployed them from Changuinola to eastern Panama — metro stations, supermarkets, shopping centres and regional offices — many running 24/7. Today the institution operates well over a hundred kiosks in service.

What a kiosk actually does

Civil registry, ID and electoral paperwork without a counter: birth, death and marriage certificates, ID card duplicates, political party enrolment and affiliation certificates. Payment is taken on the unit itself by Visa, Mastercard or Clave.

Why this is unlike any other rollout

A government kiosk issues legally valid documents and takes public money on a machine with nobody standing behind it. That changes the rules: identity verification cannot afford false positives, availability is measured in full working days rather than monthly averages, and every transaction has to be auditable. There is no “we’ll fix it next sprint” here.

And it does not ship once: every unit is hardware out on the street, in the hands of citizens in a hurry, that has to keep working when the network drops, the paper runs out or somebody knocks it about.

Where everything else comes from

This is where my work on identification biometrics began. The same discipline — never being wrong about who someone is — lives today inside the facial recognition kiosk of El Empleado Juan, this time in the hands of small businesses.

The trail, in the schema

What turns a kiosk into a government system is not the screen: it is being able to reconstruct, months later, what was issued, to whom and against what.

-- Every procedure keeps its full fingerprint: which unit, which
-- document, which payment and what the civil registry replied, verbatim.
CREATE TABLE issuance (
    id            uuid PRIMARY KEY,
    kiosk_id      uuid        NOT NULL REFERENCES kiosk(id),
    document      text        NOT NULL,   -- birth, death, ID card…
    national_id   text        NOT NULL,
    payment_ref   text        NOT NULL,   -- reference from the gateway
    registry_ack  jsonb       NOT NULL,   -- raw response from the registry
    issued_at     timestamptz NOT NULL DEFAULT now()
);

-- The application may insert and read. It may not edit or delete: a
-- correction is a new row, never an edit of the previous one. That is
-- what makes the trail mean something when somebody audits it.
REVOKE UPDATE, DELETE ON issuance FROM application;

The jsonb holding the raw response looks redundant until the day the registry changes a field and you have to prove exactly what it answered that afternoon.

Sources

Write to me

If you are thinking about building something with AI and want to talk it through with someone who has put it into production, write to me. I answer myself.

hola@giron.ai