1. Go to this page and download the library: Download gosuccess/digistore24-api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
gosuccess / digistore24-api example snippets
use GoSuccess\Digistore24\Api\Digistore24;
use GoSuccess\Digistore24\Api\Client\Configuration;
use GoSuccess\Digistore24\Api\Request\BuyUrl\CreateBuyUrlRequest;
use GoSuccess\Digistore24\Api\DTO\BuyerData;
// Initialize configuration
$config = new Configuration('YOUR-API-KEY');
// Or with advanced options (configure via properties)
$config = new Configuration('YOUR-API-KEY');
$config->timeout = 60;
$config->debug = true;
// Create client
$ds24 = new Digistore24($config);
// Create a buy URL
$request = new CreateBuyUrlRequest();
$request->productId = 12345;
$request->validUntil = '48h';
// Add buyer data (with automatic validation)
$buyer = new BuyerData();
$buyer->email = '[email protected]'; // Validates email format
$buyer->firstName = 'John';
$buyer->country = 'de'; // Auto-uppercased to 'DE'
$request->buyer = $buyer;
// Execute request
$response = $ds24->buyUrls->create($request);
echo "Buy URL: {$response->url}\n";
$ds24->buyUrls->create() // Buy URL management
$ds24->products->get() // Product information
$ds24->purchases->list() // Order management
$ds24->rebilling->start() // Subscription management
$ds24->affiliates->getCommission() // Affiliate management
$ds24->ipns->setup() // Webhook management
$ds24->monitoring->ping() // Health checks
final class BuyerData
{
public string $email {
set {
if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
throw new \InvalidArgumentException("Invalid email");
}
$this->email = $value;
}
}
public string $country {
set {
$upper = strtoupper($value);
if (!in_array($upper, ['DE', 'AT', 'CH', 'US', ...])) {
throw new \InvalidArgumentException("Invalid country code");
}
$this->country = $upper;
}
}
}
// List all products (no parameters needed)
$products = $ds24->products->list();
// Get user information (no parameters needed)
$userInfo = $ds24->users->getInfo();
// List all countries (no parameters needed)
$countries = $ds24->countries->listCountries();
// Test API connection (no parameters needed)
$ping = $ds24->system->ping();
// List purchases with default filters (no parameters needed)
$purchases = $ds24->purchases->list();
use GoSuccess\Digistore24\Api\Enum\ProductSortBy;
use GoSuccess\Digistore24\Api\Request\Product\ListProductsRequest;
use GoSuccess\Digistore24\Api\Request\Purchase\ListPurchasesRequest;
// List products sorted by name
$products = $ds24->products->list(
new ListProductsRequest(sortBy: ProductSortBy::NAME)
);
// List purchases from last 7 days
$purchases = $ds24->purchases->list(
new ListPurchasesRequest(
from: '-7 days',
to: 'now'
)
);