cronhq
Data sync

Hourly Stripe to Postgres sync

Pull the last hour of Stripe events into your own database so analytics never hit Stripe's API directly.

Use this template →schedule: 5 * * * *

Why this exists

Stripe rate-limits aggressive API use. Caching Stripe data locally lets your dashboards and reports run against Postgres instead of Stripe's API. This template fires hourly and triggers a sync endpoint on your backend that pulls new charges, subscriptions, and customer changes since the last run.

Any SaaS that has more than 5 dashboards or reports reading Stripe data. Local cache means fast queries and no rate-limit surprises during a board meeting.

When to use it

  • Your team reads Stripe data from BI tools, dashboards, or admin panels
  • You've ever hit a Stripe rate-limit error in production
  • You want join-able Stripe data alongside your application tables

Common variations

  • Every 15 minutes for near-real-time dashboards
  • Daily for low-volume accounts to save on API calls
  • Parallel jobs per Stripe account if you're multi-tenant

Setup in 4 steps

  1. 01Write a sync endpoint that takes a `since` cursor and pulls Stripe events forward
  2. 02Store the last successful run timestamp so retries are idempotent
  3. 03Use this template — runs hourly, posts the cursor your endpoint expects
  4. 04Alert on failure — a stale cache leads to broken finance reports

Template configuration

Name
stripe-hourly-sync
Schedule
5 * * * *
Method
POST
Timeout
120s
Max retries
3
Retry delay
120s

Webhook URL

https://api.example.com/internal/stripe-sync

Body

{
  "window_minutes": 60
}

Ready

Use this template in 30 seconds.

Sign in, edit the webhook URL and any secrets, hit create. The job is live on the next tick.

Use this template →