geniusreferrals/geniusreferrals

Genius Referrals PHP SDK - integrate referral programs using the Genius Referrals RESTful API.

Maintainers

Package info

github.com/GeniusReferrals/Genius-Referrals-PHP

Homepage

pkg:composer/geniusreferrals/geniusreferrals

Transparency log

Statistics

Installs: 11 127

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.0 2026-07-23 03:33 UTC

This package is not auto-updated.

Last update: 2026-07-23 10:10:40 UTC


README

A PHP SDK for integrating with the Genius Referrals RESTful API. This SDK provides convenient access to all API resources including accounts, advocates, bonuses, campaigns, products, referrals, redemption requests, reports, tags, vouchers, and widget packages.

Requirements

  • PHP 8.1 or higher
  • Composer

Installation

composer require geniusreferrals/geniusreferrals

Authentication

Get your API token from the Genius Referrals settings page.

require_once 'vendor/autoload.php';

use GeniusReferralsLib\GeniusReferralsClient;

$client = new GeniusReferralsClient(null, 'YOUR_API_TOKEN');

Usage

Accounts

$accounts = $client->getAccounts();

// List with pagination
$accounts = $client->getAccounts()->getAccounts(1, 10);

// Get a single account
$account = $client->getAccounts()->getAccount('your-account-slug');

// Create an account
$client->getAccounts()->createAccount(['name' => 'My Account', ...]);

// Update an account
$client->getAccounts()->updateAccount('your-account-slug', ['name' => 'Updated']);

// Delete an account
$client->getAccounts()->deleteAccount('your-account-slug');

Advocates

$advocates = $client->getAdvocates()->getAdvocates('your-account-slug');
$advocate = $client->getAdvocates()->getAdvocate('your-account-slug', 'advocate-token');
$client->getAdvocates()->postAdvocate('your-account-slug', ['firstname' => 'John', 'email' => 'john@example.com']);
$client->getAdvocates()->patchAdvocate('your-account-slug', 'advocate-token', ['firstname' => 'Updated']);

Bonuses

$bonuses = $client->getBonuses()->getBonuses('your-account-slug');
$client->getBonuses()->postBonus('your-account-slug', ['advocate_token' => 'token', ...]);
$client->getBonuses()->patchBonus('your-account-slug', $bonusId, ['status' => 'approved']);
$client->getBonuses()->getBonusTags('your-account-slug', $bonusId);

Products

$products = $client->getProducts()->getProducts('your-account-slug');
$client->getProducts()->createProduct('your-account-slug', ['name' => 'Widget']);
$client->getProducts()->updateProduct('your-account-slug', 'product-slug', ['name' => 'Updated']);

Tags

$tags = $client->getTags()->getTags('your-account-slug');
$client->getTags()->createTag('your-account-slug', ['name' => 'VIP']);

Vouchers

$vouchers = $client->getVouchers()->getVouchers('your-account-slug');
$client->getVouchers()->createVoucher('your-account-slug', ['code' => 'VOUCHER1']);

Widgets Packages

$packages = $client->getWidgetsPackages()->getWidgetsPackages('your-account-slug');
$widgets = $client->getWidgetsPackages()->getWidgets('your-account-slug', 'package-slug');

Reports

$client->getReports()->getRevenue('your-account-slug', '2026-01-01', '2026-12-31');
$client->getReports()->get1099TaxReport('your-account-slug', 2026);

Docker Development

# Install dependencies
make install

# Run tests
make test

# Run linting
make lint

# Run static analysis
make analyze

# Clean build
make clean

Resources

License

MIT