curl -X PUT https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft \
-u "YOUR_UUID:YOUR_SECRET" \
-H "idempotency-Key: cn-req-edit-002" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft", {
method: "PUT",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"idempotency-Key": "cn-req-edit-002",
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.put(
"https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"idempotency-Key": "cn-req-edit-002",
"X-API-Version": "1.2",
},
json={
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft")
request = Net::HTTP::Put.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["idempotency-Key"] = "cn-req-edit-002"
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}
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/3/draft");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"idempotency-Key: cn-req-edit-002",
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}
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",
"{",
" \"amount\": 150,",
" \"currency\": \"AUD\",",
" \"reason\": \"Customer discount / Service dispute\",",
" \"description\": \"150 AUD credit issued for overbilled service hours\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft"))
.header("Authorization", "Basic " + credentials)
.header("idempotency-Key", "cn-req-edit-002")
.header("X-API-Version", "1.2")
.header("Content-Type", "application/json")
.method("PUT", 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(`{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}`)
req, err := http.NewRequest("PUT", "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
req.Header.Set("idempotency-Key", "cn-req-edit-002")
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.Put, "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("idempotency-Key", "cn-req-edit-002");
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""amount"": 150,
""currency"": ""AUD"",
""reason"": ""Customer discount / Service dispute"",
""description"": ""150 AUD credit issued for overbilled service hours""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"success": true,
"message": "Draft credit note updated successfully",
"data": {
"id": 3,
"credit_note_number": "CN-0003",
"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": "150.00",
"remaining_amount": "150.00",
"applied_amount": "0.00",
"currency": "AUD",
"status": "DRAFT",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours",
"date": "2026-09-17T10:45:02.000Z",
"deleted_at": null,
"created_at": "2026-09-17T10:45:02.000Z",
"updated_at": "2026-09-17T10:52:03.876Z"
}
}
Credit notes
Update draft credit note
Modifies the details of an existing unissued draft credit note. Once a credit note is ISSUED, it can no longer be edited via this endpoint.
PUT
/
credit-notes
/
{id}
/
draft
curl -X PUT https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft \
-u "YOUR_UUID:YOUR_SECRET" \
-H "idempotency-Key: cn-req-edit-002" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft", {
method: "PUT",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"idempotency-Key": "cn-req-edit-002",
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.put(
"https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"idempotency-Key": "cn-req-edit-002",
"X-API-Version": "1.2",
},
json={
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft")
request = Net::HTTP::Put.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["idempotency-Key"] = "cn-req-edit-002"
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}
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/3/draft");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"idempotency-Key: cn-req-edit-002",
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}
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",
"{",
" \"amount\": 150,",
" \"currency\": \"AUD\",",
" \"reason\": \"Customer discount / Service dispute\",",
" \"description\": \"150 AUD credit issued for overbilled service hours\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft"))
.header("Authorization", "Basic " + credentials)
.header("idempotency-Key", "cn-req-edit-002")
.header("X-API-Version", "1.2")
.header("Content-Type", "application/json")
.method("PUT", 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(`{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}`)
req, err := http.NewRequest("PUT", "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
req.Header.Set("idempotency-Key", "cn-req-edit-002")
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.Put, "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("idempotency-Key", "cn-req-edit-002");
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""amount"": 150,
""currency"": ""AUD"",
""reason"": ""Customer discount / Service dispute"",
""description"": ""150 AUD credit issued for overbilled service hours""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"success": true,
"message": "Draft credit note updated successfully",
"data": {
"id": 3,
"credit_note_number": "CN-0003",
"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": "150.00",
"remaining_amount": "150.00",
"applied_amount": "0.00",
"currency": "AUD",
"status": "DRAFT",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours",
"date": "2026-09-17T10:45:02.000Z",
"deleted_at": null,
"created_at": "2026-09-17T10:45:02.000Z",
"updated_at": "2026-09-17T10:52:03.876Z"
}
}
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 draft credit note to update.
Request Body Parameters
number
required
Updated credit amount. Must be greater than 0.
string
Currency code (e.g.
AUD).string
required
Updated reason for issuing the credit.
string
Updated memo or internal accounting remarks.
string
Updated target invoice UUID, if reassigning to a different invoice.
Response Body
number
HTTP status code (200).
string
Confirmation message describing the update.
object
The updated draft credit note entity.
Response Codes
| Code | Description |
|---|---|
| 200 | Draft credit note updated successfully. |
| 400 | Bad Request. Validation failure or credit note is already issued. |
| 401 | Unauthorized. Missing or invalid credentials. |
| 404 | Not Found. Draft credit note not found. |
| 500 | Internal server error. |
curl -X PUT https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft \
-u "YOUR_UUID:YOUR_SECRET" \
-H "idempotency-Key: cn-req-edit-002" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft", {
method: "PUT",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"idempotency-Key": "cn-req-edit-002",
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.put(
"https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"idempotency-Key": "cn-req-edit-002",
"X-API-Version": "1.2",
},
json={
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft")
request = Net::HTTP::Put.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["idempotency-Key"] = "cn-req-edit-002"
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}
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/3/draft");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"idempotency-Key: cn-req-edit-002",
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}
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",
"{",
" \"amount\": 150,",
" \"currency\": \"AUD\",",
" \"reason\": \"Customer discount / Service dispute\",",
" \"description\": \"150 AUD credit issued for overbilled service hours\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft"))
.header("Authorization", "Basic " + credentials)
.header("idempotency-Key", "cn-req-edit-002")
.header("X-API-Version", "1.2")
.header("Content-Type", "application/json")
.method("PUT", 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(`{
"amount": 150,
"currency": "AUD",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours"
}`)
req, err := http.NewRequest("PUT", "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
req.Header.Set("idempotency-Key", "cn-req-edit-002")
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.Put, "https://qa-payments.mygigsters.com.au/api/v1/credit-notes/3/draft");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("idempotency-Key", "cn-req-edit-002");
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""amount"": 150,
""currency"": ""AUD"",
""reason"": ""Customer discount / Service dispute"",
""description"": ""150 AUD credit issued for overbilled service hours""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"success": true,
"message": "Draft credit note updated successfully",
"data": {
"id": 3,
"credit_note_number": "CN-0003",
"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": "150.00",
"remaining_amount": "150.00",
"applied_amount": "0.00",
"currency": "AUD",
"status": "DRAFT",
"reason": "Customer discount / Service dispute",
"description": "150 AUD credit issued for overbilled service hours",
"date": "2026-09-17T10:45:02.000Z",
"deleted_at": null,
"created_at": "2026-09-17T10:45:02.000Z",
"updated_at": "2026-09-17T10:52:03.876Z"
}
}
Last modified on November 10, 2026
Was this page helpful?
