datamonsterpro/easybilling

Official PHP client library for EasyBilling Pro API

Maintainers

Package info

github.com/datamonsterpro/easybilling

pkg:composer/datamonsterpro/easybilling

Transparency log

Statistics

Installs: 13

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.3 2026-08-02 16:47 UTC

This package is auto-updated.

Last update: 2026-08-02 16:48:21 UTC


README

Requirements

  • PHP >= 7.4
  • ext-json
  • ext-curl

Installation

composer require datamonsterpro/easybilling

Документация SWAGGER

https://app.easybilling.pro/api-docs

План миграции

Перенос старых данных

  1. Перенос кастомеров
  2. Перенос подписок
  3. Перенос закрывашек
  4. Перенос скидок
  5. Перенос кредитов
  6. Перенос транзакций

Настройка операций

  1. Создать кастомера и сохранить в таблице user сustomer id
  2. Создать транзакцию на платеж по карте
  3. Создать транзакцию на платеж от юрлица
  4. Создать транзакцию на доверенный платеж
  5. Передать закрывашку

Настройка интерфейса

  1. Виджет баланса
  2. Виджет транзакций
  3. Виджет тарифов
  4. Виджет закрывашек

Помощь с интеграцией

Оставьте заявку на сайте https://easybilling.pro/

Пример команды на Yii2 для переноса клиентов в easybilling

<?php

namespace app\commands;

use app\components\ArrayHelper;
use app\components\Logger;
use app\models\User;
use easyBilling\EasyBillingClient;
use easyBilling\models\Transaction;
use yii\console\Controller;

class EasyBillingController extends Controller
{

    public function actionMigrate()
    {
        //выгружаем пользователей
        $users = User::find()
            ->where(['id' => 7])
            ->all();

        //маппинг старый и новых тарифов: id текущего тарифа => id тарифа из easybilling
        $rateMap = [
            1 => 167307
        ];

        //создаем клиента
        $api = new EasyBillingClient('11a77d53-9344-4e4d-b4cd-af32b3507fda');

        //id продукта из easybilling на который будем подписывать
        $productId = 126156;

        foreach ($users as $user) {
            Logger::trace($user->email);

            //создаем клиента
            $res = $api->customer->create($user->email, $user->phone, $user->customer_id, $user->customer_id, $user->created_at);
            if ($api->customer->getLastHttpCode() === 200) {
                Logger::success(' - account ok');
                $customerId = ArrayHelper::getValue($res, 'data.id');
                $rateId = $rateMap[$user->rate_id];

                //создаем подписку, нужно передать $skipTransactionRemainingDays=1 чтобы по подписке не списались средства за текущий месяц и не было двойного списания у клиента.
                $api->subscription->create($customerId, $productId, null, $rateId, 1);
                if ($api->subscription->getLastHttpCode() === 200) {
                    Logger::success(' - subscription ok');
                    $amount = $user->balance;
                    $comment = 'Перенос средств на новый биллинг';
                    
                    //создаем транзакцию на зачисление текущего баланса
                    $api->transaction->create($customerId, Transaction::ACTION_ID_INCOME, Transaction::TYPE_ID_CORRECTION, Transaction::PAYMENT_TYPE_ID_SYSTEM, $amount, null, null, null, $comment);
                    if ($api->transaction->getLastHttpCode() === 200) {
                        Logger::success(' - transaction ok');
                    }
                }
            }
        }
    }
}

License

MIT — see LICENSE for details.