An unofficial wrapper client for lknpd.nalog.ru API

Overview

Unofficial MoyNalog API client

Php version Latest Version Total Downloads Scrutinizer code quality Packagist License

An unofficial wrapper client for lknpd.nalog.ru API

Install

Via Composer

$ composer require shoman4eg/moy-nalog

Usage

Settings

// If need set timezone use this
date_default_timezone_set('Europe/Kaliningrad');
// or set timezone through new DateTimeZone
$operationTime = new DateTimeImmutable('now', new DateTimeZone('Europe/Kaliningrad'))

Authorization

$apiClient = ApiClient::create();

// If known accessToken skip this step
$accessToken = $apiClient->createNewAccessToken($username, $password);

// Access token MUST contains all json response from method createNewAccessToken()
$accessToken = '...';
$apiClient->authenticate($accessToken);

Create income with default client

$name = 'Предоставление информационных услуг #970/2495';
$amount = 1800.30;
$quantity = 1;
$amount = 1;
$operationTime = new DateTimeImmutable('2020-12-31 12:12:00');
$createdIncome = $apiClient->income()->create($name, $amount, $quantity, $operationTime);

Create income with custom client

$name = 'Предоставление информационных услуг #970/2495';
$amount = 1800.30;
$quantity = 1;
$operationTime = new DateTimeImmutable('2020-12-31 12:12:00');

$client = new Shoman4eg\Nalog\DTO\IncomeClient(); // Default. All fields are empty IncomeType is FROM_INDIVIDUAL
// or
$client = new Shoman4eg\Nalog\DTO\IncomeClient('+79009000000', 'Вася Пупкин', \Shoman4eg\Nalog\Enum\IncomeType::INDIVIDUAL, '390000000000');
// or
$client = new Shoman4eg\Nalog\DTO\IncomeClient(null, 'Facebook Inc.', \Shoman4eg\Nalog\Enum\IncomeType::FOREIGN_AGENCY, '390000000000');
// or
$client = new Shoman4eg\Nalog\DTO\IncomeClient(null, 'ИП Вася Пупкин Валерьевич', \Shoman4eg\Nalog\Enum\IncomeType::LEGAL_ENTITY, '7700000000');
$createdIncome = $apiClient->income()->create($name, $amount, $quantity, $operationTime, $client);

Cancel income

$receiptUuid = "20hykdxbp8"
$comment = \Shoman4eg\Nalog\Enum\CancelCommentType::CANCEL;
$partnerCode = null; // Default null
$operationTime = new DateTimeImmutable('now'); //Default 'now'
$requestTime = new DateTimeImmutable('now'); //Default 'now'
$incomeInfo = $apiClient->income()->cancel($receiptUuid, $comment, $operationTime, $requestTime, $partnerCode);

Create Invoice

// todo

Cancel Invoice

// todo

Change payment type in Invoice

// todo

Get user info

$userInfo = $apiClient->user()->get();

Get receipt info

// $receiptUuid = $createdincome->getApprovedReceiptUuid();

// Get print url
$receipt = $apiClient->receipt()->printUrl($receiptUuid);

// Json data
$receipt = $apiClient->receipt()->json($receiptUuid);

References

Автоматизация для самозанятых: как интегрировать налог с IT проектом

JS lib alexstep/moy-nalog

Changelog

Changelog: A complete changelog

License

The MIT License (MIT). Please see License File for more information.

Comments
  • Как авторизоваться по телефону или

    Как авторизоваться по телефону или "ключам доступа"?

    Упрощённый вариант регистрации через банк, предусматривает создание аккаунта по номеру телефона. Например, у меня есть логин (ИНН), но нет пароля.

    У тебя есть возможность добавить авторизацию с помощью внешних ключей (в том числе бессрочных), которые можно создать в разделе "Управление доступом", или по номеру телефона?

    UPD Если у тебя тоже нет пароля от ИНН на сайте "Мой налог", здесь информация как это сделать

    enhancement 
    opened by nikita-komissarov 8
  • Можно добавить в дистрибутив файлик и примером использования?

    Можно добавить в дистрибутив файлик и примером использования?

    Огромное спасибо за единственную поддерживаемую библиотеку на PHP для самозанятых с таким богатым функционалом.

    Извиняюсь за тупой вопрос, я начинающий разработчик, у меня не получилось через нее сгенерировать чек. После установки из composer и autoload вижу ошибку Undefined class 'ApiClient'.

    Можно добавить в дистрибутив файлик и примером использования?

    Успехов!

    opened by jan6xx 6
  • Ошибка Could not resolve host: lknpd.nalog.ru

    Ошибка Could not resolve host: lknpd.nalog.ru

    Сегодня стал получать ошибку в логах (GuzzleHttp\Exception\ConnectException(code: 0): cURL error 6: Could not resolve host: lknpd.nalog.ru (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for /vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:210) Laravel 8, PHP7.4

    opened by AlexKomMsk 3
  • Время жизни accessToken

    Время жизни accessToken

    Не подскажите, сколько "живет" accessToken? На время сессии или он бессрочный? Привязывается-ли он на стороне npd.nalog.ru к определенной сущности(домену с которого пришел запрос или опят-же к сессии). Или после получения им можно воспользоваться везде где угодно? Что-то не смог нигде найти этой информации.

    question 
    opened by prologonline 2
  • Указание название организации

    Указание название организации

    Поле "displayName" данных клиента client https://github.com/miglm/lknpd-nalog-api/blob/da7f5eb7c4d0e4456669bc4f26ec5c9f872e2ec6/LkNpdNalogApi.php#L119

    enhancement 
    opened by rastafary74 2
  • Указание причины отмены чека

    Указание причины отмены чека

    Поле "comment" запроса на урл /cancel Пример https://github.com/miglm/lknpd-nalog-api/blob/da7f5eb7c4d0e4456669bc4f26ec5c9f872e2ec6/LkNpdNalogApi.php#L140

    По сути есть две причины: 'Чек сформирован ошибочно' 'Возврат средств'

    enhancement 
    opened by rastafary74 2
  • Добавить выброс исключений при неудачной попытке авторизации

    Добавить выброс исключений при неудачной попытке авторизации

    Сейчас неудачная попытка получить токен по логину и паролю не приводит к ошибке выполнения скрипта, хотя по логике без токена дальнейшая работа невозможна. Необходимо выбрасывать исключения, в идеале с той ошибкой которую возвращает сервер при неудачной авторизации.

    opened by rastafary74 1
  • Указание источника/типа дохода

    Указание источника/типа дохода

    Поле 'incomeType' данных о клиенте 'client' пример https://github.com/miglm/lknpd-nalog-api/blob/da7f5eb7c4d0e4456669bc4f26ec5c9f872e2ec6/LkNpdNalogApi.php#L121

    1. FROM_INDIVIDUAL (доход от физического лица)
    2. FROM_LEGAL_ENTITY (доход от юридического лица или ИП)
    3. FROM_FOREIGN_AGENCY (доход от иностранной организации)
    enhancement 
    opened by rastafary74 1
  • Ошибка в документации

    Ошибка в документации

    $incomeInfo = $apiClient->income()->cancel($receiptUuid, $comment, $partnerCode, $operationTime, $requestTime);

    $partnerCode передается последним параметром

    documentation 
    opened by rastafary74 0
  • Release 0.2.0

    Release 0.2.0

    Features

    • Add Payment type methods
    • Add Cancel income method
    • Add custom client for create income
    • Add custom client for create income

    Tests

    • Add tests
    • Add test for api client with custom access token
    • Add test for create income
    • Add test validation for income
    • Add test for cancel income
    • Add test for get paymentType

    Documentation

    • Update Create api client
    • Update Create income
    • Update Get receipt
    • Update Get user info
    • Add Cancel income
    • Add References
    opened by shoman4eg 0
  • Add check type for $client->getInn()

    Add check type for $client->getInn()

    It seems like $client->getInn() can also be of type null; however, parameter $string of mb_strlen() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

    see https://scrutinizer-ci.com/g/shoman4eg/moy-nalog/issues/master/files/src/Api/Income.php?orderField=path&order=asc&honorSelectedPaths=0&issueId=48335691#inspectioncomment-180118192

    bug 
    opened by shoman4eg 0
Releases(v0.4.0)
  • v0.4.0(Nov 26, 2022)

    Features

    • Добавлена аутентификация по номеру телефона и СМС

    Fix

    • Добавлен struct_types=1
    • Добавлен final к некоторым классам
    • Исправлены ошибки psalm, phpstan
    • Код-стайл
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(May 29, 2022)

  • v0.3.0(May 15, 2022)

  • v0.2.3(Apr 14, 2022)

  • v0.2.2(Apr 11, 2022)

  • v0.2.1(Apr 10, 2022)

  • v0.2.0(Apr 10, 2022)

    Features

    • Add Payment type methods
    • Add Cancel income method
    • Add custom client for create income

    Tests

    • Add tests
    • Add test for api client with custom access token
    • Add test for create income
    • Add test validation for income
    • Add test for cancel income
    • Add test for get paymentType

    Documentation

    • Update Create api client
    • Update Create income
    • Update Get receipt
    • Update Get user info
    • Add Cancel income
    • Add References
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Feb 1, 2022)

Owner
Artem Dubinin
Artem Dubinin
OSTicket Unofficial API

Welcome to the unofficial OSTicket API! The purpose of this API is to help the community and leverage the use of OSTicket. For more info, please go to

Bruno Vieira 17 Oct 11, 2022
OpenAI API Client is a component-oriented, extensible client library for the OpenAI API. It's designed to be faster and more memory efficient than traditional PHP libraries.

OpenAI API Client in PHP (community-maintained) This library is a component-oriented, extensible client library for the OpenAI API. It's designed to b

Mounir R'Quiba 6 Jun 14, 2023
Google-api-php-client - A PHP client library for accessing Google APIs

Google APIs Client Library for PHP Reference Docs https://googleapis.github.io/google-api-php-client/main/ License Apache 2.0 The Google API Client Li

Google APIs 8.4k Dec 30, 2022
This package is a simple API laravel wrapper for Pokemontcg with a sleek Model design for API routes and authentication.

This package is a simple API laravel wrapper for Pokemontcg with a sleek Model design for API routes and authentication.

Daniel Henze 3 Aug 29, 2022
PHP JSON-RPC 2.0 Server/Client Implementation with Automatic Client Class Generation via SMD

PHP JSON-RPC 2.0 Server/Client Implementation with Automatic Client Class Generation via SMD

Sergey Bykov 63 Feb 14, 2022
DigitalOcean API v2 client for Symfony and API Platform

DigitalOcean Bundle for Symfony and API Platform DunglasDigitalOceanBundle allows using the DigitalOcean API from your Symfony and API Platform projec

Kévin Dunglas 25 Jul 27, 2022
Nexmo REST API client for PHP. API support for SMS, Voice, Text-to-Speech, Numbers, Verify (2FA) and more.

Client Library for PHP Support Notice This library and it's associated packages, nexmo/client and nexmo/client-core have transitioned into a "Maintena

Nexmo 75 Sep 23, 2022
API client for ThePay - payment gate API

This is the official highly compatible public package of The Pay SDK which interacts with The Pay's REST API. To get started see examples below.

ThePay.cz s.r.o. 3 Oct 27, 2022
Code Quiz MonoRepo (API, API Client, App)

Code Quiz Welcome to the Code Quiz Open Source project from How To Code Well. This is an Open Source project that includes an API and an App for the d

How To Code Well 2 Nov 20, 2022
A PHP wrapper for Spotify's Web API.

Spotify Web API PHP This is a PHP wrapper for Spotify's Web API. It includes the following: Helper methods for all API endpoints: Information about ar

Jonathan Wilsson 796 Jan 8, 2023
Simple Curl based wrapper for Binance API for PHP scripts

Simple Curl based wrapper for Binance API for PHP scripts Feaures API support for SPOT data/trading FAPI/DAPI support for futures data/trading Curl-on

Mr Crypster 22 May 1, 2022
Google Drive Api Wrapper by PHP

GoogleDrive Api Wrapper usage at first you need to create oauth client on google cloud platform. so go to the your google console dashboard and create

Arash Abedi 2 Mar 24, 2022
An elegant wrapper around Google Vision API

STILL UNDER DEVELOPMENT - DO NOT USE IN PRODUCTION Requires PHP 8.0+ For feedback, please contact me. This package provides an elegant wrapper around

Ahmad Mayahi 24 Nov 20, 2022
Twitch Helix API PHP Wrapper for Laravel

Laravel Twitch PHP Twitch Helix API Wrapper for Laravel 5+ ⚠️ Changes on May 01, 2020 Since May 01, 2020, Twitch requires all requests to contain a va

Roman Zipp 87 Dec 7, 2022
Super-simple, minimum abstraction MailChimp API v3 wrapper, in PHP

MailChimp API Super-simple, minimum abstraction MailChimp API v3 wrapper, in PHP. I hate complex wrappers. This lets you get from the MailChimp API do

Drew McLellan 2k Dec 22, 2022
Google Translator Api Wrapper For Php Developers.

Google Translator Api Wrapper For Php Developers.

Roldex Stark 2 Oct 12, 2022
Laravel 8.x package wrapper library for Metatrader 5 Web API

Laravel 8.x package wrapper library for Metatrader 5 Web API

Ali A. Dhillon 10 Nov 13, 2022
A Gitlab API wrapper that helps to automate common actions on CI jobs

Gitlab CI client This is a Gitlab API wrapper that helps to automate common actions on CI jobs (eg: Open a merge request, Open or close an issue etc)

SparkFabrik 2 May 2, 2022
The Official Vultr API PHP Wrapper

WIP - This is not the final API Client. Unstable release use with caution. Vultr API PHP Client. Getting Started Must have a PSR7, PSR17, and PSR18 Co

Vultr 10 Dec 20, 2022