PHPackages                             nebijokit/omniva - 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. nebijokit/omniva

ActiveLibrary[API Development](/categories/api)

nebijokit/omniva
================

Library to communicate with Omniva API

v0.2.1(7y ago)133.9k6[1 issues](https://github.com/nebijokit/omniva/issues)[1 PRs](https://github.com/nebijokit/omniva/pulls)MITPHPPHP &gt;=7.1

Since Jul 16Pushed 2y ago2 watchersCompare

[ Source](https://github.com/nebijokit/omniva)[ Packagist](https://packagist.org/packages/nebijokit/omniva)[ RSS](/packages/nebijokit-omniva/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (3)Versions (4)Used By (0)

Omniva API
==========

[](#omniva-api)

PHP wrapper for courier [Omniva integration](https://www.omniva.ee/public/files/failid/manual_xml_dataexchange_eng.pdf).

[![Build Status](https://camo.githubusercontent.com/5e5fc906fd766006e470ff68da5a9447b9d7160a58f5326c57d987be959e6d89/68747470733a2f2f7472617669732d63692e6f72672f6e6562696a6f6b69742f6f6d6e6976612e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/nebijokit/omniva)[![Maintainability](https://camo.githubusercontent.com/f1dbb8affe92758cb5c572c981c392abffaadbfb3afd8ea853608c3d2c5f0b55/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f61363963393933383864616462353863663734632f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/nebijokit/omniva/maintainability)[![Total Downloads](https://camo.githubusercontent.com/5e03cf37610134462bc9a7da61d6cc11aecd1cd0c36998aced1da6f5256a4fc5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e6562696a6f6b69742f6f6d6e6976612e737667)](https://packagist.org/packages/nebijokit/omniva)

[![SensioLabsInsight](https://camo.githubusercontent.com/ba74c1ca1687618ad0593f0064630c3af1dc07c935862270cd8b4073e8103107/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f38313531626363392d653864362d346236332d393039612d6266653535306665653537312f6d696e692e706e67)](https://insight.sensiolabs.com/projects/8151bcc9-e8d6-4b63-909a-bfe550fee571)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/dc2286bafa068f48a2732ec7c6206c499929266065e4ead74cd7231814c9a6fa/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6e6562696a6f6b69742f6f6d6e6976612f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/nebijokit/omniva/?branch=master)

Examples
--------

[](#examples)

### Get label

[](#get-label)

Returns Label response (`stdClass` object) with encoded PDF &amp; barcode. For Response structure view `getLabel` phpdoc.

```
$client = new Client($username, $password);
$client->getLabel($parcel);

```

### Get pickup points list

[](#get-pickup-points-list)

This endpoint returns list of pickup points. Pickup point can be Terminal or Post office. Field *Type* determines whether field is *Terminal* (Type: 0) or *Post office* (Type: 1).

```
// username & password is not necessary for pickup points
$client = new Client($username, $password);

$points = $client->getPickupPoints();

```

### Create Shipment &amp; get Label

[](#create-shipment--get-label)

```
use Omniva\Parcel;
use Omniva\Client;
use Omniva\Address;
use Omniva\Service;

$client = new Client($username, $password);

$shipment = $parcel->getShipment();
$id = $parcel->getId();

$omnivaParcel = new Parcel();
$omnivaParcel
    ->setWeight($parcel->getWeightInKg())
    ->setPartnerId($id)
    ->setComment($shipment->getRemark())
;

if ($shipment->getCodAmount()) {
    $omnivaParcel->setCodAmount($shipment->getCodAmount());
    $omnivaParcel->addService(Service::COD());
}

$sender = new Address();
$sender
    ->setName($shipment->getSender()->getName())
    ->setPhone($shipment->getSender()->getPhone())
    ->setCountryCode($shipment->getSender()->getCountry()->getCode())
    ->setCity($shipment->getSender()->getCity())
    ->setStreet($shipment->getSender()->getStreet())
    ->setPostCode($shipment->getSender()->getPostalCode())
;

if ($shipment->getSender()->getEmail()) {
    $sender->setEmail($shipment->getSender()->getEmail());
}

$omnivaParcel->setSender($sender);

$returnee = clone $sender;
$omnivaParcel->setReturnee($returnee);

$receiver = new Address();
$receiver
    ->setName($shipment->getReceiver()->getName())
    ->setCountryCode($shipment->getReceiver()->getCountry()->getCode())
;

if ($shipment->getReceiver()->getEmail()) {
    $receiver->setEmail($shipment->getReceiver()->getEmail());
}

if ($shipment->getReceiver()->getPhone()) {
    $receiver->setPhone($shipment->getReceiver()->getPhone());
}

if ($shipment->getReceiver()->isTypeTerminal()) {
    $terminal = $shipment->getReceiver()->getTerminal();

    $pickupPoint = new PickupPoint($terminal->getIdentifier());
    $pickupPoint->setType($terminal->isPostOffice() ? PickupPoint::TYPE_POST_OFFICE : PickupPoint::TYPE_TERMINAL);

    $receiver->setPickupPoint($pickupPoint);

    if ($shipment->getReceiver()->getPhone()) {
        $omnivaParcel->addService(Service::SMS());
    }

    if ($shipment->getReceiver()->getEmail()) {
        $omnivaParcel->addService(Service::EMAIL());
    }
} else {
    $receiver
        ->setCity($shipment->getReceiver()->getCity())
        ->setStreet($shipment->getReceiver()->getStreet())
        ->setPostCode($shipment->getReceiver()->getPostalCode())
    ;
}
$omnivaParcel->setReceiver($receiver);

$response = $client->createShipment($omnivaParcel);

$trackingNumber = $response->savedPacketInfo->barcodeInfo->barcode;
$parcel->setTrackingNumber($trackingNumber);
$omnivaParcel->setTrackingNumber($trackingNumber);

$response = $client->getLabel($omnivaParcel);

// PDF content
$content = $response->successAddressCards->addressCardData->fileData;

```

Ideas for further development
-----------------------------

[](#ideas-for-further-development)

- implement `Client` tracking
- add Symfony\\Constraint for data validation

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~7 days

Total

3

Last Release

2842d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8bf87e8bf9e955d4364db7bd8f5c1ba68940467b9629a5820f68a59416948286?d=identicon)[aur1mas](/maintainers/aur1mas)

---

Top Contributors

[![aur1mas](https://avatars.githubusercontent.com/u/123205?v=4)](https://github.com/aur1mas "aur1mas (14 commits)")

### Embed Badge

![Health badge](/badges/nebijokit-omniva/health.svg)

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

###  Alternatives

[netflie/whatsapp-cloud-api

The first PHP SDK to send and receive messages using a cloud-hosted version of the WhatsApp Business Platform

640431.7k4](/packages/netflie-whatsapp-cloud-api)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[mapado/rest-client-sdk

Rest Client SDK for hydra API

1125.9k2](/packages/mapado-rest-client-sdk)

PHPackages © 2026

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