Project

remitano

0.0
No release in over 3 years
Low commit activity in last 3 years
Ruby API for use with remitano.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0
~> 2.0.0
~> 2.0.0
~> 3.12
>= 0
>= 0
~> 4.0.0
~> 3.3.0

Runtime

>= 4.2.10
~> 2.1.0
>= 0
>= 1.7.3
>= 0
= 0.4.0
 Project Readme

Remitano Ruby API Client

Feel free to fork, modify & redistribute under the MIT license.

Installation

Add this line to your application's Gemfile:

gem 'remitano'

Then execute:

bundle install

Or install it yourself as:

gem install remitano

Usage

Create API Key

Visit https://remitano.com/settings/api_key to create API key.

Get Authentiator secret

Visit https://remitano.com/settings/authenticator to get your authenticator secret.

Note: This is needed to perform actions which need 2FA authentication like withdrawals, otherwise, you won't need it.

Setup Remitano client

Remitano::Client.default_key = YOUR_API_KEY
Remitano::Client.default_secret = YOUR_API_SECRET
Remitano::Client.default_authenticator_secret = YOUR_AUTHENTICATOR_SECRET
Remitano::Client.default # => the default client

or

client = Remitano::Client.new(
  key: YOUR_API_KEY,
  secret: YOUR_API_SECRET,
  authenticator_secret: YOUR_AUTHENTICATOR_SECRET,
)

Payment gateway

Visit https://developers.remitano.com/api-explorer - Merchant section for more information.

Charges

Get charge with remitano id
client.merchant_charges.get(id)
Create charge
  1. With coin currency Note: For now, we only support usdt as the price coin currency.
client.merchant_charges.create(
  coin_currency: "usdt",
  coin_amount: 10.99,
  cancelled_or_completed_callback_url: "https://example.com/payments/callback?id=example", # optional
  description: "Example charge" # optional
)
  1. With fiat currency Note: We support fiat currency of 56 countries that Remitano are supporting, i.e., USD, AUD. (You could find entire list in our developer docs).
client.merchant_charges.create(
  fiat_currency: "AUD",
  fiat_amount: 10.99,
  cancelled_or_completed_callback_url: "https://example.com/payments/callback?id=example", # optional
  description: "Example charge" # optional
)
Get paginated charge list
client.merchant_charges.list(
  status: "completed", # optional
  page: 2, # optional
  per_page: 25 # optional
)

Withdrawals

Get withdrawal with remitano id
client.merchant_withdrawals.get(id)
Create withdrawal
  1. Withdraw to external coin address
client.merchant_withdrawals.create(
  merchant_withdrawal_ref: "akh9r1h29e1", # your withdrawal_ref, we won't process withdrawal if the same ref is submitted before
  coin_currency: "xrp",
  coin_amount: 10.99,
  receiver_pay_fee: true, # defines who will be charged for the withdrawal fee
  cancelled_or_completed_callback_url: "http://sample.com/123/callback", # optional
  coin_address: "rLpumSZQNJ6Cve7hfQcdkG9rJbJhkSV8AD0",
  destination_tag: 1710676231 # optional, required when coin_currency is xrp
)
  1. Withdraw to other remitano account
client.merchant_withdrawals.create(
  merchant_withdrawal_ref: "akh9r1h29e1", # your withdrawal_ref, we won't process withdrawal if the same ref is submitted before
  coin_currency: "xrp",
  coin_amount: 10.99,
  receiver_pay_fee: true,
  cancelled_or_completed_callback_url: "http://sample.com/123/callback",
  remitano_username: "receiver123",
  remitano_phone_number: "+234 1 123 4567"
)
Get paginated withdrawal list
client.merchant_withdrawals.list(
  status: "completed", # optional
  page: 2, # optional
  per_page: 25 # optional
)

Callbacks

Charges

Whenever a charge is changed to completed or cancelled in our system:

  • we will send a POST request to charge.cancelled_or_completed_callback_url with remitano_id param.
  • if user is still on our site, we will also redirect user to object.cancelled_or_completed_callback_url with remitano_id param (GET request).

After receiving these callbacks, you could call client.merchant_charges.get(params[:remitano_id]) to get the updated information and process accordingly.

Withdrawals

Whenever a withdrawal is changed to completed or cancelled in our system:

  • we will send a POST request to withdrawal.cancelled_or_completed_callback_url with remitano_id param.

After receiving these callbacks, you could call client.merchant_withdrawals.get(params[:remitano_id]) to get the updated information and process accordingly.

Errors

When receiving non 200-299 http code, a Remitano::Client::Request::RequestError will be raised.

Sandbox testing

We have a Testnet at https://remidemo.com.

You could register an account there, then submit a request at this google form with your Remidemo username, so we could help to setup your testing account as a merchant.

After that, you could start your sandbox testing by setting ENV["REMITANO_SANDBOX"] to "true".

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request