> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baselayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# International Products: Best Practices

> Get the most accurate international KYB results: choose the right search mode, disambiguate with registrations, and know what varies by country.

## International Business Search: Best Practices

This guide covers how to get the best results from **International Business Search**. For a step-by-step walkthrough, see the [API Quickstart](https://docs.baselayer.com/docs/international-products-api-quickstart.md); for the overview and country list, see [International Products: Basics](https://docs.baselayer.com/docs/baselayer-international-products.md).

***

### Name + address is the standard, offer the registration number as an option

`POST /international/searches` works well with just **name + address**, and that's all you need for the vast majority of verifications. You don't need the registration number to get good results.

That said, **offering the registration number as an optional input is a nice touch**. In many countries, owners and finance staff know their company's registration number by heart, so letting them type it in is fast and familiar.

* Pass `filing_number` (with `iso2_country_code`) whenever the user provides it.
* When `filing_number` is provided, the registry is searched by that number first; a `name`, if also included, is used as a fallback when no company matches the number.
* With a `filing_number`, `name` and `address` are optional, but **send whatever you have**: each input you provide is matched and counts toward the KYB score, and a name also gives the search a fallback if the number doesn't resolve.

> **Tip**: **Localize the field label** to the term your users know. In Spain, for example, the registration number is the **CIF**. Labeling the input with the local term (rather than a generic "registration number") makes it obvious what to enter and improves completion.

***

### Optional: smooth out low match rates with a registration lookup

If you notice match rates in a particular market aren't as high as you'd like, you can offer users a smoother path with `GET /international/registrations`: list the candidate registrations, let the user pick the right one, then search using that result's `filing_number`.

**The flow:**

1. **List candidates**: `GET /international/registrations`returns a list of matching registrations.
2. **Let the user pick** the correct entity from that list.
3. **Search**: take the `filing_number` from the chosen result and pass it to `POST /international/searches` for the complete business profile.

```javascript Text theme={null}
// 1. Find candidates
GET /international/registrations?iso2_country_code=GB&name=Acme%20Ltd

// 2. User selects the right one → take its filing_number

// 3. Verify that exact entity
POST /international/searches
{ "filing_number": "01234567", "iso2_country_code": "GB" }
```

This lets the user confirm the specific company they intended before you run the search, which can help in markets where name-based matching is trickier.

> **Note**: This is a nice-to-have, not a requirement. A plain name + address search is the standard, fully-supported path and works well on its own. Reach for the registration lookup only if you want to improve the experience.

***

### Request Enhanced Profiles when you need ownership depth

By default a search returns the core registration profile (name, file number, status, country and addresses). To also return **directors, ultimate beneficial owners (UBOs), shareholders, and share capital**, add the `Order.Enhanced` option:

```javascript Text theme={null}
POST /international/searches
{
  "filing_number": "01234567",
  "iso2_country_code": "GB",
  "options": ["Order.Enhanced"]
}
```

Enhanced Profiles are **billed separately, per country**. Coverage and available fields vary by jurisdiction. Contact your account manager for more details.

***

### Expect data depth to vary by country

International Business Search covers 76 jurisdictions through different corporate registries, and the depth of data differs between them. Design for this:

* **Treat core fields as guaranteed, extras as best-effort.** `name`, `file_number`, `status`, and `country` are present everywhere; richer detail depends on the jurisdiction.
* **Country availability can change** as registry access evolves. Confirm the current list in the [Basics guide](https://docs.baselayer.com/docs/baselayer-international-products.md) or with your account manager.

***

### Reuse your US scoring and matching logic

International Business Search returns **KYB and Risk ratings on the same scale** as the US product, with the same grade bands (A ≥ 90, B ≥ 80, C ≥ 60; only A and B count as `verified`). The KYB score only counts the inputs you sent, so a filing-number-only search is scored fairly against the registry. It also uses a very similar matching logic. You can apply the same thresholds and decisioning you already use for US searches, no separate calibration required. See [Scores & Ratings](https://docs.baselayer.com/docs/baselayer-scores-ratings.md).

Name matching also understands **local legal forms**: a full legal form and its abbreviation are treated as the same name in Spain, France, Germany, Austria, the Netherlands, Belgium and Italy (for example `SL` and `Sociedad Limitada`, or `GmbH`, `SARL` and `BV` and their long forms). You don't need to normalize these yourself.

***

### Use watchlist hits, and read them correctly

Every international search screens the company, any `alternative_names` you send, and its current officers and beneficial owners against OFAC, CSL, FBI, Canadian sanctions and OIG, plus PEP when you add `Order.Pep`. Results appear in `watchlist_hits`.

* **Send known trade names in `alternative_names`** so they're screened too.
* **A `count` of `0` is a clean screen; an absent list is not.** A list is absent when it wasn't screened (turned off in your settings, or PEP not ordered).
* **Tune lists and match strictness in [Account Settings](https://docs.baselayer.com/docs/account-settings.md).** The same settings apply to US and international searches.
* A confirmed OFAC hit already sets Risk to `0` / `F`, so your existing Risk thresholds will catch it.

***

### Read the match indicators like you do in the US

Every result includes match signals that behave just like the US Business Search:

* `business_name_match`: `EXACT` / `SIMILAR` / `NO_MATCH` (identical to the US).
* `business_address_match`: `EXACT` / `CITY` / `REGION` / `COUNTRY` / `NO_MATCH` (international granularity).
* `filing_number_match`: an international-only boolean - `true` if the registration number you sent located the company, `false` if the search fell back to name matching, and `null` if none was sent.

Use `business_name_match` and `business_address_match` in your decisioning exactly as you do for US searches. `filing_number_match` is also a useful way to **monitor your registration-number option**: if it's frequently `false`, users are likely entering a number that doesn't resolve for that jurisdiction - a signal to revisit the field's label or help text (see *offer the registration number* above).

***

### Prefer webhooks over polling

International searches are asynchronous. Subscribe to `InternationalBusinessSearch.completed` (and `.failed`) rather than polling `GET /international/searches/{id}` on a tight loop, it's more efficient and gives you results as soon as they're ready. See the [Webhooks at Baselayer](https://docs.baselayer.com/docs/webhooks-at-baselayer.md).

***

### Know what International Business Search does *not* do

* **No TIN verification**: IRS TIN matching is US-only.
* **No online-presence add-ons on the search**: for website analysis, industry prediction, and other online-presence signals internationally, use the **Web Presence** endpoint (`POST /web_presence_requests`), which supports international requests via `iso2_country_code`. See [International Products: Basics](https://docs.baselayer.com/docs/baselayer-international-products.md).
* **Country-specific pricing**: negotiated separately from your US contract.

***

### Putting It All Together

A strong international KYB integration:

* Uses **name + address as the default**: and gets great results with it
* Offers the **registration number as an optional, locally-labeled input** where users are likely to know it
* Adds **Enhanced Profiles** only when you need ownership depth
* **Reuses your existing US scoring and matching thresholds**, since they are similar
* Falls back to the **registration lookup** if necessary

Get those right and international verification behaves like a natural extension of your US flow: same ratings, same matching logic, same webhook pattern, with a bit of per-country awareness.

***

### Where to Go Next

* [**International Products: API Quickstart**](https://docs.baselayer.com/docs/international-products-api-quickstart.md): The step-by-step walkthrough, from request to response.
* **[International Products: Basics](https://docs.baselayer.com/docs/baselayer-international-products.md)**: Supported countries and international Web Presence.
* **[Scores & Ratings](https://docs.baselayer.com/docs/baselayer-scores-ratings.md)**: How KYB and Risk ratings are calculated.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.