login('id', 'secret'); // List existing webhooks $response = $baas->send(new GetWebhooksRequest()); $webhooks = $response->dto(); // DataCollection of WebhookSubscriptionData foreach ($webhooks as $webhook) { echo "Webhook ID: {$webhook->id}, URL: {$webhook->callbackUri}\n"; } // Create new webhook $data = new WebhookSubscriptionRequestData('https://your-app.com/webhooks/alfa', ['transactions']); $baas->send(new CreateWebhookRequest($data)); /** * 2. Parsing incoming webhook payload (Webhook Controller logic) */ $rawPayload = [ [ 'actionType' => 'create', 'eventTime' => '2023-10-27T10:00:00Z', 'object' => 'ul_transaction_default', 'data' => [ 'transactionId' => 'TX-12345', 'amount' => ['amount' => 100.50, 'currencyName' => 'RUR'], 'direction' => 'CREDIT', 'paymentPurpose' => 'Test payment' ] ] ]; // Use the factory to parse the payload into a DTO $webhookDto = WebhookFactory::create($rawPayload); echo "Received Webhook: {$webhookDto->object} ({$webhookDto->actionType})\n";