Wednesday, September 19, 2018

Reconcile NetSuite and Xignite Real Time Rates

Users normally claim the since NetSuite sources rates from Xignite, the rates displayed in NetSuite (Lists > Accounting > Currencies > Choose a currency > Click History) must match Xignite's rates real-time.

The following are usually done to compare the rates:

1. User logs in to Xignite's site and registers: (https://www.xignite.com/MyAccount/Register.aspx?service=&ReturnUrl=)

2. User employs either of two methods to get rates directly from Xignite:

o Get tick (https://www.xignite.com/MyAccount/Register.aspx?service=&ReturnUrl) - Get tick allows users to query the price at a specific time.

o Get ticks (http://www.xignite.com/xCurrencies.asmx?op=GetTicks) - Get Ticks allows users to pull a range (e.g. from 5am-8am GMT)

3. After Xignite is able to produce results, user goes to the Exchange rate History table to find a rate that matches the "After Change" exchange rate provided by NetSuite on the same day user "gets ticks" from Xignite.



The NetSuite Help Guide says "The Currency Exchange Rate Integration feature allows you to designate currency exchange rates to be updated on a daily basis. This service currently includes more than 170 currencies. The automatic update occurs at approximately 6:00 AM in one of four available time zones." However, note that the "Modified" date on the exchange rate history page does not really coincide with the actual time NetSuite gets rates from Xignite. The update to NetSuite currencies which have the Automatic Update preference turned on happens in the background and queued in NetSuite servers and the rates update shortly after NetSuite sources them from Xignite.

To Illustrate: NetSuite sources rates from Xignite at 10:04:00AM GMT, while the Exchange rate history shows "Modified" date/time at 10:16:00AM GMT. Notice the delay.

Below is the sample test plan to determine how NetSuite sources rates from Xignite and to verify that there is a match to a rate in a NetSuite account that has the Currency Exchange Rate Integration feature enabled (Setup > Company > Enable features).

1. Create an Xignite account.

2. Instead of manually using the Get Tick/Get Ticks methods from Xignite, create a script using the APIs "GetRealTimeCrossRatesAsString" and "GetTicks" to get per-second (or close) rates from Xignite. Without the script, users cannot query Xignite rates per second. With the script, users may know at exactly what time to get a matching rate. The script can either be deployed in a NetSuite test account or can be made to run on any application that has a server and can request from a URL - Web Service.

3. Check account's settings/preferences:

o Home > Set Preferences > General tab > Time zone

o Lists > Accounting > Currencies > EURO > Update time zone

4. Schedule the script to run based on the "Modified Time" on user's currency page.

Example: Time zone = (GMT) Greenwich, London
Update time zone for currency = (GMT-5:00) Eastern Time (US & Canada)
Usual Modified time for EURO currency = 10:16AM GMT

Looking at the above settings, schedule the script to get real time rates that cover the modified time above (e.g. From 7:00AM-1:00PM GMT).

5. Once the Xignite rates are ready, look at the "After Change" rate in NetSuite and compare the same to the real time rates from Xignite. Make sure to compare rates for the same day. A comparison may give a match up to 8 decimal places.

According to NetSuite engineers, NetSuite uses the mid-market value of the rates it gets from Xignite and likewise uses the GetRealTimeCrossRatesAsString call.

 

1 comment:

  1. Any suggestion on how to override an exchange rate in NetSuite to 8 decimal places? NetSuite keeps rounding down to 6 decimal places and it's not matching the USD to RMB rates our bank provides.

    ReplyDelete