API-V2

Application Programming Interface

InvoiceXpress Documentation

List invoices

POST /clients/:client-id/invoices.json

This method allows you to obtain the invoices for a specific client. You can filter the results by document status, type and if it’s archived or not.

Example Request

curl

curl --request POST \
  --url 'https://account_name.app.invoicexpress.com/clients/:client-id/invoices.json?page=42&per_page=42&api_key=YOUR%20API%20KEY%20HERE' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"filter":{"status":["final","final","final"],"by_type":["Invoice","Invoice","Invoice"],"archived":["non_archived","non_archived","non_archived"]}}'

Ruby

require 'uri'
require 'net/http'

url = URI("https://account_name.app.invoicexpress.com/clients/:client-id/invoices.json?page=42&per_page=42&api_key=YOUR%20API%20KEY%20HERE")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'
request.body = "{\"filter\":{\"status\":[\"final\",\"final\",\"final\"],\"by_type\":[\"Invoice\",\"Invoice\",\"Invoice\"],\"archived\":[\"non_archived\",\"non_archived\",\"non_archived\"]}}"

response = http.request(request)
puts response.read_body

Node

var http = require("https");

var options = {
  "method": "POST",
  "hostname": "account_name.app.invoicexpress.com",
  "port": null,
  "path": "/clients/:client-id/invoices.json?page=42&per_page=42&api_key=YOUR%20API%20KEY%20HERE",
  "headers": {
    "accept": "application/json",
    "content-type": "application/json"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(JSON.stringify({ filter:
   { status: [ 'final', 'final', 'final' ],
     by_type: [ 'Invoice', 'Invoice', 'Invoice' ],
     archived: [ 'non_archived', 'non_archived', 'non_archived' ] } }));
req.end();

Python

import http.client

conn = http.client.HTTPSConnection("account_name.app.invoicexpress.com")

payload = "{\"filter\":{\"status\":[\"final\",\"final\",\"final\"],\"by_type\":[\"Invoice\",\"Invoice\",\"Invoice\"],\"archived\":[\"non_archived\",\"non_archived\",\"non_archived\"]}}"

headers = {
    'accept': "application/json",
    'content-type': "application/json"
    }

conn.request("POST", "/clients/:client-id/invoices.json?page=42&per_page=42&api_key=YOUR%20API%20KEY%20HERE", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://account_name.app.invoicexpress.com/clients/:client-id/invoices.json?page=42&per_page=42&api_key=YOUR%20API%20KEY%20HERE",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"filter\":{\"status\":[\"final\",\"final\",\"final\"],\"by_type\":[\"Invoice\",\"Invoice\",\"Invoice\"],\"archived\":[\"non_archived\",\"non_archived\",\"non_archived\"]}}",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

Go

package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://account_name.app.invoicexpress.com/clients/:client-id/invoices.json?page=42&per_page=42&api_key=YOUR%20API%20KEY%20HERE"

    payload := strings.NewReader("{\"filter\":{\"status\":[\"final\",\"final\",\"final\"],\"by_type\":[\"Invoice\",\"Invoice\",\"Invoice\"],\"archived\":[\"non_archived\",\"non_archived\",\"non_archived\"]}}")

    req, _ := http.NewRequest("POST", url, payload)

    req.Header.Add("accept", "application/json")
    req.Header.Add("content-type", "application/json")

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

Query Parameters

NameTypeRequiredDescriptionExample
pageIntegerYou can ask for a specific page of clients. Defaults to 1.1
per_pageStringYou can specify how many results you want to fetch. Defaults to 10 or value defined in account settings (10, 20 or 30).30

Request Body

NameTypeRequiredDescription
filterObjectFilters to apply on the list

Example Request Body

{
  "filter": {
    "status": [
      "final",
      "final",
      "final"
    ],
    "by_type": [
      "Invoice",
      "Invoice",
      "Invoice"
    ],
    "archived": [
      "non_archived",
      "non_archived",
      "non_archived"
    ]
  }
}

Path Parameters

NameTypeRequiredDescriptionExample
client_idIntegerRequiredFilter invoices for this client.42

Responses

200SUCCESSThe client’s invoices
401ACCESS DENIED
The API Key parameter is missing or is incorrectly entered.
(Empty Response)
404NOT FOUND
Client with client-id not found
(Empty Response)

Example Success Body Response

{
  "invoices": [
    {
      "id": 541793,
      "status": "final",
      "archived": true,
      "type": "Invoice",
      "sequence_number": "28/A",
      "inverted_sequence_number": "A/28",
      "date": "27/06/2017",
      "due_date": "27/06/2017",
      "reference": "foo",
      "observations": "foo",
      "retention": "foo",
      "permalink": "https://www.app.invoicexpress.com/documents/541793e1ab2ebd5c06def40c346ffbe0ff2b463eb1c0f0",
      "saft_hash": "Tdik",
      "sum": 1,
      "discount": 0,
      "before_taxes": 1,
      "taxes": 0.07,
      "total": 1.07,
      "currency": "Euro",
      "client": {
        "id": 1310176,
        "name": "John",
        "country": "Portugal"
      },
      "items": [
        {
          "name": " iPhone ",
          "description": "foo",
          "unit_price": "1.0",
          "unit": "foo",
          "quantity": "1.0",
          "tax": {
            "id": 31597,
            "name": "IVA7",
            "value": 7
          },
          "discount": 0,
          "subtotal": 1,
          "tax_amount": 0.07,
          "discount_amount": 0,
          "total": 1.07
        }
      ],
      "sequence_id": "12345",
      "tax_exemption": "M01"
    }
  ],
  "pagination": {
    "total_entries": 6,
    "current_page": 1,
    "total_pages": 1,
    "per_page": 10
  }
}

List invoices