PHPackages                             serdominus/nova-poshta-api-2 - 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. serdominus/nova-poshta-api-2

ActiveLibrary[API Development](/categories/api)

serdominus/nova-poshta-api-2
============================

PHP class for API 2.0 ukrainian delivery company "Nova Poshta"

513[1 issues](https://github.com/serdominus/nova-poshta-api-2/issues)PHP

Since Oct 8Pushed 1y ago2 watchersCompare

[ Source](https://github.com/serdominus/nova-poshta-api-2)[ Packagist](https://packagist.org/packages/serdominus/nova-poshta-api-2)[ RSS](/packages/serdominus-nova-poshta-api-2/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (1)Used By (0)

Nova Poshta API 2.0
===================

[](#nova-poshta-api-20)

Класс предоставляет доступ к функциям API 2.0 службы доставки Новая Почта

Подготовка
==========

[](#подготовка)

Получение ключа API
-------------------

[](#получение-ключа-api)

Для использования API необходимо:

- зарегистрироваться на сайте [Новой Почты](http://novaposhta.ua)
- На [странице настроек](https://my.novaposhta.ua/settings/index#apikeys) в личном кабинете сгенерировать ключ для работы с API

После получения ключа API предоставляется возможность использовать все методы класса [официальной из документации](https://my.novaposhta.ua/data/API2-200215-1622-28.pdf)

Установка последней версии класса для работы с API
--------------------------------------------------

[](#установка-последней-версии-класса-для-работы-с-api)

### Git

[](#git)

Необходимо выполнить в командной строке

```
git clone https://github.com/serdominus/nova-poshta-api-2

```

### Composer

[](#composer)

Необходимо создать файл `composer.json` со следующим содержанием

```
{
    "require": {
        "serdominus/nova-poshta-api-2": "dev-master"
    }
}
```

и запустить из командной строки команду `php composer.phar install` или `php composer.phar update`Или выполнить в командной строке

```
composer require serdominus/nova-poshta-api-2:dev-master

```

### Альтернативная установка

[](#альтернативная-установка)

Необходимо скачать архив по ссылке

```
https://github.com/serdominus/nova-poshta-api-2/archive/master.zip

```

Форматы данных
==============

[](#форматы-данных)

Для входящих данных используются PHP массивы, ответ сервера может быть получен в формате:

- как PHP массив
- JSON
- XML

Использование
=============

[](#использование)

Создание экземпляра класса
--------------------------

[](#создание-экземпляра-класса)

```
$np = new NovaPoshtaApi2('Ваш_ключ_API_2.0');
```

Создание экземпляра класса (с расширенными параметрами)
-------------------------------------------------------

[](#создание-экземпляра-класса-с-расширенными-параметрами)

Рекомендуется использовать, если необходимо получать данные на языке, отличном от русского, выбрасывать Exception при ошибке запроса, или при отсутствии установленной библиотеки curl на сервере

```
$np = new NovaPoshtaApi2(
	'Ваш_ключ_API_2.0',
	'ru', // Язык возвращаемых данных: ru (default) | ua | en
	FALSE, // При ошибке в запросе выбрасывать Exception: FALSE (default) | TRUE
	'curl' // Используемый механизм запроса: curl (defalut) | file_get_content
);
```

Получение информации о трек-номере
----------------------------------

[](#получение-информации-о-трек-номере)

```
$result = $np->documentsTracking('59000000000000', '0670000000');
```

Получение сроков доставки
-------------------------

[](#получение-сроков-доставки)

```
// Получение кода города по названию города и области
$sender_city = $np->getCity('Белгород-Днестровский', 'Одесская');
$sender_city_ref = $sender_city['data'][0]['Ref'];
// Получение кода города по названию города и области
$recipient_city = $np->getCity('Киев', 'Киевская');
$recipient_city_ref = $recipient_city['data'][0]['Ref'];
// Дата отправки груза
$date = date('d.m.Y');
// Получение ориентировочной даты прибытия груза между складами в разных городах
$result = $np->getDocumentDeliveryDate($sender_city_ref, $recipient_city_ref, 'WarehouseWarehouse', $date);
```

Получение стоимости доставки
----------------------------

[](#получение-стоимости-доставки)

```
// Получение кода города по названию города и области
$sender_city = $np->getCity('Белгород-Днестровский', 'Одесская');
$sender_city_ref = $sender_city['data'][0]['Ref'];
// Получение кода города по названию города и области
$recipient_city = $np->getCity('Киев', 'Киевская');
$recipient_city_ref = $recipient_city['data'][0]['Ref'];
// Вес товара
$weight = 7;
// Цена в грн
$price = 5450;
// Получение стоимости доставки груза с указанным весом и стоимостью между складами в разных городах
$result = $np->getDocumentPrice($sender_city_ref, $recipient_city_ref, 'WarehouseWarehouse', $weight, $price);
```

Генерирование новой электронной накладной
-----------------------------------------

[](#генерирование-новой-электронной-накладной)

```
// Перед генерированием ЭН необходимо получить данные отправителя
// Получение всех отправителей
$senderInfo = $np->getCounterparties('Sender', 1, '', '');
// Выбор отправителя в конкретном городе (в данном случае - в первом попавшемся)
$sender = $senderInfo['data'][0];
// Информация о складе отправителя
$senderWarehouses = $np->getWarehouses($sender['City']);
// Генерирование новой накладной
$result = $np->newInternetDocument(
    // Данные отправителя
    array(
        // Данные пользователя
        'FirstName' => $sender['FirstName'],
        'MiddleName' => $sender['MiddleName'],
        'LastName' => $sender['LastName'],
        // Вместо FirstName, MiddleName, LastName можно ввести зарегистрированные ФИО отправителя или название фирмы для юрлиц
        // (можно получить, вызвав метод getCounterparties('Sender', 1, '', ''))
        // 'Description' => $sender['Description'],
        // Необязательное поле, в случае отсутствия будет использоваться из данных контакта
        // 'Phone' => '0631112233',
        // Город отправления
        // 'City' => 'Белгород-Днестровский',
        // Область отправления
        // 'Region' => 'Одесская',
        'CitySender' => $sender['City'],
        // Отделение отправления по ID (в данном случае - в первом попавшемся)
        'SenderAddress' => $senderWarehouses['data'][0]['Ref'],
        // Отделение отправления по адресу
        // 'Warehouse' => $senderWarehouses['data'][0]['DescriptionRu'],
    ),
    // Данные получателя
    array(
        'FirstName' => 'Сидор',
        'MiddleName' => 'Сидорович',
        'LastName' => 'Сиродов',
        'Phone' => '0509998877',
        'City' => 'Киев',
        'Region' => 'Киевская',
        'Warehouse' => 'Отделение №3: ул. Калачевская, 13 (Старая Дарница)',
    ),
    array(
        // Дата отправления
        'DateTime' => date('d.m.Y'),
        // Тип доставки, дополнительно - getServiceTypes()
        'ServiceType' => 'WarehouseWarehouse',
        // Тип оплаты, дополнительно - getPaymentForms()
        'PaymentMethod' => 'Cash',
        // Кто оплачивает за доставку
        'PayerType' => 'Recipient',
        // Стоимость груза в грн
        'Cost' => '500',
        // Кол-во мест
        'SeatsAmount' => '1',
        // Описание груза
        'Description' => 'Кастрюля',
        // Тип доставки, дополнительно - getCargoTypes
        'CargoType' => 'Cargo',
        // Вес груза
        'Weight' => '10',
        // Объем груза в куб.м.
        'VolumeGeneral' => '0.5',
        // Обратная доставка
        'BackwardDeliveryData' => array(
            array(
                // Кто оплачивает обратную доставку
                'PayerType' => 'Recipient',
                // Тип доставки
                'CargoType' => 'Money',
                // Значение обратной доставки
                'RedeliveryString' => 4552,
            )
        )
    )
);
```

Получение складов в определенном городе
---------------------------------------

[](#получение-складов-в-определенном-городе)

```
// В параметрах указывается город и область (для более точного поиска)
$city = $np->getCity('Киев', 'Киевская');
$result = $np->getWarehouses($city);
```

Вызов произвольного метода
--------------------------

[](#вызов-произвольного-метода)

```
$result = $np
	->model('Имя_модели')
	->method('Имя_метода')
	->params(array(
		'Имя_параметра_1' => 'Значение_параметра_1',
		'Имя_параметра_2' => 'Значение_параметра_2',
	))
	->execute();
```

Реализованные методы для работы с моделями
==========================================

[](#реализованные-методы-для-работы-с-моделями)

Модель InternetDocument
-----------------------

[](#модель-internetdocument)

- save
- update
- delete
- getDocumentPrice
- getDocumentDeliveryDate
- getDocumentList
- getDocument
- printDocument
- printMarkings
- documentsTracking
- newInternetDocument
- generateReport

Модель Counterparty
-------------------

[](#модель-counterparty)

- save
- update
- delete
- cloneLoyaltyCounterpartySender
- getCounterparties
- getCounterpartyAddresses
- getCounterpartyContactPersons
- getCounterpartyByEDRPOU
- getCounterpartyOptions

Модель ContactPerson
--------------------

[](#модель-contactperson)

- save
- update
- delete

Модель Address
--------------

[](#модель-address)

- save
- update
- delete
- getCities
- getStreet
- getWarehouses
- getAreas
- findNearestWarehouse

Модель Common
-------------

[](#модель-common)

- getTypesOfCounterparties
- getBackwardDeliveryCargoTypes
- getCargoDescriptionList
- getCargoTypes
- getDocumentStatuses
- getOwnershipFormsList
- getPalletsList
- getPaymentForms
- getTimeIntervals
- getServiceTypes
- getTiresWheelsList
- getTraysList
- getTypesOfPayers
- getTypesOfPayersForRedelivery

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance25

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity17

Early-stage or recently created project

 Bus Factor1

Top contributor holds 82.9% of commits — single point of failure

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/61c9686d049485709b59e3bec5315714c308405a4645ed389d38f0fc0fc752b8?d=identicon)[serdominus](/maintainers/serdominus)

---

Top Contributors

[![lis-dev](https://avatars.githubusercontent.com/u/5593509?v=4)](https://github.com/lis-dev "lis-dev (34 commits)")[![serdominus](https://avatars.githubusercontent.com/u/13577430?v=4)](https://github.com/serdominus "serdominus (5 commits)")[![holyspecter](https://avatars.githubusercontent.com/u/4248110?v=4)](https://github.com/holyspecter "holyspecter (1 commits)")[![SAP55](https://avatars.githubusercontent.com/u/3145919?v=4)](https://github.com/SAP55 "SAP55 (1 commits)")

### Embed Badge

![Health badge](/badges/serdominus-nova-poshta-api-2/health.svg)

```
[![Health](https://phpackages.com/badges/serdominus-nova-poshta-api-2/health.svg)](https://phpackages.com/packages/serdominus-nova-poshta-api-2)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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