Capvant

Netherlands

What the Netherlands market sends on a deal: currency, phone format, company types, validation and the fields that carry a value.

The Netherlands lane routes deals in EUR with market.country set to NL. Everything below is what your integration can rely on for this market.

At a glance

FieldValue
ISO country codeNL
Launch stateOpen: live requests are accepted
CurrencyEUR (€)
Phone formatE.164, country code first, no spaces required.
Example phone+31 6 12345678
Regional subdivisionnot collected
Company registerThe Dutch trade register, not yet available
Register number askedKVK number (for example 12345678)
Company number formatKVK number, eight digits, for example 12345678.
Credit score bandnot collected

Company register

RegisterThe Dutch trade register
registry.sourceofficial_register in every market; which register answered is not part of the payload
Company lookup in the flowBy KVK number: the register offers no name search we can use today, so the number is asked
IdentifierKVK number: Eight digits, for example 12345678
Name searchNot yet available

What comes back, section by section

Read registry.status first. available means every section the register exposes came back; partial means at least one could not be read; unavailable means the company profile itself could not be retrieved; not_fetched means no lookup has run for this lead yet. A section the register does not expose is null on every deal, never an empty value. Each entry under registry.sections carries the register's status for that section and the facts it returned, nothing else.

SectionAvailabilityNote
IdentityNot yet available
Legal formNot yet availableNeeds the metered profile
StatusNot yet available
Incorporation dateNot yet availableNeeds the metered profile
Registered addressNot yet availableStreet and city from search; postcode needs the profile
Activity codesNot yet availableSBI codes, needs the metered profile
OfficersNot exposed by the registerNot available through the standard APIs at any price
OwnersNot exposed by the register
AccountsNot exposed by the register
InsolvencyNot exposed by the register
FilingsNot exposed by the register

Example registry object

The register connection for this market is not live yet, so this is the shape you receive today: every fact null and status set to not_fetched. The keys do not change when it goes live.

market.registry
{
  "source": "official_register",
  "status": "not_fetched",
  "reason": "not_yet_available"
}

Phone and identifiers

PhoneE.164, country code first, no spaces required. For example +31 6 12345678.
Company identifierKVK number: Eight digits, for example 12345678
Tax identifierBTW number: NL, nine digits, B, two digits, for example NL123456789B01
VAT checkNot applicable: no VAT register check in this market, so market.vat is null.

Bank statements

The flow asks for the last 6 months of business bank statements in this market. Statements are uploaded once and shared with every partner working the request; the API carries the parsed facts (months covered, average monthly inflow and outflow, provider) and the documents by signed link.

Instant matching

Requests are accepted, validated and register-checked, then worked by a person until a funding panel is connected for this market. The payload shape is identical; only the timing of matched options differs.

Which market fields are populated

FieldTypeIn NetherlandsNotes
countrystringpopulatedISO 3166-1 alpha-2, always NL in this schema. The applicant’s own country, which can differ from the routing lane.
currencystringpopulatedISO 4217 code for every figure on the deal.
monthly_revenue_bandstringpopulatedThe band the applicant selected, kept whatever monthly_revenue_basis says.
monthly_revenuenumberpopulatedMonthly figure. The parsed statements’ average monthly inflow once statements are in; before that the applicant’s figure. Read monthly_revenue_basis.
monthly_revenue_basisstringpopulatedstatements: the parsed statements’ average monthly inflow. reported: the applicant gave the figure. band_midpoint: the midpoint of the selected band. Precedence is always statements, then register, then applicant.
time_in_business_bandstringpopulatedThe band the applicant selected, kept whatever tib_months_basis says.
tib_monthsintegerpopulatedMonths in business. From the register’s incorporation date where the register is connected; read tib_months_basis.
tib_months_basisstringpopulatedregister: computed from the incorporation date on the company register. reported: from an exact trading start date the applicant gave. band_midpoint: the midpoint of the selected band. The register wins whenever it holds a date.
annual_turnovernumbernullAnnual figure. The latest filed accounts where the register carries them, else what the applicant stated. Never derived from the monthly figure.
annual_turnover_basisstringnullfiled_accounts: from the latest filed accounts on the register. reported: the applicant stated the figure.
company_numberstringnullRegistration number on the country’s company register. Confirmed against the register where that market answers, otherwise as the applicant gave it; registry.status says which case this deal is in, and in the United States that varies by state.
entity_typestringnullLegal form: the value from GET /enums/company-types for this market. From the applicant where the flow asks, else from the register; entity_type_basis says which.
entity_type_basisstringnullapplicant: the legal form as the applicant gave it. register: read from the company register’s own record where the flow did not ask. Null when neither holds it.
vat_registeredbooleannullWhether the business is VAT registered: from the applicant where the flow asks, else from the VAT check. Null when neither holds it.
vatobjectnullThe VAT registration check against the EU VAT register.
identifiersobjectpopulatedThe company’s identifiers in Netherlands: exactly these keys. A key that is present and null is not on record yet.
registryobjectnullPublic register facts for the company. Read registry.status before the facts.
directorobjectpopulatedThe significant person as the flow captured them. Null until a funder’s question is answered.
credit_score_bandstringnullSelf-reported band, for example "700_plus". Asked where the flow needs it; null when the applicant was not asked.
regionstringnullThe state, two letters, derived from the business ZIP the applicant gave. Never inferred from anything else.
einstringnullEmployer identification number, XX-XXXXXXX, when the applicant gave it. Optional in the flow.
signup_ipstringnullThe applicant’s IP address at the moment of consent, for funders that require it.

Company types

ValueAbbreviationLegal formLocal nameFundable
besloten_vennootschapBVPrivate limited companyBesloten Vennootschapyes
naamloze_vennootschapNVPublic limited companyNaamloze Vennootschapyes
vennootschap_onder_firmaVOFGeneral partnershipVennootschap onder Firmayes
commanditaire_vennootschapCVLimited partnershipCommanditaire Vennootschapyes
cooperatieCoop.CooperativeCooperatieyes
maatschapMaatschapProfessional partnershipMaatschapaccepted, not fundable
stichtingStichtingFoundationStichtingaccepted, not fundable
eenmanszaakEenmanszaakSole proprietorshipEenmanszaakaccepted, not fundable

Netherlands has no connected register yet, so market.entity_type is what the applicant gave and is null on the deal until the register confirms it.

Amount and revenue bands

A band stays a band. Where we derive a number from a band, the payload says so in the matching _basis field, so never treat a derived figure as reported.

fundingLabelDerived value
under_25kUnder €25Knot derived
25k_50k€25K – €50Knot derived
50k_100k€50K – €100Knot derived
100k_250k€100K – €250Knot derived
250k_500k€250K – €500Knot derived
500k_1m€500K – €1Mnot derived
1m_2m€1M – €2Mnot derived
2m_5m€2M – €5Mnot derived
5m_15m€5M – €15Mnot derived
15m_50m€15M – €50Mnot derived
monthly revenueLabelDerived value
under_10kUnder €10Knot derived
10k_20k€10K – €20Knot derived
20k_50k€20K – €50Knot derived
50k_75k€50K – €75Knot derived
75k_100k€75K – €100Knot derived
100k_250k€100K – €250Knot derived
250k_plus€250K+not derived
time in businessLabelDerived value
under_6mUnder 6 monthsnot derived
6_12m6 – 12 monthsnot derived
1_2y1 – 2 yearsnot derived
2y_plus2+ yearsnot derived
credit scoreLabelDerived value

Example market object

This is the market object exactly as GET /deals/{ref} returns it for this country.

🇳🇱 Netherlands, market object
{
  "market": {
    "country": "NL",
    "currency": "EUR",
    "monthly_revenue_band": "€50K – €75K",
    "monthly_revenue": 62500,
    "monthly_revenue_basis": "band_midpoint",
    "time_in_business_band": "2+ years",
    "tib_months": 30,
    "tib_months_basis": "band_midpoint",
    "company_number": null,
    "entity_type": null,
    "entity_type_basis": null,
    "vat_registered": null,
    "vat": null,
    "identifiers": {
      "vat_number": null
    },
    "registry": {
      "source": "official_register",
      "status": "not_fetched",
      "reason": "not_yet_available"
    },
    "director": {
      "full_name": "Sanne Voorbeeld",
      "date_of_birth": "1979-11-02",
      "residential_address": {
        "line1": "Keizersgracht 1",
        "postal_code": "1015 AA"
      },
      "nationality": "NL"
    }
  }
}

Validation to expect

  • market.country is NL, never the routing lane and never an alpha-3 code.
  • Every monetary figure on the deal is in EUR.
  • Phone numbers arrive in E.164, for example +31 6 12345678.
  • market.company_number carries the register number and market.registry carries the register facts.
  • market.region does not exist in this market: it is a US and Canada key.
  • The market object carries 16 keys in Netherlands; a key that is present and null is not known yet, a key that is absent is not part of this market. Keys this market does not carry: annual_turnover, annual_turnover_basis, credit_score_band, region, ein, signup_ip.

Reference

The full field list, types and response schema live on Retrieve a deal, where the country switcher shows this market's example inline.

On this page