Skip to main content
DELETE
/
v6
/
invoicing
/
invoices
/
{id}
Delete invoice
curl --request DELETE \
  --url https://sandbox.tight.com/v6/invoicing/invoices/{id} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://sandbox.tight.com/v6/invoicing/invoices/{id}"

headers = {"Authorization": "Bearer <token>"}

response = requests.delete(url, headers=headers)

print(response.text)
const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};

fetch('https://sandbox.tight.com/v6/invoicing/invoices/{id}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://sandbox.tight.com/v6/invoicing/invoices/{id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

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

curl_close($curl);

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

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

func main() {

	url := "https://sandbox.tight.com/v6/invoicing/invoices/{id}"

	req, _ := http.NewRequest("DELETE", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

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

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

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.delete("https://sandbox.tight.com/v6/invoicing/invoices/{id}")
  .header("Authorization", "Bearer <token>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://sandbox.tight.com/v6/invoicing/invoices/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "data": {
    "id": "inv_158998869",
    "name": "June Consulting Invoice",
    "invoiceNo": 1001,
    "status": "ACTIVE",
    "invoiceStatus": "OPEN",
    "date": "2025-06-26",
    "totals": {
      "subtotal": 10000,
      "discountedTotal": 9500,
      "salesTax": 843,
      "total": 10343,
      "paidAmount": 5000,
      "balance": 5343
    },
    "pdfUrl": "https://cdn.sandbox.tight.com/invoices/inv_158998869.pdf",
    "customerInvoiceKey": "abc123xyz",
    "notes": "Thank you for your business!",
    "customer": {
      "id": "cus_4852707",
      "name": "Abigail Adams",
      "email": "abigail@tight.com"
    },
    "apiName": "QBO",
    "apiSourceId": "ext_123",
    "recurrence": {
      "frequency": "MONTHLY",
      "interval": 1,
      "endDate": "2025-12-31"
    },
    "discount": {
      "value": "5.0",
      "type": "PERCENT",
      "calculateBeforeSalesTax": true
    },
    "salesTax": {
      "value": "8.875",
      "type": "PERCENT"
    },
    "collectionInfo": {
      "paymentUrl": "https://pay.tight.com/inv_158998869",
      "term": {
        "type": "NET_30",
        "dueDate": "2025-07-26"
      },
      "sendEmail": true,
      "lastViewedDatetime": "2023-11-07T05:31:56Z",
      "reminderRecurrence": {
        "frequency": "WEEKLY",
        "interval": 1
      },
      "emailSentDatetime": "2023-11-07T05:31:56Z",
      "emailStatus": "SENT",
      "emailErrors": {
        "internal_key": "some_internal_key",
        "some_other_field": 23434
      },
      "paymentMethods": [
        "CREDIT_CARD"
      ]
    },
    "lineItems": [
      {
        "id": "ili_28868401",
        "description": "Consulting services",
        "amount": 10000,
        "quantity": "2.0",
        "price": "5000.0",
        "salesTax": {
          "value": "8.875",
          "type": "PERCENT"
        },
        "apiItemId": "ext_item_123",
        "glAccount": {
          "id": "gla_38560327",
          "name": "Officer(s) Salaries and Wages",
          "accountNo": "60210",
          "type": "EXPENSE",
          "iconUrl": "https://cdn.sandbox.tight.com/icons/glAccountTypes/expense.png",
          "displayName": "#60210 Officer(s) Salaries and Wages"
        }
      }
    ],
    "installments": [
      {
        "id": "istl_123",
        "name": "First installment",
        "dueDate": "2025-07-15",
        "balance": 10000,
        "amountDue": {
          "value": "50.0",
          "type": "AMOUNT"
        }
      }
    ],
    "customData": {
      "internal_key": "some_internal_key",
      "some_other_field": 23434
    }
  }
}
{
  "result": "FAILURE",
  "error": [
    {
      "type": "REQUIRED",
      "message": "Amount is required",
      "param": "amount"
    }
  ]
}
{
  "result": "FAILURE",
  "error": [
    {
      "type": "INVALID_TOKEN",
      "message": "Invalid access token"
    }
  ]
}
{
  "result": "FAILURE",
  "error": [
    {
      "type": "FORBIDDEN",
      "message": "Expired access token"
    }
  ]
}
{
  "result": "FAILURE",
  "error": [
    {
      "type": "BAD_REQUEST",
      "message": "Resource not found"
    }
  ]
}
{
  "result": "FAILURE",
  "error": [
    {
      "type": "UNKNOWN_ERROR",
      "message": "Something went wrong. Please try again later."
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, see Authentication for more detail.

Path Parameters

id
string
required

The id of the invoice

Response

Success

result
enum<string>

The result of the action performed.

Available options:
SUCCESS,
FAILURE
data
object

The data generated by the action performed.