KBilling Docs

Creating a provisioning module

Connect service lifecycle actions to a panel or cloud API.

modules/servers/acmecloud/acmecloud.php must define AcmecloudModule.

<?php
class AcmecloudModule {
 public function meta(): array { return ['DisplayName'=>'Acme Cloud','APIVersion'=>'1.0']; }
 public function testConnection(array $p): array { return ['success'=>true]; }
 public function createAccount(array $p): array { return ['success'=>true,'ip'=>'203.0.113.10']; }
 public function suspendAccount(array $p): array { return ['success'=>true]; }
 public function unsuspendAccount(array $p): array { return ['success'=>true]; }
 public function terminateAccount(array $p): array { return ['success'=>true]; }
 public function changePassword(array $p): array { return ['success'=>true]; }
 public function changePackage(array $p): array { return ['success'=>true]; }
 public function getPackages(array $p): array { return ['small','large']; }
}

ModuleRunner::buildParams() supplies service, client, product and server data. Return ['success'=>true] or ['success'=>false,'error'=>'safe message']. Use timeouts and idempotent create/terminate calls.