> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mygigsters.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Employee

> Updates an existing employee record. Only the fields provided in the request body will be updated. All other fields will remain unchanged.

### Update Behavior

* All fields in the request body are optional
* Only provided fields will be updated
* Email uniqueness is validated per client - cannot update to an email that already exists for another employee under the same client
* `memberNumber`, `abn`, `taxFileNumber`, and `employmentPayrollNumber` are also validated for uniqueness per client on update

### Use Case

* Update employee super fund details (USI, member number)
* Change employee address or contact information
* Update employee name or personal details
* Modify employment/payroll number

### Request Parameters

**employeeId** `string` *required*

Employee ID

### Request Body

**email** `string`

Employee email address (must be valid email format). Must be unique per client - cannot match another employee's email under the same client.

**name** `object`

Employee name

**gender** `string (NOT_STATED, MALE, FEMALE, INDETERMINATE)`

Employee gender. Valid values: NOT\_STATED, MALE, FEMALE, INDETERMINATE

**dob** `object`

Date of birth. The member must be at least 18 years old. Day must be between 1 and 31.

**address** `object`

Employee address

**taxFileNumber** `string`

Tax File Number (TFN). Must be unique per client - cannot match another employee's TFN under the same client.

**usi** `string`

Unique Superannuation Identifier (USI) for the employee's chosen super fund/product. This will be used when building validation and submission payloads to Superannuation clearing house.

**memberNumber** `string`

Member number issued by the superannuation fund for this employee. This will be sent in the Superannuation clearing house member payload and used by the fund to directly match contributions to the member's account. Must be a string; cannot be blank or whitespace-only. Only alphanumeric characters, hyphens, underscores, and spaces are allowed — no other special characters. Must be unique per client - cannot match another employee's member number under the same client.

**employmentPayrollNumber** `string`

Employment / payroll number used by the employer to identify this employee in payroll systems. This will be sent as the employmentPayrollNumber field to Superannuation clearing house. Must be unique per client - cannot match another employee's payroll number under the same client.

**abn** `string`

Australian Business Number (ABN) for the employee (typically contractors). Stored for reference only and **not** sent to Superannuation clearing house APIs. Must be exactly 11 digits, numeric characters only, first digit cannot be zero. Can be presented with or without spaces (e.g., '34623710896' or '34 623 710 896'). Must be unique per client - cannot match another employee's ABN under the same client.

### Responses

| Code | Description |
| - | - |
| `200` | Employee updated successfully |
| `400` | Bad request - Invalid employee data or duplicate email (email addresses must be unique per client) |
| `401` | Unauthorized - Invalid authentication credentials |
| `404` | Employee not found |

### Response fields

**employeeId** `string`

Employee ID

**clientId** `string`

Client ID that this employee belongs to

**email** `string`

Employee email address (optional)

**name** `object`

Employee name

**properties**

**firstName** `string`

First or given name of the fund member as registered with their superannuation fund. Must match the name on the member's fund account for successful contribution allocation.

**lastName** `string`

Last name or surname of the fund member as registered with their superannuation fund. Must match exactly for the contribution to be successfully allocated.

**gender** `string`

Employee gender. Valid values: NOT\_STATED, MALE, FEMALE, INDETERMINATE

**dob** `object`

Date of birth. The member must be at least 18 years old. Day must be between 1 and 31.

**properties**

**year** `number`

Birth year (4 digits). Used along with month and day to verify member identity with the fund. Members must be at least 18 years old.

**month** `string`

Birth month as a full month name (uppercase). Must match the member's date of birth registered with their fund.

**day** `number`

Birth day of the month. Must be between 1 and 31. Ensure this matches the fund's records for successful member identification.

**address** `object`

Employee address

**properties**

**australianAddress** `object`

Australian residential address of the fund member. Used for member identification and correspondence if needed.

**taxFileNumber** `string`

Tax File Number (TFN)

**usi** `string`

Unique Superannuation Identifier (USI) for the employee's chosen super fund/product. Used when building validation and submission payloads to Superannuation clearing house.

**memberNumber** `string`

Member number issued by the superannuation fund for this employee. Sent in the Superannuation clearing house member payload to help the fund match contributions. Must be a string; cannot be blank or whitespace-only. Only alphanumeric characters, hyphens, underscores, and spaces are allowed — no other special characters.

**employmentPayrollNumber** `string`

Employment / payroll number used by the employer to identify this employee in payroll systems. Passed through as employmentPayrollNumber to Superannuation clearing house.

**abn** `string`

Australian Business Number (ABN) for the employee (typically contractors). Stored for reference only and not sent to Superannuation clearing house APIs. Must be exactly 11 digits, numeric characters only, first digit cannot be zero. Can be presented with or without spaces (e.g., '34623710896' or '34 623 710 896').

**createdAt** `string`

Created timestamp

**updatedAt** `string`

Updated timestamp

> [accordion] Error response fields
>
> **success** `boolean`
>
> Always false for error responses, indicating the operation did not succeed.
>
> **statusCode** `integer`
>
> HTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
>
> **message** `string`
>
> Human-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
>
> **errorCode** `integer`
>
> Superannuation clearing house-specific error code for programmatic error handling. Refer to the error code reference documentation for a complete list of codes.

```bash cURL theme={null}
curl 'https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9' -X PUT \
    -u "apiUsername:apiPassword"  \
    -H "Content-Type: application/json" --data '{"usi":"BTA0287AU","memberNumber":"MEM1001","employmentPayrollNumber":"EMP-000124"}'
```

```javascript Node.js theme={null}
const response = await fetch("https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9", {
  method: "PUT",
  headers: {
    Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "usi": "BTA0287AU",
    "memberNumber": "MEM1001",
    "employmentPayrollNumber": "EMP-000124"
  }),
});

const data = await response.json();
console.log(data);
```

```python Python theme={null}
import requests

response = requests.put(
    "https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9",
    auth=("apiUsername", "apiPassword"),
    json={
        "usi": "BTA0287AU",
        "memberNumber": "MEM1001",
        "employmentPayrollNumber": "EMP-000124",
    },
)

print(response.json())
```

```ruby Ruby theme={null}
require "net/http"
require "json"
require "uri"

uri = URI("https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9")
request = Net::HTTP::Put.new(uri)
request.basic_auth("apiUsername", "apiPassword")
request["Content-Type"] = "application/json"
request.body = <<~JSON
  {
    "usi": "BTA0287AU",
    "memberNumber": "MEM1001",
    "employmentPayrollNumber": "EMP-000124"
  }
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts JSON.parse(response.body)
```

```php PHP theme={null}
<?php

$ch = curl_init("https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_USERPWD => "apiUsername:apiPassword",
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "usi": "BTA0287AU",
  "memberNumber": "MEM1001",
  "employmentPayrollNumber": "EMP-000124"
}
JSON,
]);

$response = curl_exec($ch);
curl_close($ch);

print_r(json_decode($response, true));
```

```java Java theme={null}
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());

        String body = String.join("\n",
            "{",
            "  \"usi\": \"BTA0287AU\",",
            "  \"memberNumber\": \"MEM1001\",",
            "  \"employmentPayrollNumber\": \"EMP-000124\"",
            "}"
        );

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9"))
            .header("Authorization", "Basic " + credentials)
            .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());
    }
}
```

```go Go theme={null}
package main

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

func main() {
	body := strings.NewReader(`{
  "usi": "BTA0287AU",
  "memberNumber": "MEM1001",
  "employmentPayrollNumber": "EMP-000124"
}`)

	req, err := http.NewRequest("PUT", "https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9", body)
	if err != nil {
		panic(err)
	}
	req.SetBasicAuth("apiUsername", "apiPassword")
	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))
}
```

```csharp .NET theme={null}
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Put, "https://qa-super.mygigsters.com.au/v1/employees/69536c2640b85eeded2bf2e9");
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
request.Content = new StringContent(@"{
  ""usi"": ""BTA0287AU"",
  ""memberNumber"": ""MEM1001"",
  ""employmentPayrollNumber"": ""EMP-000124""
}", Encoding.UTF8, "application/json");

var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
```

```json 200 theme={null}
{
  "employeeId": "69536c2640b85eeded2bf2e9",
  "clientId": "6944f5bc514fc0a1479bffdb",
  "email": "lisa.brown@email.com",
  "name": {
    "firstName": "Lisa",
    "lastName": "Brown"
  },
  "gender": "FEMALE",
  "dob": {
    "year": 1988,
    "month": "MAY",
    "day": 13
  },
  "address": {
    "australianAddress": {
      "line1": "640 Gordon Street",
      "line2": " ",
      "line3": " ",
      "line4": " ",
      "suburb": "MANLY VALE",
      "postCode": "2093",
      "stateOrTerritory": "NSW",
      "countryCode": "AU"
    }
  },
  "taxFileNumber": "182134556",
  "usi": "BTA0287AU",
  "memberNumber": "MEM1001",
  "employmentPayrollNumber": "EMP-000124",
  "createdAt": "2025-12-19T07:18:39.442Z",
  "updatedAt": "2025-12-19T10:30:00.000Z"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.