SOAP API FAQ

Getting Started

This page contains frequently asked questions from developers using ChannelAdvisor's API.

How does authentication work in ChannelAdvisor's API?

ChannelAdvisor assigns each developer or organization a Developer Key and password.  These two pieces of information are required in every call to a ChannelAdvisor API.  For any call accessing ChannelAdvisor account data, an AccountID is required as well.  Developers must have permission from the seller to access their account's data.  Sellers seeking access to their own account data through APIs are welcome as well.  Our code samples show the usage of the Developer Key and password.

See Understanding Security for more details.

How do I find the AccountID for one of my accounts?

If you are a CA customer, go to My Accounts > Developer Network > Account Authorizations in the ChannelAdvisor user interface. You will find the information there.

If you are a developer, call the GetAuthorizationList API method.

How do return types work in ChannelAdvisor's API?

See the APIResult documentation.

What is a SOAP Web Service?

Here are some useful articles to get you started. In general pay attention to the articles about SOAP and WSDL:

Can your API do this?

Can ChannelAdvisor adjust/customize the API integration specific to a client?

No, the API is standardized across all clients in terms of capability/functionality and client’s must work within the SOAP API environment and constraints as defined.

Can I transform data inbound to ChannelAdvisor via the API?

Using the API to create the products catalog precludes clients from using Business Rules to transform the data inbound to ChannelAdvisor.

Can a developer use the same Developer Key in multiple PIDs? 

A developer key can be authorized for use in multiple PIDs, but must achieve approved authorization per normal processes (request access) and the account owner must enable the Dev Key access per PID.

How frequently can products be introduced/updated in ChannelAdvisor?

With generally large SKU counts, FTP is preferred for product creation (as opposed to SOAP API) in general. ("Manual" is not really an option for establishing any kind of reasonable process or automation.)
Communication-Frequency-Inventory

(SOAP API call limits and processing frequency may also be a reason to go with FTP as well. Limited to 1,000 items at a time (per call): SynchInventoryItemList )

How do I retrieve a list of orders from ChannelAdvisor?

The GetOrderList function in the Order Service enables you to do this.  A working sample is located here: Application Example - GetOrderList by ExportState

How can a developer set an export state for orders so they do not duplicate orders when they place subsequent GetOrderList calls?

Developers (specific to their Developer Key only) can set the export status of any order to ensure they do not pull in an order more than one time.

First they must SetOrdersExportStatus as "true" for the orders they have exported already.

Then place any subsequent GetOrderList calls to include the OrderCriteria <ExportState> set to "NotExported".

XML to include: <ExportState>NotExported</ExportState>

Are there other options for customizing order details and/or filter states?

Yes, Developers can use a variety of detail levels and filter states documented in the OrderCriteria page: OrderCriteria

How can a Developer set a Seller Order ID value?

SetSellerOrderID

Is an email address required when updating an order’s shipping address using UpdateOrderList in the SOAP API?

Yes, this is a new requirement.  When calling UpdateOrderList in the SOAP API, an email address must be provided when the shipping address is updated. Previously, the email field would be cleared out if the call omitted the email address, rendering the email field invalid. Now, validation has been applied to prevent the accidental clearing of the shipping email field.

Can I write software to add and update inventory items in ChannelAdvisor automatically?

Yes. The SynchInventoryItemList method in Inventory Service can be used to send detailed inventory information to ChannelAdvisor.

I have my own eCommerce Store front-end, but want to use ChannelAdvisor's checkout. How do I do this?

The methods of the Cart Service, particularly CreateCart, allow you to send shopping cart information to ChannelAdvisor. This method returns a CheckoutURL which you can use to redirect your buyers to ChannelAdvisor Checkout.

I want to submit sales for channels outside of ChannelAdvisor.  How does that work?

The SubmitOrder function in Order Service allows this behavior.

Coding and Web Service Interoperability

Can ChannelAdvisor's API be used with Perl?

Yes. While trying to make this work, we found these articles helpful:

Can ChannelAdvisor's API be used with Java?

Yes. This article contains details about using Apache SOAP for connecting to a .NET XML Web Service.

Can ChannelAdvisor's API be used with Python?

Yes, but it can be challenging. At the very least, you can post the XML and make it work.

I can choose any language to connect to ChannelAdvisor.  Which should I use?

At ChannelAdvisor, we prefer and recommend C#, but really any .Net-based language will be the easiest to connect to ChannelAdvisor's Developer Network.  Java is our next recommendation, followed by PHP.

See the Code Samples page for examples of connecting to ChannelAdvisor using different languages.

What SOAP Framework is used to build ChannelAdvisor's Web Services?

ChannelAdvisor uses Microsoft's .NET technology to create its Web Services.  The API supports SOAP 1.1 only.

How is the Currency defined in ChannelAdvisor?

The currency is determined by the locale of the account and cannot change.