
Our web services allow software developers to connect their applications to Ohio tax rate information over the internet. In addition to using TheFinder web site, businesses can use these services to add real-time Ohio tax rate lookups to their own software. Developers who use these services should have experience building web-based applications and services.
To use our web services, email us at thefinderhelp@tax.ohio.gov and use "Finder Web Service Registration" as the subject line.
The Finder web services are available at OHFinder Service site.
This page includes:
The test application runs through a web browser, but it still uses the web service to look up Ohio tax rates.
We implement the WS-Security standard for verifying users. Since we use Secure Sockets Layer (SSL) for our web services, you can rest assured that your credentials are secure.
With WS-Security, the username/password is sent in the SOAP (Simple Object Access Protocol) header of a web service request.
The following is a sample SOAP header. The body of the request will appear different depending on whether you're looking up an address or zip code.
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:si="http://soapinterop.org/xsd"
xmlns:ns5925="https://thefinder.tax.ohio.gov/OHFinderService">
<SOAP-ENV:Header>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="wsse:PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
...
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>The following are some additional resources on WS-Security:
To get a head start using our web services, we have sample .Net C# code for developers to reference. This code sample and instructions are provided for Visual Studio.Net users.
If you use another development tool, you will need to alter these instructions.
Try out the following sample code, substituting valid login/address data for the values in [brackets].
// Create new instance of web service reference using WSE
OHFinderServiceWse finderService = new OHFinderServiceWse();
// Create authentication token
UsernameToken tkn = new UsernameToken("[username]", "[password]", PasswordOption.SendPlainText);
// Add authentication token to web service request
finderService.RequestSoapContext.Security.Tokens.Add(tkn);
// Create new date for method calls
DateTime todayDate = new DateTime();
// Tax rate lookup by address...
Finder.AddressReturn addressReturn = finderService.GetOHSalesTaxByAddress(
"[address]", "[city]", "[state abbr]", "[postal code]", "US",
[tax amount], todayDate, [true/false]);
// addressReturn.addressResponse contains the standardized address
// addressReturn.taxResponse contains an array of tax return values
// Tax rate lookup by zip code...
Finder.ZipCodeReturn zipReturn = finderService.GetOHSalesTaxByZipCode(
"[postal code]", [tax amount], todayDate, [true/false]);
// zipReturn.zipResponse contains the original zip code queried
// zipReturn.taxResponse contains an array of tax return values
Apache Axis is an open-source SOAP tool. It is mostly used to create web services, but it can also be used by applications to connect with and use those services.
We provide sample code using this tool as an example of how a Java client can call a web service. It is important in Java to mention different toolsets can provide different approaches to calling web services.
In Java, different tools can be used to connect to web services in different ways. If you have questions, contact the vendor to find out if they support calling web services.
...
// In each individual method call, for getOHSalesTaxByAddress
// and getOHSalesTaxByZipCode, insert...
org.apache.axis.client.Call _call = createCall();
_call.setOperation(_operations[N]); // N=number generated by WSDL tool
_call.setUsername("[username]"); // ADD: inserts username into call
_call.setPassword("[password]"); // ADD: inserts password into call
_call.setUseSOAPAction(true);
// ADD: Pass username/password via wsse cleartext
_call.setProperty(WsseClientHandler.PASSWORD_OPTION,
WsseClientHandler.PASSWORD_CLEARTEXT);
...The following is a simple test used to show how to call the web services using Java and Apache Axis.
import java.util.Calendar;
import gov.ohio.tax.thefinder.OHFinderService.*;
public class TestClient {
public static void main(String[] args) throws Exception {
OHFinderServiceLocator locator = new OHFinderServiceLocator();
OHFinderServiceSoap stub = locator.getOHFinderServiceSoap();
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(2005,0,1); // Or some other date
// Get tax amount for zip
ZipCodeReturn resp = stub.getOHSalesTaxByZipCode("[zipcode]", [amount],
cal, [true/false]);
System.out.println(
resp.getTaxResponse().getTaxResponse(0).getTotalSalesTaxAmount());
// Get tax amount for address
AddressReturn resp2 = stub.getOHSalesTaxByAddress("[address]", "[city]",
"OH", "[zipcode]", "US", [amount], cal, [true/false]);
System.out.println(
resp2.getTaxResponse().getTaxResponse(0).getTotalSalesTaxAmount());
}
}
The Finder web service is available 24 hours a day, 7 days a week, except during scheduled maintenance.
Technical support is available Monday through Friday from 8 a.m. to 5 p.m. Eastern Time.
The Ohio Department of Taxation can help with general questions about the web service and high-level implementation issues.
However, we do not provide support for building or developing web services. Developers should have experience working with web services before using this service.
For assistance, email your questions to TheFinderHelp@tax.ohio.gov.
For sales and use tax purposes, in conformity with the Streamlined Sales Tax Agreement and the Mobile Telecommunications Sourcing Act, vendors and sellers may rely on this information for use in the collection of sales or use tax based on the date used for the search.
By providing this information, neither the State of Ohio nor the Ohio Department of Taxation assumes any liability for any errors or omissions, or in any other respect.
If you feel there is an error or have questions regarding the information you have received, please email the Ohio Department of Taxation at TheFinderHelp@tax.ohio.gov.