Use Cases

Discover how to integrate FirmAPI into your systems

FirmAPI provides a simple API for accessing Slovak company data. Below you'll find practical integration examples.

Use cases by software type

Concrete scenarios with a sample call and the list of registers each one uses.

Company autocomplete

The user types three letters of a company name and picks from the list. Address, company ID and tax number fill themselves in. It is the simplest FirmAPI deployment and the one users appreciate most.

Signup and onboarding forms

Signing up a business customer is usually the longest form in an application. Filling in the rest from the company ID shortens it to one field and gives you data that matches the register.

Invoicing software

Invoicing software needs two things: correct customer details and confidence that invoicing them makes sense. FirmAPI covers both in a single call.

Accounting software

An accounting practice manages tens to hundreds of clients and for each one needs current identification details, an overview of filed statements and confidence that nothing changed without its knowledge.

Legal software

In legal practice what matters is who the counterparty is, who may sign for it and whether proceedings are under way against it. All three answers live in public registers – just scattered.

Verifying contract party details

The details in a contract header tend to be copied from the previous contract. A year later they may no longer be right – and a misidentified contracting party is a problem that surfaces in a dispute.

Creditworthiness and company health

The question "can I supply this company on account?" has a concrete answer assembled from public data. It is not a score from a black box – it is a list of facts you can verify.

KYB and AML checks

Know Your Business means knowing who stands behind a company and whether it is on a sanctions list. Both questions can be answered automatically – from the register of public sector partners and from the sanctions lists.

CRM and database enrichment

A contact database starts ageing the moment it is created. Enrichment from the registers restores its accuracy and adds information the sales rep had no way of knowing at entry.

Batch processing and exports

When you need to process thousands of companies at once, calling the endpoint in a loop is the wrong route. Batch processing accepts the whole list and prepares the result for collection.

How we deliver the data

Company search with autocomplete

The /search/autocomplete endpoint is ideal for Select2, typeahead, and similar components. Returns results compatible with popular JavaScript libraries.

Select2 integration

Complete example of integrating with the Select2 library for company search.

Select2 + FirmAPI JS SDK
import { FirmApi } from 'firmapi';

const client = new FirmApi('YOUR_API_KEY');

// Initialize Select2 with FirmAPI SDK
$('#company-search').select2({
  ajax: {
    transport: async (params, success, failure) => {
      try {
        const data = await client.search.autocomplete(params.data.q);
        success(data);
      } catch (e) { failure(e); }
    },
    data: (params) => ({ q: params.term }),
    processResults: (data) => ({ results: data.results })
  },
  minimumInputLength: 2
});

Get company data by IČO

The most common use case - retrieving complete company data by its IČO (registration number).

import { FirmApi } from 'firmapi';

const client = new FirmApi('YOUR_API_KEY');

// Fetch company by IČO
const company = await client.companies.byIco('51636549');
console.log(company.name); // "Version Two s. r. o."

// Search by name
const results = await client.search.byName('Version Two');
console.log(results.data); // [{ ico: "51636549", name: "..." }]
use FirmApi\Client;

$client = new Client('YOUR_API_KEY');

// Fetch company by IČO
$company = $client->companies->byIco('51636549');

echo $company['name']; // "Version Two s. r. o."
echo $company['city']; // "Bratislava"

// Search by name
$results = $client->search->byName('Version Two');

foreach ($results['data'] as $item) {
    echo $item['ico'] . ' - ' . $item['name'];
}
import 'package:http/http.dart' as http;
import 'dart:convert';

Future<Company> getCompanyByIco(String ico) async {
  final response = await http.get(
    Uri.parse('https://firmapi.sk/v1/company/ico/$ico'),
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
    },
  );

  final json = jsonDecode(response.body);
  return Company.fromJson(json['data']);
}
curl -X GET "https://firmapi.sk/v1/company/ico/51636549" \
     -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Accept: application/json"

CRM system integration

Automatically populate customer data in your CRM system. Just enter the IČO and all company details will be filled in automatically.

  • Eliminate manual data entry
  • Reduce transcription errors
  • Current data directly from Business Register
  • Automatic IČO validation

CRM form example

E-shop invoice automation

When entering an IČO, billing details are automatically filled in. Ideal for B2B e-shops and services.

  • Faster checkout for business customers
  • Accurate billing details without errors
  • Automatic company existence verification
  • Support for DIČ and IČ DPH (higher tiers)
Laravel Controller + FirmAPI PHP SDK
use FirmApi\Client;
use FirmApi\Exceptions\ApiException;

public function loadBillingData(Request $request)
{
    $client = new Client(config('firmapi.key'));

    try {
        $company = $client->companies->byIco($request->ico);

        return response()->json([
            'name'    => $company['name'],
            'address' => $company['address'],
            'dic'     => $company['tax']['dic'] ?? null,
            'ic_dph'  => $company['tax']['ic_dph'] ?? null,
        ]);
    } catch (ApiException $e) {
        return response()->json(['error' => 'Company not found'], 404);
    }
}

Start using FirmAPI

Sign up for free and get your API key. The Free plan includes 20 requests per month.

Get started free

We respect your privacy

We use necessary cookies to make the site work. With your consent we also use analytics cookies (Google Analytics) to understand how the site is used. More in our Privacy Policy.