curl 'https://qa-super.mygigsters.com.au/v2/employees/bulk-upload' -X POST \
-u "apiUsername:apiPassword"
const response = await fetch("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-super.mygigsters.com.au/v2/employees/bulk-upload",
auth=("apiUsername", "apiPassword"),
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload")
request = Net::HTTP::Post.new(uri)
request.basic_auth("apiUsername", "apiPassword")
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-super.mygigsters.com.au/v2/employees/bulk-upload");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "apiUsername:apiPassword",
]);
$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("apiUsername:apiPassword".getBytes());
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload"))
.header("Authorization", "Basic " + credentials)
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("POST", "https://qa-super.mygigsters.com.au/v2/employees/bulk-upload", nil)
if err != nil {
panic(err)
}
req.SetBasicAuth("apiUsername", "apiPassword")
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-super.mygigsters.com.au/v2/employees/bulk-upload");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"bulkUploadId": "507f1f77bcf86cd799439011",
"uploaded": 2,
"partial": 1,
"failed": 0,
"uploadedRecords": [
{
"employeeId": "6953884140b85eeded2bf2ea",
"email": "lisa.brown@email.com",
"mvrStatus": "PENDING",
"mvrStatusReason": null
},
{
"employeeId": "6953884140b85eeded2bf2eb",
"email": "sam.jones@email.com",
"mvrStatus": "NOT_APPLICABLE",
"mvrStatusReason": "No fund identity set at time of check"
}
],
"partialRecords": [
{
"row": 3,
"partialEmployeeId": "6953884140b85eeded2bf2ec",
"email": "alice@example.com",
"firstName": "Alice",
"lastName": "Smith",
"missingFields": [
"usi"
]
}
],
"failedRecords": []
}
Employees
Bulk upload employees (v2)
Upload a CSV file to onboard multiple employees at once. Identical to POST /v1/employees/bulk-upload, with one difference: this endpoint automatically triggers MVR (Member Verification) for every successfully-created row that…
POST
/
v2
/
employees
/
bulk-upload
curl 'https://qa-super.mygigsters.com.au/v2/employees/bulk-upload' -X POST \
-u "apiUsername:apiPassword"
const response = await fetch("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-super.mygigsters.com.au/v2/employees/bulk-upload",
auth=("apiUsername", "apiPassword"),
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload")
request = Net::HTTP::Post.new(uri)
request.basic_auth("apiUsername", "apiPassword")
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-super.mygigsters.com.au/v2/employees/bulk-upload");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "apiUsername:apiPassword",
]);
$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("apiUsername:apiPassword".getBytes());
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload"))
.header("Authorization", "Basic " + credentials)
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("POST", "https://qa-super.mygigsters.com.au/v2/employees/bulk-upload", nil)
if err != nil {
panic(err)
}
req.SetBasicAuth("apiUsername", "apiPassword")
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-super.mygigsters.com.au/v2/employees/bulk-upload");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"bulkUploadId": "507f1f77bcf86cd799439011",
"uploaded": 2,
"partial": 1,
"failed": 0,
"uploadedRecords": [
{
"employeeId": "6953884140b85eeded2bf2ea",
"email": "lisa.brown@email.com",
"mvrStatus": "PENDING",
"mvrStatusReason": null
},
{
"employeeId": "6953884140b85eeded2bf2eb",
"email": "sam.jones@email.com",
"mvrStatus": "NOT_APPLICABLE",
"mvrStatusReason": "No fund identity set at time of check"
}
],
"partialRecords": [
{
"row": 3,
"partialEmployeeId": "6953884140b85eeded2bf2ec",
"email": "alice@example.com",
"firstName": "Alice",
"lastName": "Smith",
"missingFields": [
"usi"
]
}
],
"failedRecords": []
}
Maximum 500 rows per upload, 200 KB file size — split larger files into batches.
Rows that pass all validation are saved and get MVR auto-triggered. Rows with missing or invalid fields are returned in
partialRecords (no MVR is attempted for these until they’re completed). Duplicate records are returned in failedRecords.
Responses
| Code | Description |
|---|---|
200 | Upload summary |
400 | No file uploaded or file is not valid CSV |
401 | Unauthorized |
Response fields
string
ID of the bulk upload session record
integer
Number of employees successfully uploaded (MVR auto-triggered for those with a fund identity)
integer
Number of rows saved as partial (missing required fields) — no MVR attempted yet
integer
Number of rows that failed outright (duplicate, or missing email)
array
Successfully created employee records, each including the current mvrStatus/mvrStatusReason — see the Create Employee response above for the full shape.
array
Rows saved as partial employees pending self-completion via magic link
array
Details of outright-failed rows (duplicate, or missing email)
curl 'https://qa-super.mygigsters.com.au/v2/employees/bulk-upload' -X POST \
-u "apiUsername:apiPassword"
const response = await fetch("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://qa-super.mygigsters.com.au/v2/employees/bulk-upload",
auth=("apiUsername", "apiPassword"),
)
print(response.json())
require "net/http"
require "json"
require "uri"
uri = URI("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload")
request = Net::HTTP::Post.new(uri)
request.basic_auth("apiUsername", "apiPassword")
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-super.mygigsters.com.au/v2/employees/bulk-upload");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_USERPWD => "apiUsername:apiPassword",
]);
$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("apiUsername:apiPassword".getBytes());
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://qa-super.mygigsters.com.au/v2/employees/bulk-upload"))
.header("Authorization", "Basic " + credentials)
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("POST", "https://qa-super.mygigsters.com.au/v2/employees/bulk-upload", nil)
if err != nil {
panic(err)
}
req.SetBasicAuth("apiUsername", "apiPassword")
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-super.mygigsters.com.au/v2/employees/bulk-upload");
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
{
"bulkUploadId": "507f1f77bcf86cd799439011",
"uploaded": 2,
"partial": 1,
"failed": 0,
"uploadedRecords": [
{
"employeeId": "6953884140b85eeded2bf2ea",
"email": "lisa.brown@email.com",
"mvrStatus": "PENDING",
"mvrStatusReason": null
},
{
"employeeId": "6953884140b85eeded2bf2eb",
"email": "sam.jones@email.com",
"mvrStatus": "NOT_APPLICABLE",
"mvrStatusReason": "No fund identity set at time of check"
}
],
"partialRecords": [
{
"row": 3,
"partialEmployeeId": "6953884140b85eeded2bf2ec",
"email": "alice@example.com",
"firstName": "Alice",
"lastName": "Smith",
"missingFields": [
"usi"
]
}
],
"failedRecords": []
}
Last modified on November 10, 2026
Was this page helpful?
