Capvant

Check eligibility

Which kinds of business funding a company may qualify for, from its register record and what you already know. Nothing is created and no credit search runs.

POST /eligibility/check answers one question for one company: which kinds of business funding it may qualify for today. It reads the company's register record, applies the same rules live matching uses, and answers per kind of funding. Nothing is created, no credit search runs, no lender sees the business, and no lender is ever named.

Use it to show a customer inside your own product that funding is within reach before they start a request, and to know which of your customers to tell.

Eligibility checks are switched on per partner. Ask partnerships@capvant.com to enable them for your account; until then the route answers 404. UK companies are served today.

Time in business decides most of it

Lenders first look at how long a business has traded, whether it is active, and what it does. The register tells us all three, so a check needs nothing but a company number to give a useful answer:

  • Trading time comes from the incorporation date. A family whose options need more time answers not_yet, with the date the business gets there in available_from.
  • Status and history: a company that is not active, or has insolvency history, answers unlikely for everything.
  • What it does: industries no option in a family serves answer unlikely with industry_not_served.

Monthly revenue sharpens the answer; it is not needed to give one. When a company clears everything we can check, a family answers likely with confidence medium and lists monthly_revenue in sharpened_by. Send the revenue in facts and the answer firms up to high, or changes where a revenue minimum decides it. The only time we ask for a fact first is when a family cannot be answered without it; those facts are listed in missing and flagged required: true in missing_data.

In the UK we also read the company's registered charges. Outstanding secured lending, and charges held by revenue-based or cash advance providers, come back as cautions with a count, because some options limit how many advances a business already carries.

Make a check

Shell
curl https://sandbox.capvant.com/partner/v1/eligibility/check \
  -H "X-API-Key: $CAPVANT_KEY" \
  -H "Idempotency-Key: chk_cus_42_2026_09_24" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "GB",
    "company": { "company_number": "01234567" },
    "partner_customer_id": "cus_42"
  }'
Node
const response = await fetch('https://api.capvant.com/partner/v1/eligibility/check', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.CAPVANT_KEY!,
    'Idempotency-Key': `chk_${customer.id}_${today}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    country: 'GB',
    company: { company_number: customer.companyNumber },
    // Optional. Leave out what you do not know.
    facts: customer.monthlyRevenue ? { monthly_revenue: customer.monthlyRevenue } : undefined,
    partner_customer_id: customer.id,
  }),
});
const answer = await response.json();

No company number to hand? Send the registered name and the registered office postcode instead. If more than one company matches you get status: "needs_disambiguation" and up to five candidates; call again with the number of the right one.

Read the answer

JSON
{
  "check_id": "elc_5bdc99971c2242b0b35a9313a5eaf878",
  "partner_customer_id": "cus_42",
  "status": "complete",
  "company": {
    "company_number": "01234567",
    "name": "EXAMPLE BAKERY LIMITED",
    "status": "active",
    "entity_type": "private_limited",
    "incorporated_on": "2021-03-15",
    "months_trading": 66,
    "industry": { "code": "sic2007:10710", "title": "Manufacture of bread; manufacture of fresh pastry goods and cakes" }
  },
  "summary": {
    "band": "likely",
    "confidence": "medium",
    "headline": "Likely to qualify for 3 kinds of business funding on its trading history.",
    "advisory": false
  },
  "families": [
    { "family": "working_capital", "label": "Working capital", "band": "likely", "breadth": "good", "confidence": "medium", "missing": [], "sharpened_by": ["monthly_revenue"], "available_from": null, "reasons": [], "lender_review": false },
    { "family": "revenue_based", "label": "Revenue-based finance", "band": "likely", "breadth": "limited", "confidence": "medium", "missing": [], "sharpened_by": ["monthly_revenue"], "available_from": null, "reasons": [], "lender_review": false },
    { "family": "invoice_finance", "label": "Invoice finance", "band": "likely", "breadth": "good", "confidence": "medium", "missing": [], "sharpened_by": ["monthly_revenue"], "available_from": null, "reasons": [], "lender_review": false },
    { "family": "asset_finance", "label": "Equipment and asset finance", "band": "unlikely", "breadth": null, "confidence": "high", "missing": [], "sharpened_by": [], "available_from": null, "reasons": ["not_offered"], "lender_review": false },
    { "family": "trade_finance", "label": "Trade finance", "band": "unlikely", "breadth": null, "confidence": "high", "missing": [], "sharpened_by": [], "available_from": null, "reasons": ["not_offered"], "lender_review": false }
  ],
  "missing_data": [
    { "field": "monthly_revenue", "why": "Some options have a revenue minimum; revenue firms up the answer.", "required": false, "unlocks": ["working_capital", "revenue_based", "invoice_finance"] }
  ],
  "next_best_action": { "type": "start_request", "field": null, "date": null, "detail": "Send the customer to your funding page, or start a request through the API." },
  "cautions": [],
  "rules_version": "er_dcd68c50908d",
  "disclaimer": "Indicative only. No credit search was run, no lender has seen this business, and nothing here is an offer of finance."
}
BandWhat it meansWhat to show
likelyClears everything we can check, starting with trading timeThe kinds of funding, and a way to start
possibleNothing known fails, but a fact in missing decides itAsk for that one fact
not_yetOnly trading time is shortWhen to check again (available_from)
unlikelyFails on something time will not fixNothing, or another route

breadth says how many options fit, in words only: limited, good or broad. next_best_action tells you what to do next: start a request, ask the customer for one fact, or check again on a date.

Showing it to a customer

Say what the answer says and no more. "May qualify" and "likely to qualify" are accurate; "approved", "pre-approved" and "guaranteed" are not, because no lender has assessed the business yet. The headline is written to be shown as it is, and the disclaimer belongs next to it.

A good card reads: Your business already meets the basic criteria for 3 kinds of funding. Add your monthly revenue to see your options.

Limits and errors

  • 60 checks a minute per partner and 120 requests a minute per key; over that you get 429 with Retry-After.
  • The same Idempotency-Key and body within 24 hours replays the stored answer with Idempotent-Replayed: true; the same key with a different body is refused.
  • A country other than the UK answers 422 with code market_not_open.
  • Every failure uses the Partner API error envelope, described in Errors.

On this page