curl -X POST https://qa-payments.mygigsters.com.au/api/v1/create/subscription \
-u "YOUR_UUID:YOUR_SECRET" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/create/subscription", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-payments.mygigsters.com.au/api/v1/create/subscription",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"X-API-Version": "1.2",
},
json={
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/create/subscription")
request = Net::HTTP::Post.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}
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/create/subscription");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}
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",
"{",
" \"customer_id\": \"cus_hkdmgcfzjhhmn1t6osi\",",
" \"amount\": 20.5,",
" \"frequency\": \"weekly\",",
" \"start_date\": \"2026-07-20T00:00:00.000Z\",",
" \"end_date\": \"2026-12-20T00:00:00.000Z\",",
" \"currency\": \"AUD\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/create/subscription"))
.header("Authorization", "Basic " + credentials)
.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(`{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}`)
req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/create/subscription", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
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/create/subscription");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""customer_id"": ""cus_hkdmgcfzjhhmn1t6osi"",
""amount"": 20.5,
""frequency"": ""weekly"",
""start_date"": ""2026-07-20T00:00:00.000Z"",
""end_date"": ""2026-12-20T00:00:00.000Z"",
""currency"": ""AUD""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"status": 201,
"message": "Subscription created successfully",
"data": {
"id": 1,
"client_id": "1",
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.50,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"next_charge_date": "2026-07-20T00:00:00.000Z",
"status": "active",
"currency": "AUD"
}
}
Subscriptions
Create subscription
The Create Subscription endpoint is used to create a new recurring subscription for a customer.
POST
/
create
/
subscription
curl -X POST https://qa-payments.mygigsters.com.au/api/v1/create/subscription \
-u "YOUR_UUID:YOUR_SECRET" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/create/subscription", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-payments.mygigsters.com.au/api/v1/create/subscription",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"X-API-Version": "1.2",
},
json={
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/create/subscription")
request = Net::HTTP::Post.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}
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/create/subscription");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}
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",
"{",
" \"customer_id\": \"cus_hkdmgcfzjhhmn1t6osi\",",
" \"amount\": 20.5,",
" \"frequency\": \"weekly\",",
" \"start_date\": \"2026-07-20T00:00:00.000Z\",",
" \"end_date\": \"2026-12-20T00:00:00.000Z\",",
" \"currency\": \"AUD\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/create/subscription"))
.header("Authorization", "Basic " + credentials)
.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(`{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}`)
req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/create/subscription", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
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/create/subscription");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""customer_id"": ""cus_hkdmgcfzjhhmn1t6osi"",
""amount"": 20.5,
""frequency"": ""weekly"",
""start_date"": ""2026-07-20T00:00:00.000Z"",
""end_date"": ""2026-12-20T00:00:00.000Z"",
""currency"": ""AUD""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"status": 201,
"message": "Subscription created successfully",
"data": {
"id": 1,
"client_id": "1",
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.50,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"next_charge_date": "2026-07-20T00:00:00.000Z",
"status": "active",
"currency": "AUD"
}
}
Headers
string
default:"1.2"
required
The API version to use. Supported versions are
1.1 and 1.2.Request Body Parameters
string
required
The unique identifier of the customer to create the subscription for.
number
required
The recurring amount of the subscription. For example, pass 10 for $10.00 AUD.
string
required
The frequency of the subscription billing cycles. One of:
daily, weekly, monthly.string
required
The start date of the subscription in ISO 8601 or YYYY-MM-DD format.
string
The end date of the subscription in ISO 8601 or YYYY-MM-DD format (e.g.
2026-12-20T00:00:00.000Z).string
required
Three-letter ISO currency code. Currently supports
AUD.Response Body
The response for the Create Subscription request is a JSON object with the following schema:| Field | Type | Description |
|---|---|---|
status | number | Indicates the status code of the subscription request. |
message | string | Success message. |
dataobject | object | The details of the created subscription. |
↳id | string | Unique subscription ID (prefixed with sub_). |
↳customer_id | string | Customer identifier. |
↳amount | number | Subscription amount. |
↳frequency | string | Frequency (e.g. daily). |
↳status | string | Current status of subscription: ACTIVE, PAUSED, CANCELLED, INCOMPLETE, PAST_DUE. |
↳start_date | string | Timestamp of subscription start. |
↳end_date | string | Timestamp of subscription end date. |
↳currency | string | Currency (e.g. AUD). |
Response Codes
| Code | Description |
|---|---|
| 201 | Created. The subscription has been successfully created. |
| 400 | Bad Request. Invalid parameter format, negative/zero amount, or invalid frequency. |
| 401 | Unauthorized. Missing or invalid credentials. |
| 404 | Not Found. The specified customerId does not exist. |
| 409 | Conflict. Duplicate idempotency key or overlapping subscription. |
| 500 | Internal Server Error. |
curl -X POST https://qa-payments.mygigsters.com.au/api/v1/create/subscription \
-u "YOUR_UUID:YOUR_SECRET" \
-H "X-API-Version: 1.2" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}'
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/create/subscription", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("YOUR_UUID:YOUR_SECRET").toString("base64"),
"X-API-Version": "1.2",
"Content-Type": "application/json",
},
body: JSON.stringify({
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-payments.mygigsters.com.au/api/v1/create/subscription",
auth=("YOUR_UUID", "YOUR_SECRET"),
headers={
"X-API-Version": "1.2",
},
json={
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD",
},
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-payments.mygigsters.com.au/api/v1/create/subscription")
request = Net::HTTP::Post.new(uri)
request.basic_auth("YOUR_UUID", "YOUR_SECRET")
request["X-API-Version"] = "1.2"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}
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/create/subscription");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "YOUR_UUID:YOUR_SECRET",
CURLOPT_HTTPHEADER => [
"X-API-Version: 1.2",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => <<<'JSON'
{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}
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",
"{",
" \"customer_id\": \"cus_hkdmgcfzjhhmn1t6osi\",",
" \"amount\": 20.5,",
" \"frequency\": \"weekly\",",
" \"start_date\": \"2026-07-20T00:00:00.000Z\",",
" \"end_date\": \"2026-12-20T00:00:00.000Z\",",
" \"currency\": \"AUD\"",
"}"
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/create/subscription"))
.header("Authorization", "Basic " + credentials)
.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(`{
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.5,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"currency": "AUD"
}`)
req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/create/subscription", body)
if err != nil {
panic(err)
}
req.SetBasicAuth("YOUR_UUID", "YOUR_SECRET")
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/create/subscription");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("YOUR_UUID:YOUR_SECRET")));
request.Headers.Add("X-API-Version", "1.2");
request.Content = new StringContent(@"{
""customer_id"": ""cus_hkdmgcfzjhhmn1t6osi"",
""amount"": 20.5,
""frequency"": ""weekly"",
""start_date"": ""2026-07-20T00:00:00.000Z"",
""end_date"": ""2026-12-20T00:00:00.000Z"",
""currency"": ""AUD""
}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"status": 201,
"message": "Subscription created successfully",
"data": {
"id": 1,
"client_id": "1",
"customer_id": "cus_hkdmgcfzjhhmn1t6osi",
"amount": 20.50,
"frequency": "weekly",
"start_date": "2026-07-20T00:00:00.000Z",
"end_date": "2026-12-20T00:00:00.000Z",
"next_charge_date": "2026-07-20T00:00:00.000Z",
"status": "active",
"currency": "AUD"
}
}
Last modified on November 10, 2026
Was this page helpful?
