Download the PHP package jeffgreco13/laravel-wave without Composer
On this page you can find all versions of the php package jeffgreco13/laravel-wave. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jeffgreco13/laravel-wave
More information about jeffgreco13/laravel-wave
Files in jeffgreco13/laravel-wave
Package laravel-wave
Short Description A Laravel wrapper for the Wave Accounting GraphQL API with local data sync.
License MIT
Informations about the package laravel-wave
laravel-wave
A Laravel package for the Wave Accounting GraphQL API. Query your Wave data, sync it to local Eloquent models, and manage customers, invoices, products, and more — all via queued jobs and Artisan commands.
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
- A Wave developer account with an OAuth2 access token
Installation
Publish the config file:
Publish the migrations (optional — only needed if you want local sync):
Configuration
Add to your .env:
Full config/wave.php reference:
Basic Usage
Inject WaveService or resolve it from the container:
Nodes support both array and property access:
Available API Methods
| Method | Description |
|---|---|
getCustomers($vars) |
Paginated customer list |
getAllCustomers($vars) |
All customers (handles pagination) |
createCustomer($input) |
Create a new customer |
patchCustomer($input) |
Update a customer (requires id) |
deleteCustomer($customerId) |
Delete a customer |
getInvoices($vars) |
Paginated invoice list |
getAllInvoices($vars) |
All invoices |
createInvoice($input) |
Create an invoice |
approveInvoice($invoiceId) |
Approve a draft invoice |
sendInvoice($input) |
Send an invoice by email |
getAllProducts() |
All products |
getAllTaxes() |
All sales taxes |
getVendors($vars) |
Paginated vendor list |
getAllVendors() |
All vendors |
getAccounts($vars) |
Paginated chart-of-accounts |
getAllAccounts() |
All chart-of-accounts entries |
getAccount($accountId) |
Single account |
getAllBusinesses() |
All businesses on the account |
getBusiness($id) |
Single business |
getUser() |
Authenticated user |
rawQuery($query, $variables) |
Execute a custom GraphQL query |
Pagination
Data Sync
Sync jobs persist Wave data to your local database. All jobs implement ShouldQueue.
Full Sync
Fetches all records from Wave and upserts them locally. After all pages are processed, any local record whose wave_id was not seen in Wave is deleted (orphan cleanup).
Incremental Sync
Only fetches records modified after a given date. Never deletes local records — a missing record just means it was not recently modified, not that it was deleted.
Sync All Entities
Querying Local Wave Models
Customer CRUD via Jobs
Custom Models
To use your own Eloquent model, implement the HasWaveSync trait and register it in config/wave.php.
Register in config/wave.php:
All sync jobs (SyncCustomersFromWave, CreateWaveCustomer, etc.) will use your model automatically.
Available Artisan Commands
| Command | Description |
|---|---|
wave:sync-customers |
Sync customers from Wave |
wave:sync-all |
Sync all entities |
wave:pull-currencies |
Cache Wave currency list locally |
Options for wave:sync-customers and wave:sync-all:
| Option | Description |
|---|---|
--since="YYYY-MM-DD" |
Incremental sync from a date |
--since=last |
Incremental from most recent local record |
--business-id= |
Override the configured business ID |
--sync |
Run synchronously (skip queue) |
--fresh |
Truncate the local table first (full sync only) |
Available Sync Jobs
| Job | Supports $since? |
Deletes orphans? |
|---|---|---|
SyncCustomersFromWave |
Yes | Full sync only |
SyncInvoicesFromWave |
Yes | Full sync only |
SyncProductsFromWave |
No | Always (full sync) |
SyncSalesTaxesFromWave |
No | Always |
SyncVendorsFromWave |
No | Always |
SyncBusinessesFromWave |
No | Always |
SyncAccountsFromWave |
No | Always |
Data Enums
Use built-in enums for sort/filter values:
Laravel Boost
This package includes AI guidelines and a developer skill for Laravel Boost. After installing Boost in your app, run:
Boost will automatically load the wave-development guidelines and skill to help AI agents write correct Wave integration code.
Changelog / Upgrade Guide
v2.0
- Breaking: Config key changed from
laravel-wavetowave. Update any manualconfig('laravel-wave.*')calls toconfig('wave.*'). - Added local Eloquent model sync (
wave_customers,wave_invoices,wave_products,wave_sales_taxes,wave_vendors,wave_businesses,wave_accounts) - Added
HasWaveSynctrait for custom model mapping - Added sync jobs for all entities with full/incremental modes and orphan deletion
- Added
wave:sync-customers,wave:sync-allArtisan commands - Added
ManagesVendorsandManagesAccountstraits toWaveService - Added
deleteCustomer()toManagesCustomers - Laravel Boost integration (
resources/boost/guidelines/andresources/boost/skills/)
License
MIT
All versions of laravel-wave with dependencies
guzzlehttp/guzzle Version ^7.0
laravel/framework Version ^11.0|^12.0|^13.0