1. Go to this page and download the library: Download shoman4eg/moy-nalog library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
shoman4eg / moy-nalog example snippets
// Необходимо выставить часовой пояс для корректного формирования дат в чеках
// Можно установить с помощью функции date_default_timezone_set
date_default_timezone_set('Europe/Kaliningrad');
// или через класс DateTimeImmutable, с нужным часовым поясом, перед созданием чека
$operationTime = new \DateTimeImmutable('now', new \DateTimeZone('Europe/Kaliningrad'))
use Shoman4eg\Nalog\ApiClient;
$apiClient = ApiClient::create();
try {
// Запрос accessToken
$accessToken = $apiClient->createNewAccessToken($username, $password);
} catch (\Shoman4eg\Nalog\Exception\Domain\UnauthorizedException $e) {
var_dump($e->getMessage());
}
// Аутентификация с помощью accessToken
$apiClient->authenticate($accessToken);
use Shoman4eg\Nalog\ApiClient;
$apiClient = ApiClient::create();
try {
// Запрос accessToken
$accessToken = $apiClient->createNewAccessTokenByPhone(
'79000000000', // Номер телефона
'00000000-0000-0000-0000-000000000000', // challengeToken
'123456' // Код из СМС
);
} catch (\Shoman4eg\Nalog\Exception\Domain\UnauthorizedException $e) {
var_dump($e->getMessage());
}
// Аутентификация с помощью accessToken
$apiClient->authenticate($accessToken);
$name = 'Предоставление информационных услуг #970/2495'; // Наименование
$amount = 1800.30; // Стоимость
$quantity = 1; // Количество
$operationTime = new DateTimeImmutable('2020-12-31 12:12:00'); // Дата продажи
// Создание чека
$createdIncome = $apiClient->income()->create(
$name,
$amount,
$quantity,
$operationTime
);
// UUID чека для операций запроса данных чека или его отмены
$receiptUuid = $createdincome->getApprovedReceiptUuid();
$items = [
new \Shoman4eg\Nalog\DTO\IncomeServiceItem(
'Предоставление информационных услуг #970/2495', // Наименование
1800.30, // Стоимость
1 // Количество
),
new \Shoman4eg\Nalog\DTO\IncomeServiceItem(
'Предоставление информационных услуг #971/2495',
900,
2
),
// И так далее...
];
// Дата продажи
$operationTime = new DateTimeImmutable('2020-12-31 12:12:00');
// Создание чека
$createdIncome = $apiClient->income()->createMultipleItems(
$items,
$operationTime
);
// UUID чека для операций запроса данных чека или его отмены
$receiptUuid = $createdincome->getApprovedReceiptUuid();
$name = 'Предоставление информационных услуг #970/2495'; // Наименование
$amount = 1800.30; // Стоимость
$quantity = 1; // Количество
$operationTime = new DateTimeImmutable('2020-12-31 12:12:00'); // Дата продажи
// По умолчанию физ. лицо без указания контактных данных (INDIVIDUAL)
$client = new \Shoman4eg\Nalog\DTO\IncomeClient();
// Или физ. лицо с указанием контактных данных (INDIVIDUAL)
$client = new \Shoman4eg\Nalog\DTO\IncomeClient(
'+79009000000',
'Вася Пупкин',
\Shoman4eg\Nalog\Enum\IncomeType::INDIVIDUAL,
'390000000000' // ИНН физ. лица (12 символов)
);
// Или юр. лицо (ИП, ООО и т.п.) (LEGAL_ENTITY)
$client = new \Shoman4eg\Nalog\DTO\IncomeClient(
null,
'ИП Вася Пупкин Валерьевич',
\Shoman4eg\Nalog\Enum\IncomeType::LEGAL_ENTITY,
'7700000000' // ИНН юр лица (10 символов)
);
// Или иностранная организация (FOREIGN_AGENCY)
$client = new \Shoman4eg\Nalog\DTO\IncomeClient(
null,
'Facebook Inc.',
\Shoman4eg\Nalog\Enum\IncomeType::FOREIGN_AGENCY,
'9909000000' // ИНН иностранной организации (10 символов)
);
// Создание чека
$createdIncome = $apiClient->income()->create(
$name,
$amount,
$quantity,
$operationTime,
$client
);
// UUID чека для операций запроса данных чека или его отмены
$receiptUuid = $createdincome->getApprovedReceiptUuid();
// UUID чека
$receiptUuid = "20hykdxbp8";
// Получить ссылку на чек для печати
$receipt = $apiClient->receipt()->printUrl($receiptUuid);
// Получить данные по чеку в JSON формате
$receipt = $apiClient->receipt()->json($receiptUuid);
// UUID чека
$receiptUuid = "20hykdxbp8";
// Причина отмены: "Чек выдан ошибочно"
$comment = \Shoman4eg\Nalog\Enum\CancelCommentType::CANCEL;
// Причина отмены: "Возврат денежных средств"
$comment = \Shoman4eg\Nalog\Enum\CancelCommentType::REFUND;
// Код партнёра (по умолчанию: null)
$partnerCode = null;
// Дата совершения возврата (по умолчанию: now)
$operationTime = new \DateTimeImmutable('now');
// Дата запроса отмены чека (по умолчанию: now)
$requestTime = new \DateTimeImmutable('now');
// Отмена чека
$incomeInfo = $apiClient->income()->cancel(
$receiptUuid,
$comment,
$operationTime,
$requestTime,
$partnerCode
);