Vaughan Rowsell
posted this on February 01, 2012 16:52
Actually two.
We have a server side API and a merchant payment API that you can use to integrate custom payments or loyalty into the Vend POS.
The Vend API is implemented as JSON over HTTPS using the verbs GET, PUT, POST and DELETE. Or more simply, it lets your web developer (or you if you are a web developer) build cool custom stuff for Vend.
You can create, view and modify most objects in Vend, like customers, products, sales and so on.
http://docs.vendhq.com/index.html
The Vend payments API allows you to build your own custom payments integrations in the Vend sell screen.
To do this, create your own custom payment type in the Vend account setup, and under "advanced configuration" you can supply a URL for the hosted payments page. Vend will load this page when this payment type is selected in a sale.

Vend will pass information about the sale using the HTML5 postMessage API (see docs below). You can also update information about the sale using the same API.
http://docs.vendhq.com/client/payment.html
We will be adding to these APIs over time. We welcome any suggestions on how we can help 3rd parties build add-on software for Vend. Please let us know your thoughts.
Comments
In Addition...
Although the docs are titled preliminary, the methods listed have been in used in the production environment for sometime now. For example, the Vend sell screen exclusively uses the Vend API to post all sales to the application. We have a new set of API documentation and code in examples in our future work queue to help with your API implementations.
If you already have an active account with Vend (of any sized plan), you already have access to the API - simply use your default Username & Password credentials. Or you can create an API specific user from your setup screen. Don't have an account, https://secure.vendhq.com/signup.
Also note that all API responses are returned as JSON so be sure that for all of your requests, you set the Headers Content-Type to application/json.
Happy Coding!
I have a question regarding the API.
I am able to succesfully authenticate and fetch products.
However I need to be able to get products by category, it is not listed in the documentation. Is this even possible? I wonder how this is done with Shopify.
I wrote a php class for using Vend, I am not very familiar with php's curl. But I thought i'd share it for other developers who have never done things like this.
You can view the code here http://vincentcohen.nl/wordpress/32-using-vendhqs-api/ comments are more then welcome as I am just a beginner..
By the way something to watch out for - not sure if it's been fixed - is that if the Vend API returns an error response the string isn't valid JSON because it uses single quotes instead of double quotes. In PHP if I can't decode the JSON then I do a $result = str_replace( "'", '"', $result ) and then try decoding it again. Hope this saves someone a bit of time.
Hi Bob, good spotting! - I have rectified this - thanks
Kyle
Hi Vincent-- your link isn't working. I wonder if you could re-post because it sounds like it would be extremely helpful for me. Thanks!
Can I hire someone to link my pdq machine, I am with Elavon and the machine is an Optimum 4220, also how do I link the machine to the pc, I want to use Vend but this is holding me up if I can't link the pdq it seems pointless.
thanks
Paul
Actually it looks like it is more complicated as we use one merchant for online and one for offline ... looks like a timely and costly exercise to link it all together.
Alaina, try this .. https://github.com/brucealdridge/vendapi
Hi, i'm trying to filter register sales json by customer id, but it's not working for me. Can you give me an example how can i do it?
Thanks
Anna
Hi Anna, at this stage we don not filter register sales on a customer_id - though I will add to our ticket queue to look at implementing this.
Kyle
Hi guys, is it possible to retrieve product tags for existing sales via the API? In the API doc it does not appear that product tags are returned by GET /api/register_sales/#{register_sale_id}?
Same question for product type chaps.