API-v2

Application Programming Interface

InvoiceXpress Documentation



Update


PUT /clients/:client-id.json

Updates a client.

Example Request

curl

curl --request PUT \
  --url 'https://account_name.app.invoicexpress.com/clients/:client-id.json?api_key=YOUR%20API%20KEY%20HERE' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"client":{"name":"Client Name","code":"12345","email":"foo@bar.com","language":"pt","address":"Avenida da República, Lisboa","city":"Lisboa","postal_code":"1050-555","country":"Portugal","fiscal_id":"508025338","website":"www.invoicexpress.com","phone":"213456789","fax":"213456788","preferred_contact":{"name":"Bruce Norris","email":"email@invoicexpress.com","phone":"213456789"},"observations":"Observations","send_options":"1"}}'

Ruby

require 'uri'
require 'net/http'

url = URI("https://account_name.app.invoicexpress.com/clients/:client-id.json?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::Put.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'
request.body = "{\"client\":{\"name\":\"Client Name\",\"code\":\"12345\",\"email\":\"foo@bar.com\",\"language\":\"pt\",\"address\":\"Avenida da República, Lisboa\",\"city\":\"Lisboa\",\"postal_code\":\"1050-555\",\"country\":\"Portugal\",\"fiscal_id\":\"508025338\",\"website\":\"www.invoicexpress.com\",\"phone\":\"213456789\",\"fax\":\"213456788\",\"preferred_contact\":{\"name\":\"Bruce Norris\",\"email\":\"email@invoicexpress.com\",\"phone\":\"213456789\"},\"observations\":\"Observations\",\"send_options\":\"1\"}}"

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

Node

var http = require("https");

var options = {
  "method": "PUT",
  "hostname": "account_name.app.invoicexpress.com",
  "port": null,
  "path": "/clients/:client-id.json?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({ client:
   { name: 'Client Name',
     code: '12345',
     email: 'foo@bar.com',
     language: 'pt',
     address: 'Avenida da República, Lisboa',
     city: 'Lisboa',
     postal_code: '1050-555',
     country: 'Portugal',
     fiscal_id: '508025338',
     website: 'www.invoicexpress.com',
     phone: '213456789',
     fax: '213456788',
     preferred_contact:
      { name: 'Bruce Norris',
        email: 'email@invoicexpress.com',
        phone: '213456789' },
     observations: 'Observations',
     send_options: '1' } }));
req.end();

Python

import http.client

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

payload = "{\"client\":{\"name\":\"Client Name\",\"code\":\"12345\",\"email\":\"foo@bar.com\",\"language\":\"pt\",\"address\":\"Avenida da República, Lisboa\",\"city\":\"Lisboa\",\"postal_code\":\"1050-555\",\"country\":\"Portugal\",\"fiscal_id\":\"508025338\",\"website\":\"www.invoicexpress.com\",\"phone\":\"213456789\",\"fax\":\"213456788\",\"preferred_contact\":{\"name\":\"Bruce Norris\",\"email\":\"email@invoicexpress.com\",\"phone\":\"213456789\"},\"observations\":\"Observations\",\"send_options\":\"1\"}}"

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

conn.request("PUT", "/clients/:client-id.json?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.json?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 => "PUT",
  CURLOPT_POSTFIELDS => "{\"client\":{\"name\":\"Client Name\",\"code\":\"12345\",\"email\":\"foo@bar.com\",\"language\":\"pt\",\"address\":\"Avenida da República, Lisboa\",\"city\":\"Lisboa\",\"postal_code\":\"1050-555\",\"country\":\"Portugal\",\"fiscal_id\":\"508025338\",\"website\":\"www.invoicexpress.com\",\"phone\":\"213456789\",\"fax\":\"213456788\",\"preferred_contact\":{\"name\":\"Bruce Norris\",\"email\":\"email@invoicexpress.com\",\"phone\":\"213456789\"},\"observations\":\"Observations\",\"send_options\":\"1\"}}",
  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.json?api_key=YOUR%20API%20KEY%20HERE"

    payload := strings.NewReader("{\"client\":{\"name\":\"Client Name\",\"code\":\"12345\",\"email\":\"foo@bar.com\",\"language\":\"pt\",\"address\":\"Avenida da República, Lisboa\",\"city\":\"Lisboa\",\"postal_code\":\"1050-555\",\"country\":\"Portugal\",\"fiscal_id\":\"508025338\",\"website\":\"www.invoicexpress.com\",\"phone\":\"213456789\",\"fax\":\"213456788\",\"preferred_contact\":{\"name\":\"Bruce Norris\",\"email\":\"email@invoicexpress.com\",\"phone\":\"213456789\"},\"observations\":\"Observations\",\"send_options\":\"1\"}}")

    req, _ := http.NewRequest("PUT", 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
client-id Integer Required The ID of the client to be updated 42

Request Body

Name Type Required Description
client Object Required Client data to be created
name String Required Client name, normally used for a company name.
code String Required Client code, your specific code for the client.
email String Client email address. Must be a valid email address ex: foo@bar.com
language String Client language. May be en, pt or es; defaults to the account language.
address String Client company address.
city String Client’s city.
postal_code String Client’s postal code for it’s company address.
country String Country, normally used for a company country. Although country is optional, when supplied, it should match one of the country list on the Appendix of this Documentation.
fiscal_id String The client fiscal ID (Número de Contribuinte).
website String The client web address.
phone String The client phone number
fax String The client fax number.
preferred_contact Object The preferred contact details.
name String Name of the preferred contact on your new client.
email String Email of the preferred contact on your new client.
phone String Phone number of the preferred contact on your new client.
observations String Default observations for the client, the text in here will be added to the observations field of all the invoices sent to this client.
send_options Integer Send options for the client. Available options are: 1 - send only the original document / 2 – the original and duplicate / 3 – the original, duplicate and triplicate. These affect the generated pdf.

Example Request Body

{
  "client": {
    "name": "Client Name",
    "code": "12345",
    "email": "foo@bar.com",
    "language": "pt",
    "address": "Avenida da República, Lisboa",
    "city": "Lisboa",
    "postal_code": "1050-555",
    "country": "Portugal",
    "fiscal_id": "508025338",
    "website": "www.invoicexpress.com",
    "phone": "213456789",
    "fax": "213456788",
    "preferred_contact": {
      "name": "Bruce Norris",
      "email": "email@invoicexpress.com",
      "phone": "213456789"
    },
    "observations": "Observations",
    "send_options": "1"
  }
}

Responses

200 SUCCESS (Empty Response)
401 ACCESS DENIED
The API Key parameter is missing or is incorrectly entered.
(Empty Response)
404 NOT FOUND
No client matches the supplied client-id.
(Empty Response)
422 UNPROCESSABLE ENTITY
Some parameters were incorrect.
(Empty Response)
Livro de Reclamação