Paymill Build Status

This is a Ruby wrapper for Paymill's API.

Documentation

We use RubyDoc for documentation.

The documentation of the current release can be found here: http://rubydoc.info/gems/paymill/frames/index

Usage

First, you've to install the gem

gem install paymill

and require it

require "paymill"

Then you have to set your API key:

Paymill.api_key = "your-api-key"

Clients

Paymill documentation on clients

Creating a new client:

Paymill::Client.create(email: "[email protected]", description: "He is a Ruby guy.")

Or find an existing client:

Paymill::Client.find("client_88a388d9dd48f86c3136")

Updating an existing client only works on an instance:

client = Paymill::Client.find("client_88a388d9dd48f86c3136")
client.update_attributes(email: "[email protected]")

Deleting a client:

Paymill::Client.delete("client_88a388d9dd48f86c3136")

For retrieving a collection of all clients you might use the all operation:

Paymill::Client.all

To sort and filter collection lists of objects, use the all method with an options hash. For example to find the most recent transactions belonging to a client you can use the following code:

Paymill::Transaction.all(client: "<client_id>", order: "created_at_desc")

Please note that Transactions and Payments cannot be updated.

Payments

Paymill documentation on payments

Creating a new credit card payment:

Paymill::Payment.create(token: "098f6bcd4621d373cade4e832627b4f6")

Creating a new debit card payment:

Paymill::Payment.create(type: "debit", code: "12345678", account: "1234512345", holder: "Max Mustermann")

Or finding an existing payment:

Paymill::Payment.find("pay_3af44644dd6d25c820a8")

Deleting a payment:

Paymill::Payment.delete("pay_3af44644dd6d25c820a8")

For retrieving a collection of all payments you might use the all operation:

Paymill::Payment.all

Offers

Paymill documentation on offers

Creating a new offer:

Paymill::Offer.create(name: "Monthly", interval: "1 month", amount: 1000, currency: "GBP", trial_period_days: 0)

Updating an offer (works on an Offer instance and only the name can be changed):

offer = Paymill::Offer.find("offer_08064e30032afa3aa046")
offer.update_attributes(name: "New name")

Deleting an offer:

Paymill::Offer.delete('offer_08064e30032afa3aa046')

Retrieving an offer:

Paymill::Offer.find("offer_753480df39aeb114f2f3")

Retrieving all offers:

Paymill::Offer.all

Webhooks

Paymill documentation on webhooks

Creating a new webhook:

Paymill::Webhook.create(email: "[email protected]", event_types: ["transaction.succeeded", "subscription.succeeded"])

Updating a webhook works on an instance (url/email and the event types can be changed):

hook = Paymill::Webhook.find("hook_940143bcdc0c40e7756f")
hook.update_attributes(email: "[email protected]")

Deleting a webhook:

Paymill::Webhook.delete("hook_940143bcdc0c40e7756f")

Retrieving a webhook:

hook = Paymill::Webhook.find("hook_940143bcdc0c40e7756f")

Retrieving all webhooks:

Paymill::Webhook.all

Refunds

Paymill documentation on refunds

Creating a new refund:

Paymill::Refund.create(id: "tran_023d3b5769321c649435", amount: 4200)

Retrieving a refund:

refund = Paymill::Refund.find("refund_87bc404a95d5ce616049")

Retrieving all refunds:

Paymill::Refund.all

Requirements

This gem requires Ruby 1.9 and faces version 2 of Paymill's API.

Bugs

Please report bugs at http://github.com/dkd/paymill-ruby/issues.

Note on Patches/Pull Requests

  • Fork the project from http://github.com/dkd/paymill-ruby.
  • 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 mess with rakefile, version, or history. (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

Copyright (c) 2012-2013 dkd Internet Service GmbH, Stefan Sprenger. See LICENSE for details.