PHP класс для работы с API Укрпочты. Форкнуто с https://github.com/martinjack/UkrposhtaAPI для добавления новых методов (пока только просчёт доставки).
- PHP 7+
- Composer
composer require yurycooliq/ukrposhta-php
См. example.php.
- Getting started
- Создать адрес
- Редактировать адрес
- Показать адрес по ID
- Создать нового клиента
- Редактировать клиента
- Получить клиента по ID или ExternalID
- Создать группу отправлений
- Редактирование группы отправлений
- Получить список групп отправлений
- Получить группу отправлений по ID
- Создать новую посылку
- Редактировать посылку
- Получить список почтовых отправлений
- Получить почтовое отправление по ID
- Удалить почтовое отправление с группы
- Создать форму в PDF формате
- Создать форму 103 в PDF формате
- [NEW] Стоимость доставки по Украине
<?php
use Ukrposhta\Ukrposhta;
// If you are using framework, like Laravel, skip this line
include __DIR__ . '/vendor/autoload.php';
$ukrpochta = new Ukrposhta('API_KEY');
// Address payload
$data = [
'postcode' => '02099',
'region' => 'Полтавська',
'district' => 'Полтавський',
'city' => 'Полтава',
'street' => 'Шевченка',
'houseNumber' => '25',
'apartmentNumber' => '20',
];
// Get response in json
$json_string = $ukrpochta->createAddress($data);
// Decode it
$result = json_decode($json_string);
// Example of use
print_r($result->id); // 123130
print_r($result->postcode); // "02099"
print_r($result->country); // "UA"
$ukrpochta->createAddress([
'postcode' => '02099',
'region' => 'Полтавська',
'district' => 'Полтавський',
'city' => 'Полтава',
'street' => 'Шевченка',
'houseNumber' => '25',
'apartmentNumber' => '20',
]);
$ukrpochta->editAddress(123130, [
'postcode' => '02050',
'region' => 'Полтавська',
'district' => 'Полтавський',
'city' => 'Полтава',
'street' => 'Шевченка',
'houseNumber' => '50',
'apartmentNumber' => '1',
]);
$ukrpochta->getAddress(123130);
$ukrpochta->createClient('TOKEN COUNTERPARTY', array(
'name' => 'ФОП «Діскорд',
'uniqueRegistrationNumber' => '32855961',
'externalId' => '12345678',
'addressId' => 1245,
'phoneNumber' => '0954623442',
'counterpartyUuid' => 'COUNTERPARTY UUID',
'bankCode' => '612456',
'bankAccount' => '12345684'
));
$ukrpochta->editClient('UUID_CLIENT', 'TOKEN_COUNTERPARTY', array(
'lastName' => 'Петрик',
'firstName' => 'Иван',
'middleName' => 'Васильович',
'uniqueRegistrationNumber' => '73232855',
'addressId' => 1,
'phoneNumber' => '0954623442',
'counterpartyUuid' => 'UUID COUNTERPARTY',
'discount' => 24,
'bankCode' => 254,
));
$ukrpochta->getClient('TOKEN_COUNTERPARTY', 'ID_CLIENT');
$ukrpochta->getClient('TOKEN_COUNTERPARTY', '', 'externalId_CLIENT', false);
$ukrpochta->createGroup('TOKEN_COUNTERPARTY', array(
'name' => 'group1',
'counterpartyUuid' => 'UUID_COUNTERPARTY',
));
$ukrpochta->editGroup('TOKEN_COUNTERPARTY', 'UUID_GROUP', array(
'name' => 'group2',
'counterpartyUuid' => 'UUID_COUNTERPARTY',
));
$ukrpochta->groupList('TOKEN_COUNTERPARTY');
$ukrpochta->getGroup('UUID_GROUP', 'UUID_COUNTERPARTY');
$ukrpochta->createParcel('ba5378df-985e-49c5-9cf3-d222fa60aa68', array(
'sender' => array(
'name' => 'ПРАТ Иван Движок',
'firstName' => '',
'middleName' => '',
'lastName' => '',
'uniqueRegistrationNumber' => '2541',
'counterpartyUuid' => '2304bbe5-015c-44f6-a5bf-3e750d753a17',
'addressId' => 123130,
'phoneNumber' => '0954623442',
'individual' => false,
'bankCode' => '123001',
'bankAccount' => '111000222000999',
),
'recipient' => array(
'name' => 'Иванов Иван Иванович',
'firstName' => 'Иван',
'middleName' => 'Иванович',
'lastName' => 'Иванови',
'uniqueRegistrationNumber' => '52415',
'counterpartyUuid' => '2304bbe5-015c-44f6-a5bf-3e750d753a17',
'addressId' => 123130,
'phoneNumber' => '0954623442',
'individual' => true,
'bankCode' => '123011',
'bankAccount' => '111000222000123',
),
'shipmentGroupUuid' => '54d3cb05-7ff4-4310-ab7c-ea77af42d998',
'deliveryType' => 'W2W',
'weight' => 150,
'length' => 20,
'width' => 0,
'height' => 0,
'postPay' => 15,
'description' => 'test comment comment',
'parcels' => array(
array(
'name' => 'parcel name',
'weight' => 1000,
'length' => 170,
'declaredPrice' => 20,
),
),
));
$ukrpochta->editParcel('ID_PARCEL', 'TOKEN_COUNTERPARTY', array(
'sender' => array(
'name' => 'ПРАТ Иван Движок',
'firstName' => '',
'middleName' => '',
'lastName' => '',
'uniqueRegistrationNumber' => '2541',
'counterpartyUuid' => '2304bbe5-015c-44f6-a5bf-3e750d753a17',
'addressId' => 123130,
'phoneNumber' => '0954623442',
'individual' => false,
'bankCode' => '123001',
'bankAccount' => '111000222000999',
),
'recipient' => array(
'name' => 'Иванов Иван Иванович',
'firstName' => 'Иван',
'middleName' => 'Иванович',
'lastName' => 'Иванови',
'uniqueRegistrationNumber' => '52415',
'counterpartyUuid' => '2304bbe5-015c-44f6-a5bf-3e750d753a17',
'addressId' => 123130,
'phoneNumber' => '0954623442',
'individual' => true,
'bankCode' => '123011',
'bankAccount' => '111000222000123',
),
'shipmentGroupUuid' => '54d3cb05-7ff4-4310-ab7c-ea77af42d998',
'deliveryType' => 'W2W',
'weight' => 1500,
'length' => 20,
'width' => 0,
'height' => 0,
'postPay' => 15,
'description' => 'change comment parcel',
'parcels' => array(
array(
'name' => 'parcel name change',
'weight' => 1000,
'length' => 170,
'declaredPrice' => 20,
),
),
));
$ukrpochta->parcelList('TOKEN_COUNTERPARTY');
$ukrpochta->getParcel('ID_PARCEL', 'TOKEN_COUNTERPARTY');
$ukrpochta->getParcel('ID_SENDER', 'TOKEN_COUNTERPARTY');
$ukrpochta->delParcelGroup('ID_PARCEL', 'ID_GROUP');
$ukrpochta->createForm('ID_PARCEL', 'TOKEN_COUNTERPARTY', __DIR__ . '/file.pdf');
$ukrpochta->createForm('ID_GROUP', 'TOKEN_COUNTERPARTY', __DIR__ . '/file.pdf', false);
$ukrpochta->createForm103('ID_GROUP', 'TOKEN_COUNTERPARTY', __DIR__ . '/file.pdf');
$ukrpochta->deliveryPrice([
'weight' => 1000,
'length' => 55,
'addressFrom' => [
'postcode' => '03134'
],
'addressTo' => [
'postcode' => '62404'
],
'type' => 'EXPRESS',
'deliveryType' => 'W2W',
'declaredPrice' => 300,
]);