Exchange Rates

 

Sippy supports more than 180 currencies (supported currencies). You can manage exchange rates manually or use an integrated third-party service to manage the conversion process.

 

About third-party integrations

If you use a third-party integration to manage exchange rates, remember that it is maintained by the provider, not by Sippy Software. Changes to the provider’s service may affect your business, and Sippy’s support and development teams may not be aware of a problem until it occurs.

We aim to maintain more than one free exchange-rate option so that you have an alternative if a provider discontinues its service.


Supported exchange-rate sources

The following exchange-rate sources are supported:

  • CurrencyLayer

  • APILayer

  • AlphaVantage

  • Custom Script

  • Manual Entry

 

Adding a new Exchange Rate

  • Navigate to the Exchange Rate window on your Sippy User Interface. Your current list of available currencies will be listed in the table, such as Australian Dollar (AUD), Canadian Dollar (CAD) and Euro (EUR) in the image below. Click Add to configure additional currencies.



  • When adding additional Exchange Rates, select the Currency Unit you require from the drop-down menu. 

Enter the rate manually, or change the source to Alpha Vantage, CurrencyLayer, or APILayer. These providers require an API key. See the provider sections below for details.


 



NOTE: When the exchange is set as automatic through the web source, the balances displayed will change with the market value of each currency in direct relation to your base currency setting.  This may have a minor change in invoicing.


  • Select, Save & Close to add the currency configured to your Exchange Rates list. The currency selected (in the example above the Pound Sterling, GBP) is added and would populate the Currency drop down boxes for Tariff, Destination Sets, Vendors, CDRs, Payment Processors, TopUp Vouchers, etc.

  • The Timestamp column shows the date and time of the last rate update. Sippy updates exchange rates at set intervals. Alpha Vantage and Custom Script update every 15 minutes; CurrencyLayer and APILayer update hourly when using their free subscriptions.

  • All Currencies displaying a red cross to the right    are not currently assigned to an entity, and therefore can be deleted


Manual Entry

This source lets you enter an exchange rate manually. You must also update the rate manually.


CurrencyLayer

CurrencyLayer requires you to sign up for an API key and select a subscription plan. You can create an account here.

The free option has some limitations: 1000 requests for exchange-rate data per month, and USD as the base currency. At a polling rate of once per hour, the switch will normally make about 744 requests per month, excluding additional requests from testing.

Note - registration of new accounts on CurrencyLayer is closed, and new users are redirected to APILayer instead.


APILayer

APILayer provides access to additional tools and lets you subscribe to modules through your account. Free-plan limits vary by subscription. Sippy supports the following exchange-rate module:

https://apilayer.com/marketplace/currency_data-api

Subscribe to this module to obtain an API key.


AlphaVantage

Alpha Vantage provides free stock APIs through which users can access a wide range of data like real-time updates, and historical data on equities, currencies, and cryptocurrencies.

Some API methods are free, while others require a paid subscription. You can specify your own API key; obtain one from Alpha Vantage.

Provide the API key in the exchange-rate source configuration.


Custom Script

Exchange rates can be set using an external, custom script. The script should be created (or uploaded) on the server as /var/envX/scripts/xrate_update_custom.sh where envX should be replaced with proper i_environment, e.g. env123 or env1. When the script is available on the server, customers can set source of exchange rate update as Custom Script.

The script gets 2 arguments: 

1. currency (string)

2. base_currency (string)

Returned values

rate (float)


Returned value should be read as:

rate N base_currency units per 1 currency unit (float)


An example of such script that re-uses existing Exchange rate source and scales it twice - api_access_key should be replaced with a valid one.


#!/bin/sh

#

# To activate custom exchange rates feature

# copy this script into /var/envX/scripts/xrate_update_custom.sh

#

# Scale AlphaVantage rate.

#

# Input arguments:

#       base currency

#       currency

# Returns:

#       exchange rate


SCRIPT="/home/ssp/scripts/xrate_update.py"

SCALE=2


RATE=`/home/ssp/scripts/python_exec.sh "${SCRIPT}" 1 AlphaVantage ${1} ${2} '{"api_access_key": "123"}'`

echo "${RATE} * ${SCALE}" | /usr/bin/bc -q