medianova / laravel-accounting
Accounting package for laravel
Installs: 380
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/medianova/laravel-accounting
Requires
- ext-json: *
- guzzlehttp/guzzle: ^6.5.5|^7.0.1
- quickbooks/v3-php-sdk: ^6.0
Requires (Dev)
- orchestra/testbench: ^v6.18.0
- phpunit/phpunit: ^9
This package is not auto-updated.
Last update: 2026-01-14 09:07:27 UTC
README
Support Libraries
- Quickbooks
- LOGO
Installation
You can install the package via composer:
composer require medianova/laravel-accounting
configuration in config/accounting.php
return [
'provider'=>env('ACCOUNTING_PROVIDER', 'quickbooks'),
'logo'=>[
'base_url' => env('ACCOUNTING_LOGO_BASE_URL', 'http://localhost'),
'username' => env('ACCOUNTING_LOGO_USERNAME', 'XXXXXXXXXXXXX'),
'password' => env('ACCOUNTING_LOGO_PASSWORD', 'XXXXXXXXXXXXX'),
'company_id' => env('ACCOUNTING_LOGO_COMPANY_ID', 'XXXXXXXXXXXXX'),
],
'quickbooks'=>[
'access_token' => env('ACCOUNTING_ACCESS_TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
'refresh_token' => env('ACCOUNTING_REFRESH_TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
'real_me_id' => env('ACCOUNTING_REAL_ME_ID', 'XXXXXXXXXXXXXXXXXXXX'),
'client_id' => env('ACCOUNTING_CLIENT_ID', 'XXXXXXXXXXXXX'),
'client_secret' => env('ACCOUNTING_CLIENT_SECRET', 'XXXXXXXXXXXXX'),
'redirect_url' => env('ACCOUNTING_REDIRECT_URI', 'https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl'),
'scope' => env('ACCOUNTING_OAUTH_SCOPE', 'com.intuit.quickbooks.accounting, openID, profile, phone, address'),
'base_url' => env('ACCOUNTING_BASE_URL', 'development'),
],
];
Usage
<?php
use Medianova\LaravelAccounting\Facades\Accounting;
Accounting::customer([])->create();
Accounting::customer([],0)->update();
Accounting::invoice([])->create();
Accounting::invoice([],0)->update();
Or use by choosing a provider
Customer Create
Accounting::provider('quickbooks')->customer([
"BillAddr" => [
"Line1"=> "123 Main Street",
"City"=> "Mountain View",
"Country"=> "USA",
"CountrySubDivisionCode"=> "CA",
"PostalCode"=> "94042"
],
"Notes" => "Here are other details.",
"Title"=> "Mr",
"GivenName"=> "Evil",
"MiddleName"=> "1B",
"FamilyName"=> "King",
"Suffix"=> "Jr",
"FullyQualifiedName"=> "Evil King",
"CompanyName"=> "King Evial",
"DisplayName"=> "Evil King Sr2",
"PrimaryPhone"=> [
"FreeFormNumber"=> "(555) 555-5555"
],
"PrimaryEmailAddr"=> [
"Address" => "evilkingw@myemail.com"
]
])->create();
Customer Update
Accounting::provider('quickbooks')->customer([
"PrimaryEmailAddr"=> [
"Address" => "umut.cetinkaya@medianova.com"
]
],56)->update();
Invoice Create
Accounting::provider('quickbooks')->invoice([
"Line" => [
[
"Amount" => 100.00,
"DetailType" => "SalesItemLineDetail",
"SalesItemLineDetail" => [
"ItemRef" => [
"value" => 20,
"name" => "Hours"
]
]
]
],
"CustomerRef"=> [
"value"=> 59
],
"BillEmail" => [
"Address" => "Familiystore@intuit.com"
],
"BillEmailCc" => [
"Address" => "a@intuit.com"
],
"BillEmailBcc" => [
"Address" => "v@intuit.com"
]
])->create();
Invoice Update
Accounting::provider('quickbooks')->invoice([
"BillEmail" => [
"Address" => "Familiystore@intuit.com"
]
],111)->update();
Get Transaction Logo
Accounting::provider('logo')->transactions(
[
"FirmNr" => 999,
"DonemNr" => 1,
"BaslangicTarihi" => "2021-01-01T16:43:49.2530818+03:00",
"BitisTarihi" => "2021-06-26T16:43:49.2530818+03:00",
"Kod" => [
"120.01.TEST10"
]
]
)->get();