API-v2

Application Programming Interface

InvoiceXpress Documentation



Cancel-payment


PUT /receipts/:receipt-id/change-state.json

Cancels a payment and it's associated receipt.

Example Request

curl

curl --request PUT \
  --url 'https://account_name.app.invoicexpress.com/receipts/:receipt-id/change-state.json?api_key=YOUR%20API%20KEY%20HERE' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"receipt":{"state":"canceled","message":"Wrong payment values."}}'

Ruby

require 'uri'
require 'net/http'

url = URI("https://account_name.app.invoicexpress.com/receipts/:receipt-id/change-state.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 = "{\"receipt\":{\"state\":\"canceled\",\"message\":\"Wrong payment values.\"}}"

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": "/receipts/:receipt-id/change-state.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({ receipt: { state: 'canceled', message: 'Wrong payment values.' } }));
req.end();

Python

import http.client

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

payload = "{\"receipt\":{\"state\":\"canceled\",\"message\":\"Wrong payment values.\"}}"

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

conn.request("PUT", "/receipts/:receipt-id/change-state.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/receipts/:receipt-id/change-state.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 => "{\"receipt\":{\"state\":\"canceled\",\"message\":\"Wrong payment values.\"}}",
  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/receipts/:receipt-id/change-state.json?api_key=YOUR%20API%20KEY%20HERE"

    payload := strings.NewReader("{\"receipt\":{\"state\":\"canceled\",\"message\":\"Wrong payment values.\"}}")

    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))

}

Path Parameters

Name Type Required Description Example
receipt-id Integer Required ID of the receipt to be cancelled. 42

Request Body

Name Type Required Description
receipt Object Required Cancel state with message.
state String Required "canceled" state.
message String Required Cancelation reason.

Example Request Body

{
  "receipt": {
    "state": "canceled",
    "message": "Wrong payment values."
  }
}

Responses

200 SUCCESS
Payment/Receipt cancelled successfully.
Invoices Receipt
401 ACCESS DENIED
The API Key parameter is missing or is incorrectly entered.
(Empty Response)
404 NOT FOUND
The supplied :receipt-id doesn’t match any existing receipt.
(Empty Response)
422 UNPROCESSABLE ENTITY
Some parameters sent were incorrect.
(Empty Response)

Example Response Body

{
  "receipt": {
    "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"
  }
}