What it detects, what it replaces it with, and under what guarantees

Technical specifications

The 20 types of personal data it recognises, the 13 formats it accepts, the three ways of replacing them and the security framework it operates under.

anonimiza.do takes your document, finds the data that identifies a person, replaces it according to the rules you have configured and returns the file in its original format.

Summary of the service's characteristics
Characteristic Description
Type of serviceSaaS. Nothing to install on the user's machine or on the organisation's network
OperationsIrreversible anonymisation and reversible pseudonymisation, even in the same run
Data types detected20 predefined across 7 families, extensible with your own types
Substitution modesMasking, tokenisation and synthetic data, combinable per data type
Input formats.doc .docx .xls .xlsx .txt .pdf .jpg .jpeg .png .tiff .bmp .zip and text typed into the interface
Output formatThe same as the original, with its extension
Operating modesWeb interface and REST API. Document by document or in batches
ReviewManual supervision with versioned approval
EncryptionTLS 1.3 in transit, AES-256 at rest
Security frameworkSpanish National Security Framework (ENS), MEDIUM category (RD 311/2022)
Data protection roleProcessor, article 28 GDPR

Twenty data types across seven families, which you switch on and off one by one or by whole family. Identifiers with a formal structure —NIF, NIE, Social Security, IBAN— are validated by their check digit: nothing that merely looks like one gets redacted.

The twenty personal data types in the catalogue, by family
Family Data type Example
Personal identificationNIF, individuals12345678Z
Personal identificationNIF, legal entitiesB41029384
Personal identificationNIEX1234567L
Personal identificationPassportPAB123456
Personal identificationSocial Security number28 12345678 09
Personal identificationFull name of an individualMaría Luisa Fernández Iglesias
Personal identificationLegal entity nameLimpieza Sur Servicios, S.L.
Contact detailsHome addressC/ Gran Vía 28, 28013 Madrid
Contact detailsTelephone number+34 612 345 678
Contact detailsEmail addressmaria.fernandez@correo.es
Contact detailsVehicle registration plate1234 BCD · BA-1234-AB
Contact detailsWebsitehttps://www.ejemplo.es
Financial dataIBANES68 0049 5103 8128 1607 4523
Financial dataMonetary amounts187.450,00 €
Technical dataIP address (v4 and v6)192.168.1.15 · 2001:db8::7334
Administrative dataCódigo Seguro de VerificaciónA1B2C3D4E5F6G7H8
Administrative dataLegal reference (excluded)Decreto 45/2019, de 3 de abril
Temporal dataDate in any format15/03/1985 · 22 de enero de 2024
Graphic codesQR codeHolds the case file number
Graphic codesBarcodeHolds the registry number

You can add your own data types by describing them in plain language —«medical record number», «disciplinary case reference»— with no rules to program and nothing to train.

No single method works for everything: a regular expression pins down a NIF exactly but mistakes a surname for a place name, and a language model recognises names but cannot validate a check digit. anonimiza.do combines the two.

References to legislation are deliberately left untouched. «Decreto 45/2019, de 3 de abril» is a date and two numbers, and a naive anonymiser redacts them: the result is an unreadable file with the applicable rule missing from it.

It also groups every way of naming the same person —full name, short form, title plus surname, their role in the procedure— so you decide once and the decision reaches all forty of their mentions.

«The applicant's brother» or «the mayor of a town of 3,000» identify someone without naming them. This is how most anonymisation fails:

Strategies for handling relationship and role identifiers
Strategy What it does Example
Generalising the linkKeeps the relationship but detaches it from the identified subject«sister of María Fernández» → «sister of [PER_2]»
Neutralising the roleReplaces the specific role with its category«mayor of Santa Cruz de la Palma» → «[PUBLIC_ROLE]»
Deleting the phraseRemoves the fragment when the relationship adds nothing«, brother-in-law of the previous contractor,» → deleted

When in doubt, it flags: dismissing a false positive takes two clicks in review, whereas a personal data item that slips through is a breach. Thresholds are configurable per data type. If you want the layer-by-layer detail, we cover it in this article.

They are not synonyms, and what you can do with the document afterwards depends on which you pick. anonimiza.do implements both and asks you to choose.

Differences between irreversible anonymisation and reversible pseudonymisation
Irreversible anonymisation Reversible pseudonymisation
What is storedNothing that allows the original value to be recoveredA mapping table encrypted with your organisation's key
ReversalImpossible by designPossible, restricted to authorised profiles and logged
Pseudonym stabilityNot applicableThe same value always receives the same pseudonym
Nature of the resultCeases to be personal data once the re-identification risks are ruled outRemains personal data (article 4.5 GDPR)
Typical usePublication, freedom of information requests, statistical transfersInternal processing, files that may need to be reopened

A single run can produce two results if you need them: a pseudonymised version for the internal file and an anonymous one for publication. The mapping table has its own retention period and is destroyed when it expires.

What a data item is replaced with depends on what you need the document for: publishing it, processing it or using it as a test set. You can combine them per data type within the same document.

Supported file formats and how each one is handled
Format What is processed Output
.doc · .docxThe full text, including headers, footers, endnotes and comments.docx in the original format
.xls · .xlsxCells, sheet by sheet and column by column.xlsx with the original structure
.txtThe entire contents.txt
Text in the interfaceThe text exactly as pasted, with no document to createText on screen, ready to copy
.pdfThe text layer where there is one, and optical recognition where there is not.pdf with the original layout
.jpg · .jpeg · .png · .tiff · .bmpThe whole image via optical recognitionThe same image format, with the substitution burned into the pixels
.zipUnpacked, and each file handled according to its type.zip with the results

In a Word file the personal data is usually outside the body —the footer, an endnote, a tracked comment— which is precisely where it survives most anonymisation processes.

Where there is no text layer —a scan, a photo, a fax— it is read with optical recognition and the substitution is applied to the pixels themselves: not an overlaid rectangle of the kind anyone can remove with a PDF viewer.

Spreadsheets and listings

Here the data type of the entire column is inferred, outliers included, so the same person is treated the same way throughout the table. And before a statistical transfer or an open data release k-anonymity is verified: you set the value of k and the system tells you which combinations fall below it, following the AEPD technical note and ISO/IEC 20889.

The whole cycle runs in the browser: you upload the document, pick a template, review, approve and download. For volume, a batch takes several files or a single archive, processes them in parallel and downloads in one go.

Review before publishing

The review screen puts the document next to the detections panel so that checking it takes minutes. You can work detection by detection or by unique value, clearing every occurrence of one value in a single step. Each approval is kept as a numbered version of the document.

Templates, allow list and block list

A template stores the active data types, the mode for each one and the thresholds, and applies to a whole batch: one for grant decisions, another for procurement files. The allow list protects what must never be redacted —your own organisation, its programmes, its regulations— and the block list forces the opposite.

REST API

The API covers the full cycle: asynchronous document submission and synchronous text submission, status queries, downloads and template management. It authenticates per application token —revoking one integration does not affect the others—, notifies by webhook on completion and has a test environment.

Technical security measures applied to the service
Area Measure
EncryptionTLS 1.3 in transit and AES-256 at rest
Isolation and identityLogical separation per organisation and named users with permissions
Activity logAccess, processing, review, approval, download and configuration
RetentionConfigurable from 24 hours, with automatic deletion and a certificate on request
MetadataAuthor, organisation, file path and revision history stripped
LocationEuropean Union, with no international transfers, and the option to deploy in Spain

CEDESA DIGITAL, S.L. holds a certificate of conformity with the Spanish National Security Framework (ENS) at MEDIUM category, under Royal Decree 311/2022. For a public sector body that removes the work of verifying on its own that the supplier meets what is required of it.

Your organisation is the controller and CEDESA DIGITAL, S.L. acts as processor (article 28 GDPR). Processing is automated: the content is not reviewed, not disclosed and not used to train models. The detail is in the Privacy Policy.

Regulatory framework

Regulatory and technical references applied
Reference What it contributes
GDPR, article 4.5 and recital 26When data ceases to be personal
Organic Law 3/2018 (LOPDGDD)Spanish data protection legislation
EDPB guidelines on anonymisationThe three risks to rule out: singling out, linkability and inference
EDPB guidelines on pseudonymisationScope and limits of pseudonymised processing
ISO/IEC 20889:2018Classification of de-identification techniques
AEPD technical note on k-anonymityHow to apply it to datasets
Royal Decree 311/2022 (ENS)Security framework for the public sector

Shall we try it on your own documents?

Tell us what kind of files you handle and we will show you what anonimiza.do finds in them.

Talk to the team