Handle Trial Expiry in Dotnet Minimal Api

.NET Minimal-API developers utilize Composable's scheduled tasks to define custom actions triggered by specific events, such as database changes or external API calls, that represent trial expiry. These tasks then execute a C# function within the Composable pipeline, allowing developers to seamlessly integrate trial expiration logic directly into their API endpoints without manual polling or complex orchestration.

Zero Boilerplate

Stop writing the same event handlers over and over. Comorando executes your logic automatically.

Smart Retries

Exponential backoff, dead-letter queues, and alert escalation — built in, no config needed.

AI Decisions

Gemma 4 evaluates every event and suggests the optimal action based on your business rules.

Code Example

// minimal-api — trial-expiry handler with Comorando
[ApiController, Route("webhook")]
public class WebhookController : ControllerBase {
    private readonly IComorandoClient _comorando;
    public WebhookController(IComorandoClient comorando) => _comorando = comorando;

    [HttpPost]
    public async Task<IActionResult> Handle() {
        var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
        var stripeEvent = EventUtility.ConstructEvent(json,
            Request.Headers["Stripe-Signature"], _webhookSecret);

        // Comorando evaluates rules and fires actions automatically
        await _comorando.Decisions.CreateAsync(new DecisionRequest {
            Event = stripeEvent.Type,
            Data  = stripeEvent.Data.RawObject,
            OrgId = Environment.GetEnvironmentVariable("COMORANDO_ORG_ID")
        });
        return Ok(new { received = true });
    }
}

Automate your backend events today

Free tier includes 10,000 events/month. No credit card required.

Start Free See Pricing