Skip to content

LunaWanderer1/dotnet-stripe-sync-engine

Repository files navigation

DotNetStripeSyncEngine

A .NET 10 Stripe sync engine built for EF Core and minimal APIs. Inspired by supabase/stripe-sync-engine.

What this package provides

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.

Install and register

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"
        };
    });

Map webhook endpoint

using DotNetStripeSyncEngine.Endpoints;
using DotNetStripeSyncEngine.Data;

var app = builder.Build();
await StripeSyncMigrationRunner.RunMigrationsAsync(app.Services);
app.MapStripeWebhookEndpoint("/stripe/webhooks");

Documentation

See docs/PublicApi.md for a complete description of the public API and usage patterns.

About

Sync Stripe Data to any EF Core Database using .NET

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages