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

Name Type Required Description Example
page Integer You can ask for a specific page of clients. Defaults to 1. 1
per_page String You 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

Name Type Required Description
filter Object Filters 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

Name Type Required Description Example
client_id Integer Required Filter invoices for this client. 42

Responses

200 SUCCESS The client’s invoices
401 ACCESS DENIED
The API Key parameter is missing or is incorrectly entered.
(Empty Response)
404 NOT 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
  }
}
Livro de Reclamação