> ## 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.

# Create Employee

> Creates a new employee record and stores static employee information in the database. This information will be used when submitting contributions, so you only need to provide variable data (amounts, pay periods) in...

### Employee Data Stored

The following static information is stored:

* Name (first name, last name)
* Gender
* Date of birth
* Address
* Email
* Tax File Number (TFN)
* Superannuation identifiers (USI, memberNumber, employmentPayrollNumber)
* Optional employee ABN (if applicable)

The employee is automatically associated with the authenticated client's context.

USI, memberNumber, and employmentPayrollNumber are **required** for onboarding and are later reused when building Superannuation clearing house validation and submission payloads.

### Use Case

* Onboard a new employee using this endpoint
* Store the returned employee ID
* Use the employee ID when submitting contributions

### Request Body

**email** `string` *required*

Employee email address (must be valid email format). Must be unique per client - a client cannot have two employees with the same email address.

**name** `object` *required*

Employee name

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

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

**dob** `object` *required*

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

**address** `object` *required*

Employee address

**taxFileNumber** `string` *required*

Tax File Number (TFN). Must be unique per client - no two employees under the same client can share a TFN.

**usi** `string` *required*

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` *required*

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 - no two employees under the same client can share a member number.

**employmentPayrollNumber** `string` *required*

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. If omitted, one is auto-generated and guaranteed unique.

**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 - no two employees under the same client can share an ABN.

### Responses

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

### 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. Common codes: 4030 (Employer not found), 4031 (Invalid ABN), 4040 (Fund not found).

```bash cURL theme={null}
curl 'https://qa-super.mygigsters.com.au/v1/employees' -X POST \
    -u "apiUsername:apiPassword"  \
    -H "Content-Type: application/json" --data '{"email":"lisa.black@email.com","name":{"firstName":"Lisa","lastName":"Brown"},"gender":"FEMALE","dob":{"year":1988,"month":"DECEMBER","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-000123","abn":"34623710896"}'
```

```javascript Node.js theme={null}
const response = await fetch("https://qa-super.mygigsters.com.au/v1/employees", {
  method: "POST",
  headers: {
    Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "email": "lisa.black@email.com",
    "name": {
      "firstName": "Lisa",
      "lastName": "Brown"
    },
    "gender": "FEMALE",
    "dob": {
      "year": 1988,
      "month": "DECEMBER",
      "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-000123",
    "abn": "34623710896"
  }),
});

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

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

response = requests.post(
    "https://qa-super.mygigsters.com.au/v1/employees",
    auth=("apiUsername", "apiPassword"),
    json={
        "email": "lisa.black@email.com",
        "name": {
            "firstName": "Lisa",
            "lastName": "Brown",
        },
        "gender": "FEMALE",
        "dob": {
            "year": 1988,
            "month": "DECEMBER",
            "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-000123",
        "abn": "34623710896",
    },
)

print(response.json())
```

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

uri = URI("https://qa-super.mygigsters.com.au/v1/employees")
request = Net::HTTP::Post.new(uri)
request.basic_auth("apiUsername", "apiPassword")
request["Content-Type"] = "application/json"
request.body = <<~JSON
  {
    "email": "lisa.black@email.com",
    "name": {
      "firstName": "Lisa",
      "lastName": "Brown"
    },
    "gender": "FEMALE",
    "dob": {
      "year": 1988,
      "month": "DECEMBER",
      "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-000123",
    "abn": "34623710896"
  }
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");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_USERPWD => "apiUsername:apiPassword",
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "email": "lisa.black@email.com",
  "name": {
    "firstName": "Lisa",
    "lastName": "Brown"
  },
  "gender": "FEMALE",
  "dob": {
    "year": 1988,
    "month": "DECEMBER",
    "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-000123",
  "abn": "34623710896"
}
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",
            "{",
            "  \"email\": \"lisa.black@email.com\",",
            "  \"name\": {",
            "    \"firstName\": \"Lisa\",",
            "    \"lastName\": \"Brown\"",
            "  },",
            "  \"gender\": \"FEMALE\",",
            "  \"dob\": {",
            "    \"year\": 1988,",
            "    \"month\": \"DECEMBER\",",
            "    \"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-000123\",",
            "  \"abn\": \"34623710896\"",
            "}"
        );

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

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

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

func main() {
	body := strings.NewReader(`{
  "email": "lisa.black@email.com",
  "name": {
    "firstName": "Lisa",
    "lastName": "Brown"
  },
  "gender": "FEMALE",
  "dob": {
    "year": 1988,
    "month": "DECEMBER",
    "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-000123",
  "abn": "34623710896"
}`)

	req, err := http.NewRequest("POST", "https://qa-super.mygigsters.com.au/v1/employees", 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.Post, "https://qa-super.mygigsters.com.au/v1/employees");
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
request.Content = new StringContent(@"{
  ""email"": ""lisa.black@email.com"",
  ""name"": {
    ""firstName"": ""Lisa"",
    ""lastName"": ""Brown""
  },
  ""gender"": ""FEMALE"",
  ""dob"": {
    ""year"": 1988,
    ""month"": ""DECEMBER"",
    ""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-000123"",
  ""abn"": ""34623710896""
}", Encoding.UTF8, "application/json");

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

```json 201 theme={null}
{
  "employeeId": "6953884140b85eeded2bf2ea",
  "clientId": "6944f5bc514fc0a1479bffdb",
  "email": "lisa.black@email.com",
  "name": {
    "firstName": "Lisa",
    "lastName": "Brown"
  },
  "gender": "FEMALE",
  "dob": {
    "year": 1988,
    "month": "DECEMBER",
    "day": 13
  },
  "address": {
    "australianAddress": {
      "line1": "640 Gordon Street",
      "line2": " ",
      "line3": " ",
      "line4": " ",
      "suburb": "MANLY VALE",
      "postCode": "2093",
      "stateOrTerritory": "NSW",
      "countryCode": "AU"
    }
  },
  "taxFileNumber": "182134556",
  "abn": "34623710896",
  "usi": "BTA0287AU",
  "memberNumber": "MEM1001",
  "employmentPayrollNumber": "EMP-000123",
  "createdAt": "2025-12-30T08:07:29.894Z",
  "updatedAt": "2025-12-30T08:07:29.894Z"
}
```


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