Hamburglar Hamburglar Build Status

Hamburglar helps you prevent fraudulent orders.

Hamburglar has been tested on MRI 1.9.3, MRI 2.0.0, MRI 2.1.2, and 1.9-compatible JRuby.


You must have an active account with one of the APIs Hamburglar supports. See Supported APIs below.


gem install hamburglar


To get a fraud report, create a new instance of the Hamburglar::Report class:

report =

Check for fraud by comparing the fraud score to Hamburglar.config.fraud_score:


By default, Hamburglar only considers the numeric fraud score when trying to determine if an order is fraudulent. If you need more control, you can configure Hamburglar.config.fraud_proc. It should be a block that returns true when the order should be considered fraudulent.

Hamburglar.configure do |c|
  c.fraud_proc = lambda do |report|
    report.score > 5 && report.distance > 100



Hamburglar supports MaxMind's minFraud and Telephone Verification APIs. By default, reports will use the minFraud API.

Generate a fraud report using minFraud

report =
  :license_key   => 's3cr3tz',
  :ip            => '',
  :city          => 'Funland',
  :region        => 'US',
  :postal        => '12345',
  :country       => 'US',
  :bin           => '12345',
  :domain        => '',
  :binName       => 'Happy Meal Bank',
  :cust_phone    => '+18004445555',
  :email_address => ''

Generate a fraud report using Telephone Verification

report =
  :gateway     => :max_mind_telephone,
  :license_key => 's3cr3tz',
  :phone       => '+18004445555'

Optional Configuration

You may optionally configure the default gateway and credentials Hamburglar will use. For example, in a Rails app where you always used minFraud, you can add the following to config/initializers/hamburglar.rb:

Hamburglar.configure do |config|
  config.fraud_score = 2.5
  config.gateway     = :max_mind_min_fraud
  config.credentials = { :license_key => 's3cr3tz' }

Note that Hamburglar uses a default fraud score of 2.5 and the default gateway is minFraud.

Supported APIs

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not bump version. (If you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull.)
  • Send me a pull request. Bonus points for topic branches.


Copyright (c) 2016 Pressed, LLC. See LICENSE for details.