A .NET 10 Stripe sync engine built for EF Core and minimal APIs. Inspired by supabase/stripe-sync-engine.
This project synchronizes your Stripe account to a database through Entity Framework. It works with a new database or an existing one, including PostgreSQL and other EF-supported providers.
using DotNetStripeSyncEngine.Extensions;
builder.Services.AddStripeSyncEngine(
configureDbContext: (_, db) => db.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")),
configureOptions: options =>
{
options.Schema = "stripe";
options.StripeSecretKey = builder.Configuration["Stripe:SecretKey"]!;
options.StripeWebhookSecret = builder.Configuration["Stripe:WebhookSecret"]!;
options.WebhookPath = "/stripe/webhooks";
options.RevalidateObjectsViaStripeApi = new(StringComparer.OrdinalIgnoreCase)
{
"customer", "invoice", "subscription", "payment_intent"
};
});using DotNetStripeSyncEngine.Endpoints;
using DotNetStripeSyncEngine.Data;
var app = builder.Build();
await StripeSyncMigrationRunner.RunMigrationsAsync(app.Services);
app.MapStripeWebhookEndpoint("/stripe/webhooks");See docs/PublicApi.md for a complete description of the public API and usage patterns.