Modern, type-safe PHP SDK for the Recharge Payments API.
- 🚀 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)
composer require vendor/recharge-apiuse Recharge\RechargeClient;
$client = new RechargeClient('your-api-token');
// List subscriptions
foreach ($client->subscriptions()->list() as $subscription) {
echo $subscription->id . "\n";
}// 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 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 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);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) {
// ...
}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.
Detailed examples for each resource are available in the documentation:
- Subscriptions - Manage subscriptions
- Charges - Manage charges with full CRUD and action methods
- Customers - Manage customers and send notifications
- Orders - Manage orders
- Discounts - Manage discount codes
- Addresses - Manage customer addresses
- Payment Methods - Manage customer payment methods (2021-11)
- Plans - Manage subscription plans (2021-11)
- Products - Manage products
- Bundles - Manage bundle selections (2021-11)
- Checkouts - Manage checkouts (BigCommerce/Custom)
- Collections - Manage product collections (2021-11)
- Credits - Manage store credits (2021-11)
- Metafields - Manage metafields
- One-Times - Manage one-time purchases
- Webhooks - Manage webhooks and validate incoming requests
- Async Batches - Perform bulk operations
- Shop/Store - Get shop/store information
# 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- Resource Documentation - Detailed examples for each resource
- Recharge API 2021-11
- Recharge API 2021-01
- Changelog
MIT License - See LICENSE