curl -X POST https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void \
-u "YOUR_UUID:YOUR_SECRET" \
-H "idempotency-Key: cn-req-void-005" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"reason": "Credit note issued by mistake"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"idempotency-Key": "cn-req-void-005",
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"reason": "Credit note issued by mistake"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"idempotency-Key": "cn-req-void-005",
"X-API-Version": "1.2",
},
json={
"reason": "Credit note issued by mistake",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void")
request = Net::HTTP::Post.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["idempotency-Key"] = "cn-req-void-005"
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"reason": "Credit note issued by mistake"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)
<?php
$ch = curl_init("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"idempotency-Key: cn-req-void-005",
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"reason": "Credit note issued by mistake"
}
JSON,
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;
public class Example {
public static void main(String[] args) throws Exception {
String credentials = Base64.getEncoder()
.encodeToString("YOUR_UUID:YOUR_SECRET".getBytes());
String body = String.join("\n",
"{",
" \"reason\": \"Credit note issued by mistake\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void"))
.header("Authorization", "Basic " + credentials)
.header("idempotency-Key", "cn-req-void-005")
.header("X-API-Version", "1.2")
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{
"reason": "Credit note issued by mistake"
}`)
req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
req.Header.Set("idempotency-Key", "cn-req-void-005")
req.Header.Set("X-API-Version", "1.2")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(string(data))
}
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("idempotency-Key", "cn-req-void-005");
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""reason"": ""Credit note issued by mistake""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"success": true,
"message": "Credit note voided successfully",
"data": {
"id": 2,
"credit_note_number": "CN-0002",
"client_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
"customer_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
"invoice_id": "24de1b2b-6875-4cca-927d-2ad3c4d564b5",
"invoice_number": "INV-0023",
"payment_id": null,
"total_amount": "100.00",
"remaining_amount": "0.00",
"applied_amount": "0.00",
"currency": "AUD",
"status": "VOIDED",
"reason": "Customer discount / Service dispute",
"description": "100 AUD credit issued for overbilled service hours",
"date": "2026-09-16T06:34:16.000Z",
"deleted_at": null,
"created_at": "2026-09-16T06:34:16.000Z",
"updated_at": "2026-09-16T06:34:35.910Z"
}
}
Credit notes
Void credit note
Permanently revokes an issued credit note with a required audit reason. Status transitions to VOIDED and any unallocated balance is removed.
POST
/
credit-notes
/
{id}
/
void
curl -X POST https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void \
-u "YOUR_UUID:YOUR_SECRET" \
-H "idempotency-Key: cn-req-void-005" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"reason": "Credit note issued by mistake"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"idempotency-Key": "cn-req-void-005",
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"reason": "Credit note issued by mistake"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"idempotency-Key": "cn-req-void-005",
"X-API-Version": "1.2",
},
json={
"reason": "Credit note issued by mistake",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void")
request = Net::HTTP::Post.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["idempotency-Key"] = "cn-req-void-005"
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"reason": "Credit note issued by mistake"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)
<?php
$ch = curl_init("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"idempotency-Key: cn-req-void-005",
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"reason": "Credit note issued by mistake"
}
JSON,
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;
public class Example {
public static void main(String[] args) throws Exception {
String credentials = Base64.getEncoder()
.encodeToString("YOUR_UUID:YOUR_SECRET".getBytes());
String body = String.join("\n",
"{",
" \"reason\": \"Credit note issued by mistake\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void"))
.header("Authorization", "Basic " + credentials)
.header("idempotency-Key", "cn-req-void-005")
.header("X-API-Version", "1.2")
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{
"reason": "Credit note issued by mistake"
}`)
req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
req.Header.Set("idempotency-Key", "cn-req-void-005")
req.Header.Set("X-API-Version", "1.2")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(string(data))
}
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("idempotency-Key", "cn-req-void-005");
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""reason"": ""Credit note issued by mistake""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"success": true,
"message": "Credit note voided successfully",
"data": {
"id": 2,
"credit_note_number": "CN-0002",
"client_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
"customer_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
"invoice_id": "24de1b2b-6875-4cca-927d-2ad3c4d564b5",
"invoice_number": "INV-0023",
"payment_id": null,
"total_amount": "100.00",
"remaining_amount": "0.00",
"applied_amount": "0.00",
"currency": "AUD",
"status": "VOIDED",
"reason": "Customer discount / Service dispute",
"description": "100 AUD credit issued for overbilled service hours",
"date": "2026-09-16T06:34:16.000Z",
"deleted_at": null,
"created_at": "2026-09-16T06:34:16.000Z",
"updated_at": "2026-09-16T06:34:35.910Z"
}
}
Headers
string
default:"1.2"
required
The API version to use. Supported versions are
1.1 and 1.2.string
A unique key so a retried request is not processed twice.
Path Parameters
string
required
The unique ID (UUID) of the credit note to void.
Request Body Parameters
string
required
Mandatory justification explaining why the credit note is being cancelled.
Response Body
number
HTTP status code (200).
string
Confirmation message (e.g.
Credit note voided successfully).string
Updated state:
VOIDED.string
The audit reason recorded for voiding.
string
ISO 8601 timestamp of cancellation.
Response Codes
| Code | Description |
|---|---|
| 200 | Credit note voided successfully. |
| 400 | Bad Request. Missing void reason or credit note is already VOIDED. |
| 401 | Unauthorized. Missing or invalid credentials. |
| 404 | Not Found. Credit note ID not found. |
| 500 | Internal server error. |
curl -X POST https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void \
-u "YOUR_UUID:YOUR_SECRET" \
-H "idempotency-Key: cn-req-void-005" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"reason": "Credit note issued by mistake"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"idempotency-Key": "cn-req-void-005",
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"reason": "Credit note issued by mistake"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"idempotency-Key": "cn-req-void-005",
"X-API-Version": "1.2",
},
json={
"reason": "Credit note issued by mistake",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void")
request = Net::HTTP::Post.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["idempotency-Key"] = "cn-req-void-005"
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"reason": "Credit note issued by mistake"
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)
<?php
$ch = curl_init("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"idempotency-Key: cn-req-void-005",
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"reason": "Credit note issued by mistake"
}
JSON,
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Base64;
public class Example {
public static void main(String[] args) throws Exception {
String credentials = Base64.getEncoder()
.encodeToString("YOUR_UUID:YOUR_SECRET".getBytes());
String body = String.join("\n",
"{",
" \"reason\": \"Credit note issued by mistake\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void"))
.header("Authorization", "Basic " + credentials)
.header("idempotency-Key", "cn-req-void-005")
.header("X-API-Version", "1.2")
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{
"reason": "Credit note issued by mistake"
}`)
req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
req.Header.Set("idempotency-Key", "cn-req-void-005")
req.Header.Set("X-API-Version", "1.2")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(string(data))
}
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/1/void");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("idempotency-Key", "cn-req-void-005");
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""reason"": ""Credit note issued by mistake""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"success": true,
"message": "Credit note voided successfully",
"data": {
"id": 2,
"credit_note_number": "CN-0002",
"client_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
"customer_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
"invoice_id": "24de1b2b-6875-4cca-927d-2ad3c4d564b5",
"invoice_number": "INV-0023",
"payment_id": null,
"total_amount": "100.00",
"remaining_amount": "0.00",
"applied_amount": "0.00",
"currency": "AUD",
"status": "VOIDED",
"reason": "Customer discount / Service dispute",
"description": "100 AUD credit issued for overbilled service hours",
"date": "2026-09-16T06:34:16.000Z",
"deleted_at": null,
"created_at": "2026-09-16T06:34:16.000Z",
"updated_at": "2026-09-16T06:34:35.910Z"
}
}
Last modified on November 10, 2026
Was this page helpful?
