SOAP or REST?
Where to start
Avalara provides multiple versions of the AvaTax API. We originally built AvaTax using SOAP in 2004, and it’s stood the test of time, with thousands of customers using it every day. In 2016, Avalara chose to build a completely new REST API that works off the same code and data while also including modern standards: We implemented the OpenAPI specification (also known as Swagger) throughout the API, and we chose to adopt Microsoft’s REST guidelines to make our service immediately familiar to users of the standard.
If you’re starting a new project today, we encourage you to use REST. Our developer documentation for REST is world-class, and we’ve written the AvaTax Developer Guide to help you learn the ins and outs of AvaTax. If you wrote software in the past that used SOAP, your product will continue to be supported and you can freely mix and match code that uses REST and SOAP.
Here’s a comparison of the two AvaTax APIs:
|Feature||In AvaTax SOAP||In AvaTax REST|
|Robustness||World-leading API for tax services since 2004, in use by thousands of customers||World-leading API for tax services since 2016, in use by thousands of customers|
|Data Formatting||XML conforming to WSDL||JSON conforming to the Microsoft REST Guidelines|
|Language Support||Support for SOAP is very limited in modern languages.||Virtually all modern languages include support JSON objects natively, or through open source libraries.|
|Documentation||Hand-written documentation in Avalara developer website.||Detailed, comprehensive API reference and a full 11-chapter AvaTax Developer Guide available online|
|Software Development Kits||Legacy AvaTax SOAP software development kits are available. Updates are infrequent.||AvaTax REST Software Development Kits are updated monthly, and available for download via your favorite package manager.|
|Functionality||TaxSvc, AddressSvc, BatchSvc, and legacy AvaCert2Svc functionality supported; each has a separate API||Full Tax, Address, Batch, Certificates, Definitions, Free Tax Rates, Onboarding, and more - all in a single API!|
The good news: You don’t have to pick between REST and SOAP. Both APIs use the same world-class tax calculation software and both work using the same credentials and using the same data storage. You can keep existing code for as long as you wish, and extend your code by using new APIs whenever you need them.
Here’s a quick look at a few critical features and how they compare between REST and SOAP:
|Service||In AvaTax SOAP||In AvaTax REST|
|Committing a document||PostTax||CommitTransaction|
|Retrieve document history||GetTaxHistory||AuditTransaction|
|Modify committed transaction records||AdjustTax||AdjustTransaction|
|Invite customer to upload exemption certificates||AvaCert2Svc - CertificateRequestInitiate||CreateCertExpressInvitation|
|Preview Exemption Certificate Image||AvaCert2Svc - CertificateImageGet||DownloadCertificateImage|
|Check if customer is exempt||Not Available||ListValidCertificatesForCustomer|
|Free Tax Rates by Postal Code||Not Available||TaxRatesByPostalCode|
|Offline Tax Content API||Not Available||BuildTaxContentFile|
Free to Choose
We hope this information helps you decide which API is right for you. You are welcome to use the SOAP API, the REST API, or both!
If you have feedback or comments, please reach out to us at https://community.avalara.com/avalara