A Ruby client for the Myfinance REST API
Myfinance API docs: https://app.myfinance.com.br/docs/api
Add this line to your application's Gemfile:
gem 'myfinance'And then execute:
$ bundle
Or install it yourself as:
$ gem install myfinance
Use Myfinance.configure to setup your environment:
require 'myfinance'
Myfinance.configure do |config|
config.url = 'https://sandbox.myfinance.com.br' # defaults to 'https://app.myfinance.com.br'
config.user_agent = 'My App v1.0' # optional, but you should pass a custom user-agent identifying your app
endclient = Myfinance.client("YOUR_TOKEN_HERE")- Entities API as
client.entities - FinancialTransactions API as
client.financial_transactions - PayableAccounts API as
client.payable_accounts - ReceivableAccounts API as
client.receivable_accounts - Attachments API as
client.attachments - Accounts API as
client.accounts - DepositAccounts API as
client.deposit_accounts - Categories API as
client.categories - ClassificationCenters API as
client.classification_centers - People API as
client.people - Webhooks API as
client.webhooks - Taxes API as
client.taxes - CreditCards API as
client.credit_cards - CreditCardsTransactions API as
client.credit_cards_transactions - Reconciles API as
client.reconciles - BankStatements API as
client.bank_statements - Sales API as
client.sales - SaleAccounts API as
client.sale_accounts - SaleRules API as
client.sale_rules - CustomClassifiers API as
client.custom_classifiers - CustomClassifierValues API as
client.custom_classifier_values
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities |
client.entities.find_all
|
GET |
/entities/:id |
client.entities.find
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions |
client.financial_transactions.find_all
|
GET |
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id |
client.financial_transactions.find
|
POST |
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions |
client.financial_transactions.create
|
PUT |
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id |
client.financial_transactions.update
|
DELETE |
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/:id |
client.financial_transactions.destroy
|
DELETE |
/entities/:entity_id/deposit_accounts/:deposit_account_id/financial_transactions/destroy_many?selected_ids=:id1,id2,id3 |
client.financial_transactions.destroy_many
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/payable_accounts |
client.payable_accounts.find_all
|
GET |
/entities/:entity_id/payable_accounts/:id |
client.payable_accounts.find
|
POST |
/entities/:entity_id/payable_accounts |
client.payable_accounts.create
|
PUT |
/entities/:entity_id/payable_accounts/:id |
client.payable_accounts.update
|
PUT |
/entities/:entity_id/payable_accounts/:id/pay |
client.payable_accounts.pay
|
PUT |
/entities/:entity_id/payable_accounts/:id/undo_payment |
client.payable_accounts.undo_payment
|
DELETE |
/entities/:entity_id/payable_accounts/:id |
client.payable_accounts.destroy
|
DELETE |
/entities/:entity_id/payable_accounts/:id/recurrence |
client.payable_accounts.destroy_recurrence
|
DELETE |
/entities/:entity_id/payable_accounts?selected_ids=:id1,id2,id3 |
client.payable_accounts.destroy_many
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/receivable_accounts |
client.receivable_accounts.find_all
|
GET |
/entities/:entity_id/receivable_accounts/:id |
client.receivable_accounts.find
|
POST |
/entities/:entity_id/receivable_accounts |
client.receivable_accounts.create
|
PUT |
/entities/:entity_id/receivable_accounts/:id |
client.receivable_accounts.update
|
PUT |
/entities/:entity_id/receivable_accounts/:id/receive |
client.receivable_accounts.receive
|
PUT |
/entities/:entity_id/receivable_accounts/:id/undo_receivement |
client.receivable_accounts.undo_receivement
|
DELETE |
/entities/:entity_id/receivable_accounts/:id |
client.receivable_accounts.destroy
|
DELETE |
/entities/:entity_id/receivable_accounts/:id/recurrence |
client.receivable_accounts.destroy_recurrence
|
DELETE |
/entities/:entity_id/receivable_accounts?selected_ids=:id1,id2,id3 |
client.receivable_accounts.destroy_many
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/attachments |
client.attachments.find_all
|
GET |
/entities/:entity_id/attachments/:id |
client.attachments.find
|
POST |
/entities/:entity_id/attachments |
client.attachments.create
|
DELETE |
/entities/:entity_id/attachments/:id |
client.attachments.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/accounts |
client.accounts.find_all
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/deposit_accounts |
client.deposit_accounts.find_all
|
GET |
/entities/:entity_id/deposit_accounts/:id |
client.deposit_accounts.find
|
POST |
/entities/:entity_id/deposit_accounts |
client.deposit_accounts.create
|
PUT |
/entities/:entity_id/deposit_accounts/:id |
client.deposit_accounts.update
|
DELETE |
/entities/:entity_id/deposit_accounts/:id |
client.deposit_accounts.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/categories |
client.categories.find_all
|
GET |
/categories/:id |
client.categories.find
|
POST |
/categories |
client.categories.create
|
PUT |
/categories/:id |
client.categories.update
|
DELETE |
/categories/:id |
client.categories.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/classification_centers |
client.classification_centers.find_all
|
GET |
/classification_centers/:id |
client.classification_centers.find
|
POST |
/classification_centers |
client.classification_centers.create
|
PUT |
/classification_centers/:id |
client.classification_centers.update
|
DELETE |
/classification_centers/:id |
client.classification_centers.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/people |
client.people.find_all
|
GET |
/people/:id |
client.people.find
|
POST |
/people |
client.people.create
|
PUT |
/people/:id |
client.people.update
|
DELETE |
/people/:id |
client.people.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/integrations/webhooks |
client.webhooks.find_all
|
GET |
/integrations/webhooks/:id |
client.webhooks.find
|
POST |
/integrations/webhooks |
client.webhooks.create
|
PUT |
/integrations/webhooks/:id |
client.webhooks.update
|
DELETE |
/integrations/webhooks/:id |
client.webhooks.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/taxes |
client.taxes.find_all
|
GET |
/taxes/:id |
client.taxes.find
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/credit_cards |
client.credit_cards.find_all
|
GET |
/entities/:entity_id/credit_cards/:id |
client.credit_cards.find
|
POST |
/entities/:entity_id/credit_cards |
client.credit_cards.create
|
PUT |
/entities/:entity_id/credit_cards/:id |
client.credit_cards.update
|
DELETE |
/entities/:entity_id/credit_cards/:id |
client.credit_cards.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/credit_cards/:credit_card_id/transactions |
client.credit_card_transactions.find_all
|
GET |
/entities/:entity_id/credit_cards/:credit_card_id/transactions/:id |
client.credit_card_transactions.find
|
POST |
/entities/:entity_id/credit_cards/:credit_card_id/transactions |
client.credit_card_transactions.create
|
PUT |
/entities/:entity_id/credit_cards/:credit_card_id/transactions/:id |
client.credit_card_transactions.update
|
DELETE |
/entities/:entity_id/credit_cards/:credit_card_id/transactions/:id |
client.credit_card_transactions.destroy
|
DELETE |
/entities/:entity_id/credit_cards/:credit_card_id/transactions/:id/recurrence |
client.credit_card_transactions.destroy_parcelled
|
| HTTP method | Endpoint | Client method |
|---|---|---|
POST |
/entities/:entity_id/reconciles |
client.reconciles.reconcile
|
| HTTP method | Endpoint | Client method |
|---|---|---|
POST |
/entities/:entity_id/deposit_accounts/:deposit_account_id/bank_statements |
client.bank_statements.import
|
GET |
/entities/:entity_id/deposit_accounts/:deposit_account_id/bank_statements/:id |
client.bank_statements.status
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/sales |
client.sales.find_all
|
GET |
/entities/:entity_id/sales/:id |
client.sales.find
|
POST |
/entities/:entity_id/sales |
client.sales.create
|
PUT |
/entities/:entity_id/sales/:id |
client.sales.update
|
DELETE |
/entities/:entity_id/sales/:id |
client.sales.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/sale_accounts |
client.sale_accounts.find_all
|
GET |
/entities/:entity_id/sale_accounts/:id |
client.sale_accounts.find
|
POST |
/entities/:entity_id/sale_accounts |
client.sale_accounts.create
|
PUT |
/entities/:entity_id/sale_accounts/:id |
client.sale_accounts.update
|
DELETE |
/entities/:entity_id/sale_accounts/:id |
client.sale_accounts.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/entities/:entity_id/sale_rules |
client.sale_rules.find_all
|
GET |
/entities/:entity_id/sale_rules/:id |
client.sale_rules.find
|
POST |
/entities/:entity_id/sale_rules |
client.sale_rules.create
|
PUT |
/entities/:entity_id/sale_rules/:id |
client.sale_rules.update
|
DELETE |
/entities/:entity_id/sale_rules/:id |
client.sale_rules.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/custom_classifiers |
client.custom_classifiers.find_all
|
GET |
/custom_classifiers/:id |
client.custom_classifiers.find
|
POST |
/custom_classifiers |
client.custom_classifiers.create
|
PUT |
/custom_classifiers/:id |
client.custom_classifiers.update
|
DELETE |
/custom_classifiers/:id |
client.custom_classifiers.destroy
|
| HTTP method | Endpoint | Client method |
|---|---|---|
GET |
/custom_classifiers/:custom_classifier_value_id/values |
client.custom_classifier_values.find_all
|
GET |
/custom_classifiers/:custom_classifier_value_id/values/:id |
client.custom_classifier_values.find
|
POST |
/custom_classifiers/:custom_classifier_value_id/values |
client.custom_classifier_values.create
|
PUT |
/custom_classifiers/:custom_classifier_value_id/values/:id |
client.custom_classifier_values.update
|
DELETE |
/custom_classifiers/:custom_classifier_value_id/values/:id |
client.custom_classifier_values.destroy
|
require 'myfinance'
Myfinance.configure do |m|
m.url = 'https://sandbox.myfinance.com.br' # defaults to 'https://app.myfinance.com.br' if omitted
m.user_agent = 'My App v1.0' # optional, but you should pass a custom user-agent identifying your app
endWhen an account has multiple accounts, an ACCOUNT_ID header is required for the requests. To instantiate a new client with an ACCOUNT_ID header:
client = Myfinance.client("YOUR_TOKEN_HERE", ACCOUNT_ID) # where ACCOUNT_ID is the ID of the accountIf you instantiate a new client without an account_id and the user has more than one account, the lib will raise a Myfinance::RequestError error. The list of available accounts will be in the body of the object.
begin
client.entities.find_all
rescue Myfinance::RequestError => e
e.body # { "error" => "O cabeçalho da requisição não possui o atributo ACCOUNT_ID.", "accounts" => [{"account" => { "id" => 3, .. } }, { ... }] }
e.message # O cabeçalho da requisição não possui o atributo ACCOUNT_ID.
e.code # 422
endAfter checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install.
To release a new version, update the version number in lib/myfinance/version.rb, run bundle install and commit & push the changes to the repository.
Before releasing the gem, remember to update de CHANGELOG.md, describing the changes made in this version.
If this is your first time publishing a RubyGem in your local device, you will have to download your credentials. To do this, follow the instructions in your profile page in RubyGems or just type the following in your command line, replacing $username with your RubyGems username.
$ curl -u $username https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentialsThen run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org. Make sure you have publishing rights for the gem on RubyGems beforehand, though.
After publishing the new version, add a released label to each pull request included in the release and write a comment like this:
:shipit: released on [version x.y.z](https://rubygems.org/gems/myfinance/versions/x.y.z)
Bug reports and pull requests are welcome on GitHub at https://github.com/myfreecomm/myfinance-client-ruby. This project is intended to be a safe and welcoming space for collaboration.
The gem is available as open source under the terms of the MIT License.


