B
BORME API

Engineering notes · KYB

Your Spanish KYB lookup says "exists". Here's how to answer "who runs it and is it in trouble"

2026-07-16 · 4 min · working code included

Every Spanish KYB integration starts the same way: a CIF/NIF lookup that returns the legal name, an address, a CNAE code. Necessary — and nowhere near enough for onboarding decisions. The provider we'll use as the example, Verifik, documents exactly these fields for its /v2/es/company endpoint.

What's missing is everything that changes: who the current directors are, what happened to the company across its life, and whether it's in an insolvency process right now. All of that is published in Spain's official gazette (BORME) — and we've parsed all of it since 2009 into a typed API.

The pattern: two calls after your primary lookup

primary = verifik(cif)                       # name, address, CNAE
slug    = borme.events(name_contains=primary.businessName)[0].company_slug
card    = borme.companies(slug)              # ← the interesting part

Full working script (60 lines, requests only): gist.github.com/george-kozlitin/enrich_spanish_kyb.py

Run against Verifik's own docs example

Verifik's documentation demonstrates the endpoint with SERESCO SA (CIF 33011826, an Asturias software firm). Their response: name, address, CNAE 6209, phone. Piping that name through the enrichment:

PRIMARY  : SERESCO SA. | SOCIEDAD ANONIMA | CNAE 6209
STATUS   : active
OFFICERS : 11 current roles (board, CEO, auditors — with names)
HISTORY  : 53 registry events since 2009
  2026-XX-XX  APPOINTMENTS+TERMINATIONS  → boe.es/borme/.../BORME-A-....pdf

Same lookup, one order of magnitude more decision-relevant data — each event carrying a link to the official BOE PDF for the audit file.

No tax id in the gazette — and why that's fine

BORME does not print CIF/NIF, so this is an enrichment layer, not a replacement for primary verification. The join works on legal name + province (>99% resolution in practice) or exactly on the registry sheet number if your primary source returns it. Details: bormeapi.com/partners.

The part your users will actually feel: monitoring

Onboarding is a snapshot; risk is a stream. The same API exposes HMAC-signed webhooks per watched company — director exits, capital operations, insolvency filings land in your system the morning the gazette publishes them. That's the layer Spanish registry incumbents don't sell.

API docs Integration notes for KYB platforms