Connect Stripe#
Difficulty: simple (API key). Sync Stripe customers and products, and capture billing events as they happen.
Auth at a glance#
| Method | Restricted API key (Bearer) |
| What you create | A restricted key in your Stripe dashboard |
| Where Forge helps | Forge stores the key encrypted and never returns it |
What you'll need#
- A Stripe account (test mode is perfect to start).
- A restricted API key scoped to the resources you want Forge to manage (Customers, Products) plus read access to Events for change capture.
Steps#
- In the Stripe dashboard, go to Developers → API keys → Create restricted key. Grant write on Customers/Products and read on Events.
- In Connections, choose Stripe → Connect and paste the key.
- Forge stores it encrypted. Done.
What you get#
- Source: Stripe's
/v1/eventsfeed is the change feed — Forge polls it on a cursor and emits one change per resource, keyed on the resource id, so redelivery never double-counts. - Destination: upsert Customers/Products keyed on
metadata.forge_external_id(search-then-write), with snapshot/verify/rollback.
Gotchas#
- Search is eventually consistent. A just-created customer may not be returned by Stripe's Search API for a few seconds, so Forge confirms a write directly by id and retries the search-based verify until it indexes. Expect a short lag on read-after-write.
- Products with prices can't be deleted. Stripe refuses to delete a Product that has prices attached — Forge surfaces that 400 rather than pretending the delete worked. Customers delete cleanly.
- Use test mode first. Restricted test-mode keys exercise the whole round-trip with zero risk.
Note: Stripe is fully live-verified — both halves — in test mode, including the eventual-consistency handling on the Search API.