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.
What you will find on this page
Contents
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.
| Characteristic | Description |
|---|---|
| Type of service | SaaS. Nothing to install on the user's machine or on the organisation's network |
| Operations | Irreversible anonymisation and reversible pseudonymisation, even in the same run |
| Data types detected | 20 predefined across 7 families, extensible with your own types |
| Substitution modes | Masking, 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 format | The same as the original, with its extension |
| Operating modes | Web interface and REST API. Document by document or in batches |
| Review | Manual supervision with versioned approval |
| Encryption | TLS 1.3 in transit, AES-256 at rest |
| Security framework | Spanish National Security Framework (ENS), MEDIUM category (RD 311/2022) |
| Data protection role | Processor, 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.
| Family | Data type | Example |
|---|---|---|
| Personal identification | NIF, individuals | 12345678Z |
| Personal identification | NIF, legal entities | B41029384 |
| Personal identification | NIE | X1234567L |
| Personal identification | Passport | PAB123456 |
| Personal identification | Social Security number | 28 12345678 09 |
| Personal identification | Full name of an individual | María Luisa Fernández Iglesias |
| Personal identification | Legal entity name | Limpieza Sur Servicios, S.L. |
| Contact details | Home address | C/ Gran Vía 28, 28013 Madrid |
| Contact details | Telephone number | +34 612 345 678 |
| Contact details | Email address | maria.fernandez@correo.es |
| Contact details | Vehicle registration plate | 1234 BCD · BA-1234-AB |
| Contact details | Website | https://www.ejemplo.es |
| Financial data | IBAN | ES68 0049 5103 8128 1607 4523 |
| Financial data | Monetary amounts | 187.450,00 € |
| Technical data | IP address (v4 and v6) | 192.168.1.15 · 2001:db8::7334 |
| Administrative data | Código Seguro de Verificación | A1B2C3D4E5F6G7H8 |
| Administrative data | Legal reference (excluded) | Decreto 45/2019, de 3 de abril |
| Temporal data | Date in any format | 15/03/1985 · 22 de enero de 2024 |
| Graphic codes | QR code | Holds the case file number |
| Graphic codes | Barcode | Holds 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:
| Strategy | What it does | Example |
|---|---|---|
| Generalising the link | Keeps the relationship but detaches it from the identified subject | «sister of María Fernández» → «sister of [PER_2]» |
| Neutralising the role | Replaces the specific role with its category | «mayor of Santa Cruz de la Palma» → «[PUBLIC_ROLE]» |
| Deleting the phrase | Removes 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.
| Irreversible anonymisation | Reversible pseudonymisation | |
|---|---|---|
| What is stored | Nothing that allows the original value to be recovered | A mapping table encrypted with your organisation's key |
| Reversal | Impossible by design | Possible, restricted to authorised profiles and logged |
| Pseudonym stability | Not applicable | The same value always receives the same pseudonym |
| Nature of the result | Ceases to be personal data once the re-identification risks are ruled out | Remains personal data (article 4.5 GDPR) |
| Typical use | Publication, freedom of information requests, statistical transfers | Internal 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.
| Mode | What it does | Example | Suited to |
|---|---|---|---|
| Masking | Hides the value keeping its length, so the layout does not shift | 12345678Z → █████████ · ********* | Official gazettes, transparency portals and access-to-information requests |
| Tokenisation | A numbered label, stable across the whole document and the whole batch | María Fernández → [PER_1] · Sevilla → [LOC_1] | Internal processing and analytics: you tell people apart without knowing who they are |
| Synthetic data | A fake but formally valid value: a synthetic NIF passes the check-letter test | María Fernández → Lucía Sanmartín · 12345678Z → 47829163P | Staff training, system testing and dataset transfers |
| Format | What is processed | Output |
|---|---|---|
| .doc · .docx | The full text, including headers, footers, endnotes and comments | .docx in the original format |
| .xls · .xlsx | Cells, sheet by sheet and column by column | .xlsx with the original structure |
| .txt | The entire contents | .txt |
| Text in the interface | The text exactly as pasted, with no document to create | Text on screen, ready to copy |
| The text layer where there is one, and optical recognition where there is not | .pdf with the original layout | |
| .jpg · .jpeg · .png · .tiff · .bmp | The whole image via optical recognition | The same image format, with the substitution burned into the pixels |
| .zip | Unpacked, 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.
| Area | Measure |
|---|---|
| Encryption | TLS 1.3 in transit and AES-256 at rest |
| Isolation and identity | Logical separation per organisation and named users with permissions |
| Activity log | Access, processing, review, approval, download and configuration |
| Retention | Configurable from 24 hours, with automatic deletion and a certificate on request |
| Metadata | Author, organisation, file path and revision history stripped |
| Location | European 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
| Reference | What it contributes |
|---|---|
| GDPR, article 4.5 and recital 26 | When data ceases to be personal |
| Organic Law 3/2018 (LOPDGDD) | Spanish data protection legislation |
| EDPB guidelines on anonymisation | The three risks to rule out: singling out, linkability and inference |
| EDPB guidelines on pseudonymisation | Scope and limits of pseudonymised processing |
| ISO/IEC 20889:2018 | Classification of de-identification techniques |
| AEPD technical note on k-anonymity | How 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