Since release 3.1 there has been an API available, but you might want to consider an alternative.
Release: XCOM for Windows, Unix.
Component:
The XCOM API samples are in the C language, but clients today would perhaps rather use more 'modern' programming languages such as .NET and JAVA. So how can they do that?
With every such language you can expect to be able to execute a program in a command shell, and intercept that program's STDOUT and STDERR. So, all you need to do is use the two XCOM programs xcomtcp and xcomqm to interact with XCOM. i.e.
xcomtcp to drive the transfers, and
xcomqm to query the status of the transfers.
You only need to make your program call either xcomqm or xcomtcp with the right parameters, and then interpret the output as you desire.
This also means that you would not have API code to be recompiled whenever you upgraded XCOM.
It is probably easier and quicker to do it this way than to use the API.