amritms/waveapps-client-php

Laravel integration for Saas application to consume Wave's API which is built using GraphQL

Maintainers

👁 amritms

Package info

github.com/amritms/waveapps-client-php

pkg:composer/amritms/waveapps-client-php

Statistics

Installs: 1 582

Dependents: 1

Suggesters: 0

Stars: 4

Open Issues: 0

0.3.1 2023-03-13 15:25 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 0ed05dd6c283c4b7010708a1925382a521f0613c

  • Amrit Man Shrestha <amritms.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-19 11:36:13 UTC


README

A wrapper to use the WaveApps's graphql api in your laravel SaaS application. This repo can manage webapps account on behalf of third party users.

Note: If you are looking to use waveapps on behalf of a single user then use subbe/waveapp

The original documentation is available at:

To use WaveApps, you will need to register on the developer portal. And create new application and fetch client_id, client_secret

Requirement & Install

Open you composer.json file and add

"amritms/waveapps-client-php":"0.1"

and go to the location of your composer file in terminal and run

composer update

php artisan vendor:publish

Route

Route::post('webapps/token', 'WebappsController@handleToken');

Update your .env file to include

WAVE_CLIENT_ID=
WAVE_CLIENT_SECRET=
WAVE_GRAPHQL_AUTH_URI=https://api.waveapps.com/oauth2/token/
WAVE_GRAPHQL_URI=https://gql.waveapps.com/graphql/public

Queries

  • user
  • countries
  • country
  • customers
  • products
  • invoices
  • businesses
  • business
  • currencies
  • currency
  • accountTypes
  • accountSubyypes

Mutations

Customer

  • customerCreate
  • customerPatch
  • customerDelete

Account

  • accountCreate
  • accountPatch
  • accountArchive

Product

  • productCreate
  • productPatch
  • productArchive

Sales

  • salesTaxCreate
  • salesTaxPatch
  • salesTaxRateCreate
  • salesTaxArchive

Money Transaction

  • moneyTransactionCreate

Invoice

  • invoiceCreate
  • invoiceDelete
  • invoiceSend
  • invoiceApprove
  • invoiceMarkSent

How to use

Query

$waveapp = new \Amritms\WaveappsClientPhp\Waveapps();
$countries = $waveapp->countries();

--- OR ---

$country = $waveapp->country(['code' => 'US']);

Mutation

$waveapp = new \Amritms\WaveappsClientPhp\Waveapps();
$customer = [
 "input" => [
 "businessId" => "<REPLACE-THIS-WITH-THE-BUSINESS-ID>",
 "name" => "Lucifer Morningstar",
 "firstName" => "Lucifer",
 "lastName" => "Morningstar",
 "displayId" => "Lucifer",
 "email" => "lucifer.morningstar@hell.com",
 "mobile" => "6666666",
 "phone" => "6666666",
 "fax" => "",
 "address" => [
 "addressLine1" => "666 Diablo Street",
 "addressLine2" => "Hell's Kitchen",
 "city" => "New York",
 "postalCode" => "10018",
 "countryCode" => "US"
 ],
 "tollFree" => "",
 "website" => "",
 "internalNotes" => "",
 "currency" => "USD",
 "shippingDetails" => [
 "name" => "Lucifer",
 "phone" => "6666666",
 "instructions" => "pray",
 "address" => [
 "addressLine1" => "666 Diablo Street",
 "addressLine2" => "Hell's Kitchen",
 "city" => "New York",
 "postalCode" => "10018",
 "countryCode" => "US"
 ]
 ]
 ]
];

$newCustomer = $waveapp->customerCreate($customer, "CustomerCreateInput");

Note: This repo is based on subbe/waveapp