If you buy from both France and Spain, your supplier onboarding meets two very different registers. France has a live directory with a status for every company. Spain publishes registered acts in a gazette, with no live status and no lookup by tax ID. A good onboarding check respects both, without two separate processes.
This guide lays out one workflow that works for both countries: what to collect from the supplier, which checks to run in each country, how to turn the answers into a decision, what to store for audit, and when to check again. It ends with a code sketch and a unit budget.
What you'll learn
- What to ask a new supplier for, country by country
- The checks to run, and why they differ between France and Spain
- A decision table you can adapt
- What to store so the check can be shown later
- When to re-check, and what it costs
Step 1: collect the right identifiers
| France | Spain | |
|---|---|---|
| Company identifier | SIREN (9 digits) or SIRET (14) | Exact registered name (denominación social) and province |
| Also ask for | VAT number, registered address | NIF, registered address |
| Why | The SIREN finds the company directly | The gazette publishes companies by name and registry sheet, not by tax ID |
For Spain, once you've found the company, store its Registro Mercantil sheet (for example V-5581): it becomes your identifier. See how to find a Spanish company by name.
Bank details are not a register question: confirm them with the supplier by phone, on a number you already trust (see supplier bank-detail change fraud).
Step 2: run the checks
France
- Verify the company (
POST /v1/verifications, 5 units): status from the Sirene directory, registered address, and an outcome with a proof code. - Insolvency (
GET …/insolvency, 1 unit): BODACC notices since 2008. - VAT (
GET …/vat, 1 unit): the number the register publishes or the one computed from the SIREN; check its registration on VIES. - Address (
GET …/address, 1 unit): validated against the national address base, with the number of companies at the same address.
Spain
- Find the company by name (
GET /v1/companies/search?country=ES&q=…, 2 units a page) and pick the right sheet using the province and address. - Verify it (5 units): the outcome will usually be
partialwithstatus_unknown, because the gazette publishes events, not a status. That is expected. - Insolvency (1 unit): "Situación concursal" acts in the BORME. For a declaration of insolvency, the public insolvency register is the reference.
The details of each call are in verify a company and get a proof code via API and insolvency and VAT checks via API.
Step 3: decide
Fuentio gives facts and an outcome; your policy makes the decision. A starting point:
| Situation | France | Spain |
|---|---|---|
Verification verified | Approve | Rare (status is usually unknown) |
Verification partial | Review the reasons | Normal: approve if the acts show nothing alarming and the amount is moderate |
Verification unverified | Stop, ask the supplier | Stop, ask the supplier |
Insolvency in_procedure or notice_found | Escalate | Escalate |
Insolvency not_covered | Unknown, not clear: decide by amount at stake | Same |
| Address shared by many companies | Ask for an operating address if you pay in advance | Not available yet |
| VAT number doesn't match | Ask, and check on VIES | Check the NIF-IVA on VIES |
Two principles keep this honest:
- "Not covered" is never "clear". A source that can't answer is a gap, not a pass.
- A search result is not a match. For Spain, confirm the sheet with the province and address before you rely on it.
Step 4: store the evidence
For each supplier, store with the record:
- the proof code of the verification (anyone you share it with can check it on the proof page, without a key);
- the outcome and reasons;
- the date of each check and its source (
meta.source,meta.last_verified_at); - the decision and who made it.
That is your audit trail: a year later you can show what the register said on the day, and why you decided as you did.
Step 5: re-check at the right moments
- Before each large order or prepayment, re-run the verification and the insolvency check.
- When the supplier announces a change (address, name, bank details), run the full check again.
- Periodically for your critical suppliers, for example monthly.
- Automatically, with a key:
watch_companysends you the changes in a company's official records, signed, to your own https endpoint (3 watches on the Free plan, 100 on paid plans).
A code sketch
def onboard(country, key, siren=None, name=None, province=None):
if country == "FR":
identifier = siren
else:
found = fuentio_get(f"/v1/companies/search?country=ES&q={name}", key)
candidates = found.get("data") or []
identifier = candidates[0]["identifiers"][0]["value"] if candidates else None
# in production, confirm the province and address before going on
if not identifier:
return {"decision": "ask_supplier", "why": "company not found"}
v = fuentio_post("/v1/verifications", key, {"country": country, "identifier": identifier})
ins = fuentio_get(f"/v1/companies/{country}/{identifier}/insolvency", key)
return {
"identifier": identifier,
"outcome": v["data"]["result"]["outcome"],
"reasons": v["data"]["result"]["reasons"],
"proof_code": v["data"]["proof_code"],
"insolvency_state": (ins.get("data") or {}).get("state"),
}
fuentio_get is the retry helper from the API quickstart; fuentio_post is the same with a JSON body.
What it costs
| Check | France | Spain |
|---|---|---|
| Search | — | 2 |
| Verification | 5 | 5 |
| Insolvency | 1 | 1 |
| VAT | 1 | — |
| Address | 1 | — |
| Per supplier | 8 units | 8 units |
A free key (100 units a month) covers about a dozen full onboardings to try the workflow; the Starter plan (€49 a month, 2,000 units) covers around 250. Before writing code, try the free list check on up to 20 suppliers, or let an AI agent run the checks over MCP. See what we cover.
Who does what
A check works best when each team owns one part of it.
- Procurement collects the identifiers (SIREN, or registered name and province) and runs the register checks when the supplier is created.
- Finance confirms bank details with the supplier by phone, on a known number, and never from an email. It also triggers a new check before large prepayments.
- Compliance or a named reviewer handles everything the table routes to review or escalation, and decides.
- Whoever owns the supplier relationship reports changes the supplier announces: a new address, a new name, new bank details. Each one restarts the check.
Write this down in one page and link it from your procurement tool. The best workflow fails when nobody knows it's theirs.
Limits. This is a workflow to adapt, not legal advice or a compliance programme: your obligations depend on your sector and country. Fuentio checks official register data about the company; it doesn't check bank details, sanctions (except with the separate screening call), who owns the company or its creditworthiness. In Spain, coverage is companies with a BORME act since 2 January 2009, and the status is unknown unless an act says otherwise.
Frequently asked questions
Why can't I onboard a Spanish supplier with its NIF?
Because the Spanish gazette publishes companies by name and registry sheet, not by tax ID. Ask for the exact registered name and province, find the sheet, then store it.
Is a "partial" verification enough for a Spanish supplier?
Often, yes: it is the normal outcome when the source has no live status. Read the reasons and the latest acts, and add checks when the amount at stake justifies it.
What should I keep for an audit?
The proof code, the outcome and reasons, the date and source of each check, and the decision with who made it.
How often should I re-check suppliers?
Before large orders or prepayments, whenever a supplier announces a change, and periodically for critical suppliers. A watch can notify you of register changes automatically.
Sources
- Fuentio API reference: docs and the OpenAPI file
- Plans and units: pricing
- Official sources behind the data: sources
