|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Stripe Ruby||1,854||7,140||86||3 days ago||350||November 30, 2023||13||mit||Ruby|
|Ruby library for the Stripe API.|
|Stripe Mock||1,252||3 days ago||244||November 16, 2023||3||mit||Go|
|stripe-mock is a mock HTTP server that responds like the real Stripe API. It can be used instead of Stripe's testmode to make test suites integrating with Stripe faster and less brittle.|
|Laravel Stripe Webhooks||453||4||3||2 months ago||41||October 18, 2023||mit||PHP|
|Handle Stripe webhooks in a Laravel application|
|Request Migrations||163||2 years ago||11||May 09, 2019||4||mit||PHP|
|HTTP Request Migrations for API Versioning like Stripe|
|Tornado_api||20||12 years ago||Python|
|Collection of web service libraries for Tornado web framework|
|Payment Server Template||15||9 hours ago||mit||TypeScript|
|Payment Server Template is a generic open-source payment server that has a simple yet powerful design to connect your business with third-party payment solution provider companies (like Stripe or Coinbase).|
|Webtask Compilers for use with https://webtask.io|
|Http Einhorn||9||1||8 years ago||May 25, 2021||Go|
|Go library to run http servers on top of stripe's einhorn.|
|Stripe.webhooks.module||8||7 years ago||1||December 05, 2012||mit||C#|
|A simple no config http module that listens for stripe.com webhooks and provides a simple subscription model.|
|An asynchronous HTTP micro-service for accepting Stripe payments on static sites.|
stripe-mock is a mock HTTP server based on the real Stripe API. It accepts the same requests and parameters that the Stripe API accepts, and rejects requests whose parameters are not recognized or have incorrect types. Its responses resemble the responses of the real Stripe API in terms of data type; however, stripe-mock does not attempt to reproduce the behavior of the real Stripe API at all. It cannot reject all invalid requests, and its responses are completely hardcoded. They will have a correct type, but they will not necessarily be realistic Stripe responses.
stripe-mock is meant for basic sanity checks. We use it in the test suites of our server-side SDKs, like stripe-ruby, stripe-go, etc, to help validate that the SDK hits the right URL and sends the right parameters. If you have more sophisticated testing needs, you shouldn't use stripe-mock. Always test changes to your Stripe integration against testmode. For regression test suites, you should define your own mocks, or use a playback testing tool such as the VCR gem.
While stripe-mock is naïve, it is powered by the Stripe OpenAPI specification and is therefore kept up-to-date with the latest methods, resources, and fields.
stripe-mock supports the following features:
amount=123, a charge will be returned with
POSTrequest will be validated, but it will be completely ignored beyond that. It will not be reflected on the response or on any future request -- unlike the real Stripe API, which stores the information you send it.
The scope we envision for stripe-mock has significantly narrowed since 2017 when we first released it. Back in 2017, our vision was for stripe-mock was to return responses that were realistic as well as just having the expected types. This has changed. We are currently not planning to add statefulness or more sophisticated testing features to stripe-mock. stripe-mock will remain a tool for basic sanity checks. If you have more sophisticated needs, you should define your own mocks, use a playback testing tool like the VCR gem, or find a community library you trust. Be careful, though. Always test changes to your Stripe integration against testmode. Mock implementations of Stripe can never behave exactly at the Stripe API does, and might differ in nuanced (and potentially dangerous) ways.
If you have Go installed, you can install the basic binary with:
go install github.com/stripe/stripe-mock@latest
With no arguments, stripe-mock will listen with HTTP on its default port of
12111 and HTTPS on
Ports can be specified explicitly with:
stripe-mock -http-port 12111 -https-port 12112
-https-port out to activate stripe-mock on only
Have stripe-mock select a port automatically by passing
stripe-mock -http-port 0
It can also listen via Unix socket:
stripe-mock -http-unix /tmp/stripe-mock.sock -https-unix /tmp/stripe-mock-secure.sock
Get it from Homebrew or download it from the releases page:
brew install stripe/stripe-mock/stripe-mock # start a stripe-mock service at login brew services start stripe-mock # upgrade if you already have it brew upgrade stripe-mock # restart the service after upgrading brew services restart stripe-mock
The Homebrew service listens on port
12111 for HTTP and
12112 for HTTPS and
docker run --rm -it -p 12111-12112:12111-12112 stripe/stripe-mock:latest
The default Docker
ENTRYPOINT listens on port
12111 for HTTP and
HTTPS and HTTP/2.
After you've started stripe-mock, you can try a sample request against it:
curl -i http://localhost:12111/v1/charges -H "Authorization: Bearer sk_test_123"
Run the test suite:
go test ./...
Update the OpenAPI spec by running
make update-openapi-spec in the root of the
Dependencies are managed using go modules and require Go 1.11+ with
Releases are automatically published by Travis CI using goreleaser when a new tag is pushed:
git pull origin --tags git tag v0.1.1 git push origin --tags