PHPackages                             firmeapi/firmeapi-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. firmeapi/firmeapi-php

ActiveLibrary[API Development](/categories/api)

firmeapi/firmeapi-php
=====================

Official PHP SDK for FirmeAPI.ro - Romanian company data API

v1.1.0(1mo ago)02MITPHPPHP ^8.1

Since Feb 1Pushed 1mo agoCompare

[ Source](https://github.com/aicloudro/firmeapi-php)[ Packagist](https://packagist.org/packages/firmeapi/firmeapi-php)[ Docs](https://firmeapi.ro)[ RSS](/packages/firmeapi-firmeapi-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (3)Used By (0)

FirmeAPI PHP SDK
================

[](#firmeapi-php-sdk)

Official PHP SDK for [FirmeAPI.ro](https://firmeapi.ro) - Romanian company data API.

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- cURL extension
- JSON extension

Installation
------------

[](#installation)

```
composer require firmeapi/firmeapi-php
```

Quick Start
-----------

[](#quick-start)

```
use FirmeApi\FirmeApi;

$client = new FirmeApi('your_api_key_here');

// Get company details
$company = $client->getCompany('12345678');
echo $company['denumire'];
```

Sandbox Mode
------------

[](#sandbox-mode)

Use sandbox mode to test your integration without consuming credits:

```
$client = new FirmeApi('your_api_key_here', ['sandbox' => true]);

// Test CUIs available in sandbox:
// 00000001 - Active company with all data
// 00000002 - Inactive/deleted company
// 00000003 - Company with multiple VAT periods
// 00000004 - Company with ANAF debts
// 00000005 - Company with MOF publications
// 99999999 - Returns 404 (for testing errors)
```

API Methods
-----------

[](#api-methods)

### `getCompany(string $cui): array`

[](#getcompanystring-cui-array)

Get detailed company information by CUI.

```
$company = $client->getCompany('12345678');

echo $company['denumire'];              // Company name
echo $company['stare'];                 // Registration status
echo $company['tva']['platitor'];       // VAT payer status
print_r($company['adresa_sediu_social']); // Headquarters address
```

### `getBilant(string $cui): array`

[](#getbilantstring-cui-array)

Get company balance sheet data.

```
$bilant = $client->getBilant('12345678');

foreach ($bilant['ani'] as $year) {
    echo "{$year['an']}:\n";
    echo "  Revenue: {$year['detalii']['I1']} RON\n";
    echo "  Profit: {$year['detalii']['I5']} RON\n";
    echo "  Employees: {$year['detalii']['I10']}\n";
}
```

### `getRestante(string $cui): array`

[](#getrestantestring-cui-array)

Get company ANAF debts.

```
$restante = $client->getRestante('12345678');

if (!empty($restante['restante'])) {
    echo "Company has outstanding debts:\n";
    foreach ($restante['restante'] as $debt) {
        echo "  {$debt['tip_obligatie']}: {$debt['suma_restanta']} RON\n";
    }
}
```

### `getMof(string $cui): array`

[](#getmofstring-cui-array)

Get company Monitorul Oficial publications.

```
$mof = $client->getMof('12345678');

foreach ($mof['rezultate'] as $publication) {
    echo "{$publication['data']}: {$publication['titlu_publicatie']}\n";
}
```

### `searchCompanies(array $filters = []): array`

[](#searchcompaniesarray-filters---array)

Search companies with filters.

```
$results = $client->searchCompanies([
    'judet' => 'B',           // County code
    'caen' => '6201',         // CAEN code
    'tva' => true,            // VAT payer only
    'telefon' => true,        // Has phone number
    'data_start' => '2024-01-01',
    'data_end' => '2024-12-31',
    'page' => 1,
]);

echo "Found {$results['pagination']['total']} companies\n";

foreach ($results['items'] as $company) {
    echo "{$company['cui']}: {$company['denumire']}\n";
}
```

### `getAdministratori(string $cui): array`

[](#getadministratoristring-cui-array)

```
$admins = $client->getAdministratori('12345678');
```

### `getPuncteLucru(array $filters = []): array`

[](#getpunctelucruarray-filters---array)

```
$puncte = $client->getPuncteLucru(['judet' => 'CJ', 'caen' => '4711']);
```

### `getArr(string $cui): array`

[](#getarrstring-cui-array)

```
$arr = $client->getArr('36731044');
```

### `getAlternativ(string $cui): array`

[](#getalternativstring-cui-array)

```
$alt = $client->getAlternativ('51608780');
```

### `getBpiCui(string $cui, array $options = []): array`

[](#getbpicuistring-cui-array-options---array)

BPI insolvency publications by CUI. Premium credits required.

```
$bpi = $client->getBpiCui('16970632', ['page' => 1, 'include_document' => true]);
```

### `getBpiDosar(string $numarDosar, array $options = []): array`

[](#getbpidosarstring-numardosar-array-options---array)

```
$bpi = $client->getBpiDosar('103/89/2014');
```

### `getBpiSearch(string $query, array $options = []): array`

[](#getbpisearchstring-query-array-options---array)

```
$bpi = $client->getBpiSearch('lichidator');
```

### `getBpiByNumber(string $numarBpi, array $options = []): array`

[](#getbpibynumberstring-numarbpi-array-options---array)

```
$bpi = $client->getBpiByNumber('17605/2022');
```

### `getDosare(array $filters = []): array`

[](#getdosarearray-filters---array)

```
$dosare = $client->getDosare(['cui' => '53509960', 'categorie' => 'Civil']);
```

### `getFreeCompany(string $cui): array`

[](#getfreecompanystring-cui-array)

Get basic company info using the free API (no API key required, rate limited).

```
$company = $client->getFreeCompany('12345678');
echo $company['denumire'];
```

Error Handling
--------------

[](#error-handling)

The SDK throws typed exceptions for different scenarios:

```
use FirmeApi\FirmeApi;
use FirmeApi\Exceptions\AuthenticationException;
use FirmeApi\Exceptions\NotFoundException;
use FirmeApi\Exceptions\RateLimitException;
use FirmeApi\Exceptions\InsufficientCreditsException;
use FirmeApi\Exceptions\ValidationException;
use FirmeApi\Exceptions\FirmeApiException;

try {
    $company = $client->getCompany('12345678');
} catch (NotFoundException $e) {
    echo "Company not found\n";
} catch (AuthenticationException $e) {
    echo "Invalid API key\n";
} catch (RateLimitException $e) {
    echo "Rate limited. Retry after {$e->getRetryAfter()} seconds\n";
} catch (InsufficientCreditsException $e) {
    echo "Not enough credits. Have: {$e->getAvailableCredits()}, need: {$e->getRequiredCredits()}\n";
} catch (ValidationException $e) {
    echo "Invalid input: {$e->getMessage()}\n";
} catch (FirmeApiException $e) {
    echo "API error: {$e->getMessage()}\n";
}
```

Configuration Options
---------------------

[](#configuration-options)

```
$client = new FirmeApi('your_api_key', [
    'sandbox' => false,                    // Enable sandbox mode (default: false)
    'baseUrl' => 'https://firmeapi.ro/api', // Custom base URL
    'timeout' => 30,                        // Request timeout in seconds (default: 30)
]);
```

Laravel Integration
-------------------

[](#laravel-integration)

You can easily integrate with Laravel using a service provider:

```
// config/services.php
return [
    'firmeapi' => [
        'key' => env('FIRMEAPI_KEY'),
        'sandbox' => env('FIRMEAPI_SANDBOX', false),
    ],
];

// app/Providers/AppServiceProvider.php
use FirmeApi\FirmeApi;

public function register(): void
{
    $this->app->singleton(FirmeApi::class, function () {
        return new FirmeApi(
            config('services.firmeapi.key'),
            ['sandbox' => config('services.firmeapi.sandbox')]
        );
    });
}

// Usage in controllers
public function show(FirmeApi $firmeApi, string $cui)
{
    $company = $firmeApi->getCompany($cui);
    return response()->json($company);
}
```

License
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance90

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~58 days

Total

2

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ab8ecc490ad8f02925d04767e073f4de0a148111f9e137b856846f2e9ac00e6a?d=identicon)[aicloud](/maintainers/aicloud)

---

Tags

apisdkbusinesscompanyCUIanafRomaniafirmeapi

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/firmeapi-firmeapi-php/health.svg)

```
[![Health](https://phpackages.com/badges/firmeapi-firmeapi-php/health.svg)](https://phpackages.com/packages/firmeapi-firmeapi-php)
```

###  Alternatives

[deepseek-php/deepseek-php-client

deepseek PHP client is a robust and community-driven PHP client library for seamless integration with the Deepseek API, offering efficient access to advanced AI and data processing capabilities.

47073.9k5](/packages/deepseek-php-deepseek-php-client)[jstolpe/instagram-graph-api-php-sdk

Instagram Graph API PHP SDK

13998.4k2](/packages/jstolpe-instagram-graph-api-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
