Skip to content

wardwj/recharge-api

Repository files navigation

Recharge API PHP SDK

PHP Version License

Modern, type-safe PHP SDK for the Recharge Payments API.

Features

  • 🚀 Simple API - Clean, intuitive interface
  • 🔄 Auto Pagination - Handles cursor pagination automatically
  • 🔒 Type-Safe - Full type hints with PHP 8.2+ enums
  • Multi-Version - Supports API versions 2021-01 and 2021-11
  • 📦 PSR Compliant - Follows PHP standards (PSR-3, PSR-7, PSR-12, PSR-18)

Installation

composer require vendor/recharge-api

Quick Start

use Recharge\RechargeClient;

$client = new RechargeClient('your-api-token');

// List subscriptions
foreach ($client->subscriptions()->list() as $subscription) {
    echo $subscription->id . "\n";
}

Basic Usage

List Resources

// List subscriptions
foreach ($client->subscriptions()->list() as $sub) {
    echo $sub->id . "\n";
}

// With filters
foreach ($client->subscriptions()->list(['status' => 'ACTIVE']) as $sub) {
    // Process active subscriptions
}

// With sorting
use Recharge\Enums\Sort\SubscriptionSort;

foreach ($client->subscriptions()->list(['sort_by' => SubscriptionSort::CREATED_AT_DESC]) as $sub) {
    // Subscriptions sorted by creation date (newest first)
}

Get, Create, Update, Delete

// Get single resource
$subscription = $client->subscriptions()->get(123);

// Create resource
$subscription = $client->subscriptions()->create([
    'customer_id' => 456,
    'quantity' => 2,
    'price' => 29.99,
]);

// Update resource
$client->subscriptions()->update(123, ['quantity' => 3]);

// Delete resource
$client->subscriptions()->delete(123);

Pagination

Pagination is automatic - just iterate:

// Fetches all pages automatically
foreach ($client->subscriptions()->list() as $sub) {
    echo $sub->id . "\n";
}

// With page size
foreach ($client->subscriptions()->list(['limit' => 100]) as $sub) {
    // Process in batches of 100
}

// Get first item
$first = $client->subscriptions()->list()->first();

// Get first N items
$items = $client->subscriptions()->list()->take(50);

Sorting

The SDK supports sorting using type-safe enums. See Sorting Documentation for all available sort options.

use Recharge\Enums\Sort\SubscriptionSort;

// Using enums (recommended)
foreach ($client->subscriptions()->list(['sort_by' => SubscriptionSort::CREATED_AT_DESC]) as $sub) {
    // ...
}

// String values also work
foreach ($client->subscriptions()->list(['sort_by' => 'created_at-desc']) as $sub) {
    // ...
}

API Version

use Recharge\Enums\ApiVersion;

// Default is 2021-11
$client = new RechargeClient($token);

// Use 2021-01
$client = new RechargeClient($token, ApiVersion::V2021_01);

// Switch versions
$client->setApiVersion(ApiVersion::V2021_11);

The SDK automatically handles version differences for resources and endpoints.

Available Resources

Detailed examples for each resource are available in the documentation:

Development

# Run tests
composer test

# Check code style
composer cs:check

# Fix code style
composer cs:fix

# Run static analysis
composer analyse

# Run all quality checks
composer quality

Documentation

License

MIT License - See LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages