A simple and unified API to handle dozens of different offsite payment pages.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Add binstubs Bundler creates for new gems to ease debugging Apr 19, 2017
gemfiles Remove Money gem as dependency into gemspec Apr 5, 2018
generators replace Money.new with Money.from_amount Jun 8, 2017
lib Bump to 2.7.10 Nov 26, 2018
script Initial extraction Jun 3, 2014
test Merge pull request #306 from GeminPatel/fixes/map_pending_to_failure_… Nov 26, 2018
.gitignore Added the Gemfile.lock under version control: Feb 28, 2018
.travis.yml Remove Money gem as dependency into gemspec Apr 5, 2018
.yardopts Initial extraction Jun 3, 2014
CHANGELOG.md Bump to 2.7.10 Nov 26, 2018
CONTRIBUTING.md Release 2.6.6 Mar 6, 2018
Gemfile Remove Money gem as dependency into gemspec Apr 5, 2018
Gemfile.lock Bump to 2.7.10 Nov 26, 2018
MIT-LICENSE Initial extraction Jun 3, 2014
README.md Added links to money gems Apr 13, 2018
offsite_payments.gemspec Adding instructions about money gem requirements Apr 5, 2018
repodb.yml Update more organization names Jun 22, 2015
shipit.rubygems.yml WIP Jun 4, 2014


Offsite Payments

Build Status Code Climate

Offsite Payments is an extraction from the ecommerce system Shopify. Shopify's requirements for a simple and unified API to handle dozens of different offsite payment pages (often called hosted payment pages) with very different exposed APIs was the chief principle in designing the library.

It was developed for usage in Ruby on Rails web applications and integrates seamlessly as a Rails plugin. It should also work as a stand alone Ruby library, but much of the benefit is in the ActionView helpers which are Rails-specific.

Offsite Payments has been in production use (originally as part of the ActiveMerchant project) since June 2006. It is maintained by the Shopify team, with much help from an ever-growing set of contributors.

The addition of your gateway to offsite_payments does not guarantee placement within Shopify. In order to have your gateway considered, please send an email to payment-integrations@shopify.com with Offsite Payments Integration in the subject. Be sure to include:

  1. Name, URL & description of the payment provider you wish to integrate
  2. Markets served by this integration
  3. List of major supported payment methods
  4. Your most recent Certificate of PCI Compliance
  5. Reason that the Universal API* cannot be used for your integration.

*The Universal API defines a standard set of requests and callbacks that can be used to integrate with Shopify. A sample app and documentation are hosted here. The Universal API should be used for all integrations in which placement within Shopify is the desired outcome.


From Git

You can check out the latest source from git:

git clone https://github.com/activemerchant/offsite_payments.git

From RubyGems

Installation from RubyGems:

gem install offsite_payments

Or, if you're using Bundler, just add the following to your Gemfile:

gem 'offsite_payments'

Money gem dependency

At the moment, offsite_payments gem depends on Money object, which was previously included by default. Since Shopify released their own shopify-money gem. Because offsite_payments does not impose which one of those gems should be included into your gem file, as long as one of them is included.

It's important to note that either of those Money gems would need to be added to your Gemfile before the offsite_payments one.

API documentation.

Supported Integrations


  • This library is MIT licensed.
  • We will gladly accept contributions. See CONTRIBUTING.md for more information.