Adyen API Library for Ruby

The Adyen API Library for Ruby lets you easily work with Adyen's API.

Integration

The Library supports all APIs under the following services:

  • checkout
  • checkout utility
  • payments
  • modifications
  • payouts
  • recurring
  • marketpay
  • postfmapi
  • data_protection
  • dispute
  • bin_lookup

Requirements

Built for Ruby >= 2.1

Installation

The sole dependency is faraday for http communication - run bundle install to install faraday if you don't already have it

To validate functionality of client, use bundle install --with development and rspec to run mock API tests.

Documentation

Follow the rest of our guides from the documentation on how to use this library.

Usage

Create a client to connect to the Adyen API

require 'adyen-ruby-api-library'

adyen = Adyen::Client.new

# for API-key based implementations
adyen.api_key = 'AF5XXXXXXXXXXXXXXXXXXXX'

# for basic-auth based implementations
adyen.ws_user = '[email protected]'
adyen.ws_password = 'super_secure_password123'

Make a Payment

response = adyen.checkout.payments({
  :amount => {
    :currency => "EUR",
    :value => 1000
  },
  :reference => "Your order number",
  :paymentMethod => {
    :type => "scheme",
    :encryptedCardNumber => "adyenjs_0_1_18$MT6ppy0FAMVMLH...",
    :encryptedExpiryMonth => "adyenjs_0_1_18$MT6ppy0FAMVMLH...",
    :encryptedExpiryYear => "adyenjs_0_1_18$MT6ppy0FAMVMLH...",
    :encryptedSecurityCode => "adyenjs_0_1_18$MT6ppy0FAMVMLH..."
  },
  :returnUrl => "https://your-company.com/checkout/",
  :merchantAccount => "YourMerchantAccount"
})

Change API Version

adyen.checkout.version = 50

List of supported methods

checkout:

  • payment_session
  • payments.result
  • payment_methods
  • payments
  • payments.details
  • payment_links

checkout utility:

  • origin_keys

payments:

  • authorise
  • authorise3d

modifications:

  • capture
  • cancel
  • refund
  • cancel_or_refund
  • adjust_authorisation
  • donate

payouts:

  • confirm_third_party
  • decline_third_party
  • store_detail
  • submit_third_party
  • store_detail_and_submit_third_party

recurring:

  • list_recurring_details
  • disable
  • store_token

marketpay.account:

  • create_account_holder
  • get_account_holder
  • update_account_holder
  • update_account_holder_state
  • suspend_account_holder
  • un_suspend_account_holder
  • close_account_holder
  • create_account
  • update_account
  • close_account
  • upload_document
  • get_uploaded_documents
  • delete_bank_accounts
  • delete_shareholders

marketpay.fund:

  • account_holder_balance
  • account_holder_transaction_list
  • payout_account_holder
  • transfer_funds
  • setup_beneficiary
  • refund_not_paid_out_transfers

marketpay.notification:

  • create_notification_configuration
  • get_notification_configuration
  • get_notification_configuration_list
  • test_notification_configuration
  • update_notification_configuration
  • delete_notification_configurations

marketpay.hop:

  • get_onboarding_url

postfmapi:

  • assign_terminals
  • find_terminal
  • get_terminals_under_account

data_protection:

  • request_subject_erasure

dispute:

  • retrieve_applicable_defense_reasons
  • supply_defense_document
  • delete_dispute_defense_document
  • defend_dispute

bin_lookup:

  • get_3ds_availability
  • get_cost_estimate

Support

If you have a feature request, or spotted a bug or a technical problem, create a GitHub issue. For other questions, contact our support team.

Contributing

We strongly encourage you to join us in contributing to this repository so everyone can benefit from:

  • New features and functionality
  • Resolved bug fixes and issues
  • Any general improvements

Read our contribution guidelines to find out how.

Licence

MIT license. For more information, see the LICENSE file.