Hamburglar Hamburglar Build Status

Hamburglar helps you prevent fraudulent orders.


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 => '[email protected]'

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.