💳 Pay - Payments engine for Ruby on Rails

Build Status Gem Version

Pay is a payments engine for Ruby on Rails 6.0 and higher.

⚠️ Upgrading? Check the UPGRADE guide for required changes and/or migration when upgrading from a previous version of Pay.

🧑‍💻 Tutorial

Want to see how Pay works? Check out our video getting started guide.

🏦 Payment Processors

Our supported payment processors are:

  • Stripe (SCA Compatible using API version 2022-11-15)
  • Paddle (SCA Compatible & supports PayPal)
  • Braintree (supports PayPal)
  • Lemon Squeezy (supports PayPal)
  • Fake Processor (used for generic trials without cards, free subscriptions, testing, etc)

Want to add a new payment provider? Contributions are welcome.

We make our best attempt to standardize the different payment providers. They function differently so keep that in mind if you plan on doing more complex payments. It would be best to stick with a single payment provider in that case so you don't run into discrepancies.

📚 Docs

🙏 Contributing

If you have an issue you'd like to submit, please do so using the issue tracker in GitHub. In order for us to help you in the best way possible, please be as detailed as you can.

For those using devcontainers, if you want to test the application with different databases:

  1. Uncomment the DATABASE_URL corresponding to the database type you wish to use in the .devcontainer/devcontainer.json file.
  2. Rebuild the devcontainer, which will configure the application to use the selected database for your development environment.

If you'd like to open a PR please make sure the following things pass:

bin/rails db:test:prepare
bin/rails test
bundle exec standardrb

📝 License

The gem is available as open source under the terms of the MIT License.