Developer's center

APIs and more

Introduction

Our applications provide developers with a REST-type API.

It allows you to create automations, or mashup applications composed with incwo.com apps and other services. For example :

  • Use a desktop app to enter timesheets in a snap

  • Bill directly from your web boutique each time there's a sale

  • Receive a SMS when you reach some sales targets

  • Import contacts automatically from another application

If you create public applications with our APIs please let us know, we'll add your application to our application repository and we'll promote your application.

We edit several applications, each will have different API access policies based on your service plan. Check on our websites to know more. But each will allow you to test some API calls before going to pay mode.

Give us your feedback : If you need more APIs, we'll add more APIs.




Access authentification

Authentication is managed through HTTP Basic Authentication. To use these APIs, you need a server address, a login/password combination. To get them :

  • Login to the incwo.com application, and go to the Settings/Users and then to the APIs settings panel

  • Activate API access : it will allow your application to respond to XML requests

  • Note the server address : the API server address displayed in the APIs settings panel is the one you need

  • Choose the authorized user account : choose the user account that you want to authorize. The login/password you will use for your API will be these of the user



Testing the access

When connected to your application with your browser, go to a contact, and add .xml at the end of the address in the browser. It will return the XML version of your contact.

You can also use curl to test access to the API. Set the 'Content-Type' header to 'application/xml'.

Try the following to get a list of your contacts, and return a XML-formatted response :

curl -u #{login}:#{password} - X GET \
-H 'Content-Type: application/xml' \
#{server}/contacts.xml

Note that in the code samples, #{text} indicates a section that has to be replaced by your data.

<?xml version="1.0" encoding="UTF-8"?>
<contact>
 <id>30416</id>
 <first_name>Bob</first_name>
 <last_name>Robertson</last_name>
 <creator_id>433</creator_id>
 <contact_items>
  <contact_item>
   <type_id>24</type_id>
   <value>01 45 21 28 27</value>
  </contact_item>
 </contact_items>
 </contact>




Error management

HTTP Status Code will be returned with the XML response:

  • 200 if all is ok

  • 201 if all is ok and an object was created

  • 404 if the resource couldn't be found

  • 500 if and error happened




Reading data

The following example returns a list of firms :

curl -u #{login}:#{password} \
-H 'Content-Type: application/xml' \
#{server}/firms.xml

Note the pagination block providing information about the potential number of pages.
To access the next page, just add the ?page=#{page_number} to your request url.

<?xml version="1.0" encoding="UTF-8"?>
<pagination>
 <current_page>1</current_page>
 <total_pages>62</total_pages>
</pagination>
<firms>
 <firm>
  <id>63462</id>
  <name>C.O</name>
  <firm_type>client</firm_type>
  <siren></siren>
  <tva></tva>
 </firm>
 <firm>
  <id>62601</id>
  <name>2C Comm</name>
  <firm_type>client</firm_type>
  <siren></siren>
  <tva></tva>
</firm>
</firms>

With no surprise, details on one firm will be requested via the following :

curl -u #{login}:#{password} \
-H 'Content-Type: application/xml' \
#{server}/firms/#{id of firm}.xml




Creating new objects

Data will be inserted the following way, using the POST action. (Example with a firm)
This returns the newly created object from which you can extract the id.

curl -u #{login}:#{password} -X POST \
-H 'Content-Type: application/xml' \
-d '<firm><name>apitest</name><firm_type>client</firm_type></firm>' \
#{server}/firms.xml




Updating objects

Data will be updated the following way, using the PUT action. (Example with a firm)

curl -u #{login}:#{password} -X PUT \
-H 'Content-Type: application/xml' \
-d '<firm><name>apitest</name><firm_type>client</firm_type></firm>' \
#{server}/firms/#{id of the object}.xml




Deleting objects

Data will be deleted the following way, using the DELETE action. (Example with a firm)

curl -u #{login}:#{password} -X DELETE \
-H 'Content-Type: application/xml' \
#{server}/firms/#{id of the object}.xml




What about pricing ?

The API is available in our following applications :

  • gestion-auto-entrepreneur : for users with a paid subscription

  • ma-facturation : for users with a paid subscription

  • Bureau Virtuel : for users with a paid subscription of typePlus, orUnlimited

  • mon-business-plan : not available. Ask us if you need it.

If you don't have a paid subscription, you can still activate your API and make some tests.



What's next

Now check the API documentation for each object you may be willing to use :

CRM
Contacts
Firms
Leads and opportunities
Contact lists
Contact list items
Sales management
Products catalog
Proposals
Sale orders
Invoicing
Invoices
Cash deposits
Bank accounts
Purchases management
Products catalog
Purchase bills
Purchase orders
Inventory
Delivery notes
Stock movements
Serial numbers
Lot numbers
Project & Time
Projects
Tasks
Timesheets
Team
Staff
Salaries
Vacations
Expenses
Interviews
Documents
Notes
Files
Contracts