Skip to content

velopaymentsapi/velo-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby client for Velo

License npm version CircleCI
VeloPayments - the Ruby gem for the Velo Payments APIs

Terms and Definitions

Throughout this document and the Velo platform the following terms are used:

  • Payor. An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout.
  • Payee. The recipient of funds paid out by a payor.
  • Payment. A single transfer of funds from a payor to a payee.
  • Payout. A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee.
  • Sandbox. An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking.

Overview

The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution:

  • Authenticate with the Velo platform
  • Maintain a collection of payees
  • Query the payor’s current balance of funds within the platform and perform additional funding
  • Issue payments to payees
  • Query the platform for a history of those payments

This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference.

API Considerations

The Velo Payments API is REST based and uses the JSON format for requests and responses.

Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details.

Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters).

Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print.

Authenticating with the Velo Platform

Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner.

You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following:

create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529

base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==

create an HTTP Authorization header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==

perform the Velo authentication REST call using the HTTP header created above e.g. via curl:

  curl -X POST \\
  -H \"Content-Type: application/json\" \\
  -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\
  'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials'

If successful, this call will result in a 200 HTTP status code and a response body such as:

  {
    \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\",
    \"token_type\":\"bearer\",
    \"expires_in\":1799,
    \"scope\":\"...\"
  }

API access following authentication

Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated.

This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below:

  -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \"

If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a 401 HTTP status response.

This SDK is automatically generated by the OpenAPI Generator project:

  • API version: 2.26.124
  • Package version: 2.26.124
  • Build package: org.openapitools.codegen.languages.RubyClientCodegen

Installation

Build a gem

To build the Ruby code into a gem:

gem build velopayments.gemspec

Then either install the gem locally:

gem install ./velopayments-2.26.124.gem

(for development, run gem install --dev ./velopayments-2.26.124.gem to install the development dependencies)

or publish the gem to a gem hosting service, e.g. RubyGems.

Finally add this to the Gemfile:

gem 'velopayments', '~> 2.26.124'

Install from Git

If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile:

gem 'velopayments', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git'

Include the Ruby code directly

Include the Ruby code directly using -I as follows:

ruby -Ilib script.rb

Getting Started

Please follow the installation procedure and then run the following code:

# Load the gem
require 'velopayments'

# Setup authorization
VeloPayments.configure do |config|
  # Configure OAuth2 access token for authorization: OAuth2
  config.access_token = 'YOUR ACCESS TOKEN'
end

api_instance = VeloPayments::CountriesApi.new

begin
  #List Payment Channel Country Rules
  result = api_instance.list_payment_channel_rules_v1
  p result
rescue VeloPayments::ApiError => e
  puts "Exception when calling CountriesApi->list_payment_channel_rules_v1: #{e}"
end

Documentation for API Endpoints

All URIs are relative to https://api.sandbox.velopayments.com

Class Method HTTP request Description
VeloPayments::CountriesApi list_payment_channel_rules_v1 GET /v1/paymentChannelRules List Payment Channel Country Rules
VeloPayments::CountriesApi list_supported_countries_v1 GET /v1/supportedCountries List Supported Countries
VeloPayments::CountriesApi list_supported_countries_v2 GET /v2/supportedCountries List Supported Countries
VeloPayments::CurrenciesApi list_supported_currencies_v2 GET /v2/currencies List Supported Currencies
VeloPayments::FundingManagerApi create_ach_funding_request POST /v1/sourceAccounts/{sourceAccountId}/achFundingRequest Create Funding Request
VeloPayments::FundingManagerApi create_funding_request POST /v2/sourceAccounts/{sourceAccountId}/fundingRequest Create Funding Request
VeloPayments::FundingManagerApi create_funding_request_v3 POST /v3/sourceAccounts/{sourceAccountId}/fundingRequest Create Funding Request
VeloPayments::FundingManagerApi get_funding_account GET /v1/fundingAccounts/{fundingAccountId} Get Funding Account
VeloPayments::FundingManagerApi get_funding_account_v2 GET /v2/fundingAccounts/{fundingAccountId} Get Funding Account
VeloPayments::FundingManagerApi get_funding_accounts GET /v1/fundingAccounts Get Funding Accounts
VeloPayments::FundingManagerApi get_funding_accounts_v2 GET /v2/fundingAccounts Get Funding Accounts
VeloPayments::FundingManagerApi get_source_account GET /v1/sourceAccounts/{sourceAccountId} Get details about given source account.
VeloPayments::FundingManagerApi get_source_account_v2 GET /v2/sourceAccounts/{sourceAccountId} Get details about given source account.
VeloPayments::FundingManagerApi get_source_account_v3 GET /v3/sourceAccounts/{sourceAccountId} Get details about given source account.
VeloPayments::FundingManagerApi get_source_accounts GET /v1/sourceAccounts Get list of source accounts
VeloPayments::FundingManagerApi get_source_accounts_v2 GET /v2/sourceAccounts Get list of source accounts
VeloPayments::FundingManagerApi get_source_accounts_v3 GET /v3/sourceAccounts Get list of source accounts
VeloPayments::FundingManagerApi list_funding_audit_deltas GET /v1/deltas/fundings Get Funding Audit Delta
VeloPayments::FundingManagerApi set_notifications_request POST /v1/sourceAccounts/{sourceAccountId}/notifications Set notifications
VeloPayments::FundingManagerApi transfer_funds POST /v2/sourceAccounts/{sourceAccountId}/transfers Transfer Funds between source accounts
VeloPayments::FundingManagerApi transfer_funds_v3 POST /v3/sourceAccounts/{sourceAccountId}/transfers Transfer Funds between source accounts
VeloPayments::FundingManagerPrivateApi create_funding_account_v2 POST /v2/fundingAccounts Create Funding Account
VeloPayments::FundingManagerPrivateApi delete_source_account_v3 DELETE /v3/sourceAccounts/{sourceAccountId} Delete a source account by ID
VeloPayments::LoginApi logout POST /v1/logout Logout
VeloPayments::LoginApi reset_password POST /v1/password/reset Reset password
VeloPayments::LoginApi validate_access_token POST /v1/validate validate
VeloPayments::LoginApi velo_auth POST /v1/authenticate Authentication endpoint
VeloPayments::PayeeInvitationApi get_payees_invitation_status_v3 GET /v3/payees/payors/{payorId}/invitationStatus Get Payee Invitation Status
VeloPayments::PayeeInvitationApi get_payees_invitation_status_v4 GET /v4/payees/payors/{payorId}/invitationStatus Get Payee Invitation Status
VeloPayments::PayeeInvitationApi query_batch_status_v3 GET /v3/payees/batch/{batchId} Query Batch Status
VeloPayments::PayeeInvitationApi query_batch_status_v4 GET /v4/payees/batch/{batchId} Query Batch Status
VeloPayments::PayeeInvitationApi resend_payee_invite_v3 POST /v3/payees/{payeeId}/invite Resend Payee Invite
VeloPayments::PayeeInvitationApi resend_payee_invite_v4 POST /v4/payees/{payeeId}/invite Resend Payee Invite
VeloPayments::PayeeInvitationApi v3_create_payee POST /v3/payees Initiate Payee Creation
VeloPayments::PayeeInvitationApi v4_create_payee POST /v4/payees Initiate Payee Creation
VeloPayments::PayeesApi delete_payee_by_id_v3 DELETE /v3/payees/{payeeId} Delete Payee by Id
VeloPayments::PayeesApi delete_payee_by_id_v4 DELETE /v4/payees/{payeeId} Delete Payee by Id
VeloPayments::PayeesApi get_payee_by_id_v3 GET /v3/payees/{payeeId} Get Payee by Id
VeloPayments::PayeesApi get_payee_by_id_v4 GET /v4/payees/{payeeId} Get Payee by Id
VeloPayments::PayeesApi list_payee_changes_v3 GET /v3/payees/deltas List Payee Changes
VeloPayments::PayeesApi list_payee_changes_v4 GET /v4/payees/deltas List Payee Changes
VeloPayments::PayeesApi list_payees_v3 GET /v3/payees List Payees
VeloPayments::PayeesApi list_payees_v4 GET /v4/payees List Payees
VeloPayments::PayeesApi payee_details_update_v3 POST /v3/payees/{payeeId}/payeeDetailsUpdate Update Payee Details
VeloPayments::PayeesApi payee_details_update_v4 POST /v4/payees/{payeeId}/payeeDetailsUpdate Update Payee Details
VeloPayments::PayeesApi v3_payees_payee_id_remote_id_update_post POST /v3/payees/{payeeId}/remoteIdUpdate Update Payee Remote Id
VeloPayments::PayeesApi v4_payees_payee_id_remote_id_update_post POST /v4/payees/{payeeId}/remoteIdUpdate Update Payee Remote Id
VeloPayments::PaymentAuditServiceApi export_transactions_csvv4 GET /v4/paymentaudit/transactions Export Transactions
VeloPayments::PaymentAuditServiceApi get_fundings_v4 GET /v4/paymentaudit/fundings Get Fundings for Payor
VeloPayments::PaymentAuditServiceApi get_payment_details_v4 GET /v4/paymentaudit/payments/{paymentId} Get Payment
VeloPayments::PaymentAuditServiceApi get_payments_for_payout_v4 GET /v4/paymentaudit/payouts/{payoutId} Get Payments for Payout
VeloPayments::PaymentAuditServiceApi get_payout_stats_v4 GET /v4/paymentaudit/payoutStatistics Get Payout Statistics
VeloPayments::PaymentAuditServiceApi get_payouts_for_payor_v4 GET /v4/paymentaudit/payouts Get Payouts for Payor
VeloPayments::PaymentAuditServiceApi list_payment_changes_v4 GET /v4/payments/deltas List Payment Changes
VeloPayments::PaymentAuditServiceApi list_payments_audit_v4 GET /v4/paymentaudit/payments Get List of Payments
VeloPayments::PaymentAuditServiceDeprecatedApi export_transactions_csvv3 GET /v3/paymentaudit/transactions V3 Export Transactions
VeloPayments::PaymentAuditServiceDeprecatedApi get_fundings_v1 GET /v1/paymentaudit/fundings V1 Get Fundings for Payor
VeloPayments::PaymentAuditServiceDeprecatedApi get_payment_details_v3 GET /v3/paymentaudit/payments/{paymentId} V3 Get Payment
VeloPayments::PaymentAuditServiceDeprecatedApi get_payments_for_payout_pav3 GET /v3/paymentaudit/payouts/{payoutId} V3 Get Payments for Payout
VeloPayments::PaymentAuditServiceDeprecatedApi get_payout_stats_v1 GET /v1/paymentaudit/payoutStatistics V1 Get Payout Statistics
VeloPayments::PaymentAuditServiceDeprecatedApi get_payouts_for_payor_v3 GET /v3/paymentaudit/payouts V3 Get Payouts for Payor
VeloPayments::PaymentAuditServiceDeprecatedApi list_payment_changes GET /v1/deltas/payments V1 List Payment Changes
VeloPayments::PaymentAuditServiceDeprecatedApi list_payments_audit_v3 GET /v3/paymentaudit/payments V3 Get List of Payments
VeloPayments::PayorsApi get_payor_by_id GET /v1/payors/{payorId} Get Payor
VeloPayments::PayorsApi get_payor_by_id_v2 GET /v2/payors/{payorId} Get Payor
VeloPayments::PayorsApi payor_add_payor_logo POST /v1/payors/{payorId}/branding/logos Add Logo
VeloPayments::PayorsApi payor_create_api_key_request POST /v1/payors/{payorId}/applications/{applicationId}/keys Create API Key
VeloPayments::PayorsApi payor_create_application_request POST /v1/payors/{payorId}/applications Create Application
VeloPayments::PayorsApi payor_email_opt_out POST /v1/payors/{payorId}/reminderEmailsUpdate Reminder Email Opt-Out
VeloPayments::PayorsApi payor_get_branding GET /v1/payors/{payorId}/branding Get Branding
VeloPayments::PayorsApi payor_links GET /v1/payorLinks List Payor Links
VeloPayments::PayorsPrivateApi create_payor_links POST /v1/payorLinks Create a Payor Link
VeloPayments::PayoutServiceApi create_quote_for_payout_v3 POST /v3/payouts/{payoutId}/quote Create a quote for the payout
VeloPayments::PayoutServiceApi get_payments_for_payout_v3 GET /v3/payouts/{payoutId}/payments Retrieve payments for a payout
VeloPayments::PayoutServiceApi get_payout_summary_v3 GET /v3/payouts/{payoutId} Get Payout Summary
VeloPayments::PayoutServiceApi instruct_payout_v3 POST /v3/payouts/{payoutId} Instruct Payout
VeloPayments::PayoutServiceApi submit_payout_v3 POST /v3/payouts Submit Payout
VeloPayments::PayoutServiceApi withdraw_payment POST /v1/payments/{paymentId}/withdraw Withdraw a Payment
VeloPayments::PayoutServiceApi withdraw_payout_v3 DELETE /v3/payouts/{payoutId} Withdraw Payout
VeloPayments::TokensApi resend_token POST /v2/users/{userId}/tokens Resend a token
VeloPayments::UsersApi delete_user_by_id_v2 DELETE /v2/users/{userId} Delete a User
VeloPayments::UsersApi disable_user_v2 POST /v2/users/{userId}/disable Disable a User
VeloPayments::UsersApi enable_user_v2 POST /v2/users/{userId}/enable Enable a User
VeloPayments::UsersApi get_self GET /v2/users/self Get Self
VeloPayments::UsersApi get_user_by_id_v2 GET /v2/users/{userId} Get User
VeloPayments::UsersApi invite_user POST /v2/users/invite Invite a User
VeloPayments::UsersApi list_users GET /v2/users List Users
VeloPayments::UsersApi register_sms POST /v2/users/registration/sms Register SMS Number
VeloPayments::UsersApi resend_token POST /v2/users/{userId}/tokens Resend a token
VeloPayments::UsersApi role_update POST /v2/users/{userId}/roleUpdate Update User Role
VeloPayments::UsersApi unlock_user_v2 POST /v2/users/{userId}/unlock Unlock a User
VeloPayments::UsersApi unregister_mfa POST /v2/users/{userId}/mfa/unregister Unregister MFA for the user
VeloPayments::UsersApi unregister_mfa_for_self POST /v2/users/self/mfa/unregister Unregister MFA for Self
VeloPayments::UsersApi update_password_self POST /v2/users/self/password Update Password for self
VeloPayments::UsersApi user_details_update POST /v2/users/{userId}/userDetailsUpdate Update User Details
VeloPayments::UsersApi user_details_update_for_self POST /v2/users/self/userDetailsUpdate Update User Details for self
VeloPayments::UsersApi validate_password_self POST /v2/users/self/password/validate Validate the proposed password
VeloPayments::WebhooksApi create_webhook_v1 POST /v1/webhooks Create Webhook
VeloPayments::WebhooksApi get_webhook_v1 GET /v1/webhooks/{webhookId} Get details about the given webhook.
VeloPayments::WebhooksApi list_webhooks_v1 GET /v1/webhooks List the details about the webhooks for the given payor.
VeloPayments::WebhooksApi update_webhook_v1 POST /v1/webhooks/{webhookId} Update Webhook

Documentation for Models

Documentation for Authorization

OAuth2

  • Type: OAuth
  • Flow: application
  • Authorization URL:
  • Scopes:
    • : Scopes not required

basicAuth

  • Type: HTTP basic authentication

oAuthVeloBackOffice

  • Type: OAuth
  • Flow: application
  • Authorization URL:
  • Scopes:
    • : Scopes not required

About

Ruby library for the Velo Payments API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages