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

# Onboard Employer

> Onboards a new employer to the system. This endpoint creates a new employer record with company details, contact information, address, and payment account configuration.

> [!TIP]
>
> **Why it's useful:** Use it to set up the employer of record, including the bank account contributions are debited from.

### Important Notes

* **Contact Email Uniqueness**: `contactPerson.emailAddress` must be unique among your employers (case-insensitive). If another of your employers already uses this email, the request is rejected with `400` (error code `4003`).
* **ABN Validation**: The ABN is validated in two stages - a format check (exactly 11 digits) and the ATO checksum algorithm. A syntactically-correct but non-existent ABN (e.g. 34623710897) is rejected.
* **Contact Area Code**: `contactPerson.areaCode` must be one of the valid Australian landline area codes: 02, 03, 04, 07, 08.
* **Required Information**: All company details, contact person information, addresses, and payment accounts must be provided.
* **Direct Debit Agreement**: The direct debit agreement terms must be accepted to complete onboarding.

### Use Case

* Onboard a new employer for superannuation contributions
* Configure payment accounts for contributions and refunds

### Request Body

**companyDetails** `object` *required*

Company and employer details

**contactPerson** `object` *required*

Contact person details for the employer

**companyAddress** `object` *required*

Company postal address

**directDebitAccount** `object` *required*

Bank account details for direct debit payments

**refundAccount** `object` *required*

Bank account details for refunds

**directDebitAgreement** `object` *required*

Direct debit agreement acceptance

**legalAgreements** `object`

Optional. Legal agreement acceptances. All fields are required if this object is provided.

**digitalSignature** `string`

Optional. Base64-encoded PNG of the employer's digital signature collected during onboarding.

### Responses

| Code | Description |
| - | - |
| `201` | Employer onboarded successfully |
| `400` | Bad request - Invalid employer data or validation error, or contact email already used by another of your employers (errorCode 4003) |
| `401` | Unauthorized - Invalid authentication credentials |
| `500` | Internal server error - An unexpected error occurred. If this persists, contact support. |

### Response fields

**employerId** `string`

Unique identifier for the onboarded employer

**clientId** `number`

Client ID associated with this employer

**message** `string`

Success message

**onboardedAt** `string`

Timestamp when the employer was onboarded

> [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), 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. Examples include "Invalid ABN format", "ABN failed the ATO checksum validation", and "Area code must be one of '02', '03', '04', '07', '08'".
>
> **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/employers/onboard' -X POST \
    -u "apiUsername:apiPassword"  \
    -H "Content-Type: application/json" --data '{"companyDetails":{"employerName":"MyGigsters Technologies Pty Ltd","australianBusinessNumber":"34623710896","status":"ACTIVE","contributionsEnabled":true,"employeeServicesEnabled":false,"singleTouchPayrollEnabled":true,"splitMultiEmployerBatch":true,"withholderPayerNumber":"123456789","employerArrangement":"ARR001","location":"SYDNEY","acn":"123456789","website":"https://example.com","registrationIp":"203.0.113.42"},"contactPerson":{"givenName":"Swaminathan","familyName":"Narayanan","emailAddress":"jane.smith@example.com","title":"Mr","otherName":"","mobilePhone":"0452624731","telephone":"0452624731","areaCode":"08","signatoryName":"Swaminathan Narayanan","signatoryPosition":"CPO"},"companyAddress":{"addressType":"POSTAL","addressLine1":"UNIT 6 17 THIRZA AVENUE","addressLine2":"","addressLine3":"","suburb":"MITCHELL PARK","postcode":"5043","state":"SA","country":"Australia"},"directDebitAccount":{"accountName":"MyGigsters Technology Pty Ltd","bsb":"085005","accountNumber":"310895575"},"refundAccount":{"accountName":"MyGigsters Technology Pty Ltd","bsb":"085005","accountNumber":"310895575"},"directDebitAgreement":{"agreedToTerms":true,"agreedAt":"2024-01-15T10:30:00Z"},"legalAgreements":{"termsAndConditions":true,"privacyPolicy":true,"directDebitServiceAgreement":true,"masterServiceAgreement":true},"digitalSignature":"iVBORw0KGgoAAAANSUhEUgAA..."}'
```

```javascript Node.js theme={null}
const response = await fetch("https://qa-super.mygigsters.com.au/v1/employers/onboard", {
  method: "POST",
  headers: {
    Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "companyDetails": {
      "employerName": "MyGigsters Technologies Pty Ltd",
      "australianBusinessNumber": "34623710896",
      "status": "ACTIVE",
      "contributionsEnabled": true,
      "employeeServicesEnabled": false,
      "singleTouchPayrollEnabled": true,
      "splitMultiEmployerBatch": true,
      "withholderPayerNumber": "123456789",
      "employerArrangement": "ARR001",
      "location": "SYDNEY",
      "acn": "123456789",
      "website": "https://example.com",
      "registrationIp": "203.0.113.42"
    },
    "contactPerson": {
      "givenName": "Swaminathan",
      "familyName": "Narayanan",
      "emailAddress": "jane.smith@example.com",
      "title": "Mr",
      "otherName": "",
      "mobilePhone": "0452624731",
      "telephone": "0452624731",
      "areaCode": "08",
      "signatoryName": "Swaminathan Narayanan",
      "signatoryPosition": "CPO"
    },
    "companyAddress": {
      "addressType": "POSTAL",
      "addressLine1": "UNIT 6 17 THIRZA AVENUE",
      "addressLine2": "",
      "addressLine3": "",
      "suburb": "MITCHELL PARK",
      "postcode": "5043",
      "state": "SA",
      "country": "Australia"
    },
    "directDebitAccount": {
      "accountName": "MyGigsters Technology Pty Ltd",
      "bsb": "085005",
      "accountNumber": "310895575"
    },
    "refundAccount": {
      "accountName": "MyGigsters Technology Pty Ltd",
      "bsb": "085005",
      "accountNumber": "310895575"
    },
    "directDebitAgreement": {
      "agreedToTerms": true,
      "agreedAt": "2024-01-15T10:30:00Z"
    },
    "legalAgreements": {
      "termsAndConditions": true,
      "privacyPolicy": true,
      "directDebitServiceAgreement": true,
      "masterServiceAgreement": true
    },
    "digitalSignature": "iVBORw0KGgoAAAANSUhEUgAA..."
  }),
});

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

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

response = requests.post(
    "https://qa-super.mygigsters.com.au/v1/employers/onboard",
    auth=("apiUsername", "apiPassword"),
    json={
        "companyDetails": {
            "employerName": "MyGigsters Technologies Pty Ltd",
            "australianBusinessNumber": "34623710896",
            "status": "ACTIVE",
            "contributionsEnabled": True,
            "employeeServicesEnabled": False,
            "singleTouchPayrollEnabled": True,
            "splitMultiEmployerBatch": True,
            "withholderPayerNumber": "123456789",
            "employerArrangement": "ARR001",
            "location": "SYDNEY",
            "acn": "123456789",
            "website": "https://example.com",
            "registrationIp": "203.0.113.42",
        },
        "contactPerson": {
            "givenName": "Swaminathan",
            "familyName": "Narayanan",
            "emailAddress": "jane.smith@example.com",
            "title": "Mr",
            "otherName": "",
            "mobilePhone": "0452624731",
            "telephone": "0452624731",
            "areaCode": "08",
            "signatoryName": "Swaminathan Narayanan",
            "signatoryPosition": "CPO",
        },
        "companyAddress": {
            "addressType": "POSTAL",
            "addressLine1": "UNIT 6 17 THIRZA AVENUE",
            "addressLine2": "",
            "addressLine3": "",
            "suburb": "MITCHELL PARK",
            "postcode": "5043",
            "state": "SA",
            "country": "Australia",
        },
        "directDebitAccount": {
            "accountName": "MyGigsters Technology Pty Ltd",
            "bsb": "085005",
            "accountNumber": "310895575",
        },
        "refundAccount": {
            "accountName": "MyGigsters Technology Pty Ltd",
            "bsb": "085005",
            "accountNumber": "310895575",
        },
        "directDebitAgreement": {
            "agreedToTerms": True,
            "agreedAt": "2024-01-15T10:30:00Z",
        },
        "legalAgreements": {
            "termsAndConditions": True,
            "privacyPolicy": True,
            "directDebitServiceAgreement": True,
            "masterServiceAgreement": True,
        },
        "digitalSignature": "iVBORw0KGgoAAAANSUhEUgAA...",
    },
)

print(response.json())
```

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

uri = URI("https://qa-super.mygigsters.com.au/v1/employers/onboard")
request = Net::HTTP::Post.new(uri)
request.basic_auth("apiUsername", "apiPassword")
request["Content-Type"] = "application/json"
request.body = <<~JSON
  {
    "companyDetails": {
      "employerName": "MyGigsters Technologies Pty Ltd",
      "australianBusinessNumber": "34623710896",
      "status": "ACTIVE",
      "contributionsEnabled": true,
      "employeeServicesEnabled": false,
      "singleTouchPayrollEnabled": true,
      "splitMultiEmployerBatch": true,
      "withholderPayerNumber": "123456789",
      "employerArrangement": "ARR001",
      "location": "SYDNEY",
      "acn": "123456789",
      "website": "https://example.com",
      "registrationIp": "203.0.113.42"
    },
    "contactPerson": {
      "givenName": "Swaminathan",
      "familyName": "Narayanan",
      "emailAddress": "jane.smith@example.com",
      "title": "Mr",
      "otherName": "",
      "mobilePhone": "0452624731",
      "telephone": "0452624731",
      "areaCode": "08",
      "signatoryName": "Swaminathan Narayanan",
      "signatoryPosition": "CPO"
    },
    "companyAddress": {
      "addressType": "POSTAL",
      "addressLine1": "UNIT 6 17 THIRZA AVENUE",
      "addressLine2": "",
      "addressLine3": "",
      "suburb": "MITCHELL PARK",
      "postcode": "5043",
      "state": "SA",
      "country": "Australia"
    },
    "directDebitAccount": {
      "accountName": "MyGigsters Technology Pty Ltd",
      "bsb": "085005",
      "accountNumber": "310895575"
    },
    "refundAccount": {
      "accountName": "MyGigsters Technology Pty Ltd",
      "bsb": "085005",
      "accountNumber": "310895575"
    },
    "directDebitAgreement": {
      "agreedToTerms": true,
      "agreedAt": "2024-01-15T10:30:00Z"
    },
    "legalAgreements": {
      "termsAndConditions": true,
      "privacyPolicy": true,
      "directDebitServiceAgreement": true,
      "masterServiceAgreement": true
    },
    "digitalSignature": "iVBORw0KGgoAAAANSUhEUgAA..."
  }
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/employers/onboard");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_USERPWD => "apiUsername:apiPassword",
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "companyDetails": {
    "employerName": "MyGigsters Technologies Pty Ltd",
    "australianBusinessNumber": "34623710896",
    "status": "ACTIVE",
    "contributionsEnabled": true,
    "employeeServicesEnabled": false,
    "singleTouchPayrollEnabled": true,
    "splitMultiEmployerBatch": true,
    "withholderPayerNumber": "123456789",
    "employerArrangement": "ARR001",
    "location": "SYDNEY",
    "acn": "123456789",
    "website": "https://example.com",
    "registrationIp": "203.0.113.42"
  },
  "contactPerson": {
    "givenName": "Swaminathan",
    "familyName": "Narayanan",
    "emailAddress": "jane.smith@example.com",
    "title": "Mr",
    "otherName": "",
    "mobilePhone": "0452624731",
    "telephone": "0452624731",
    "areaCode": "08",
    "signatoryName": "Swaminathan Narayanan",
    "signatoryPosition": "CPO"
  },
  "companyAddress": {
    "addressType": "POSTAL",
    "addressLine1": "UNIT 6 17 THIRZA AVENUE",
    "addressLine2": "",
    "addressLine3": "",
    "suburb": "MITCHELL PARK",
    "postcode": "5043",
    "state": "SA",
    "country": "Australia"
  },
  "directDebitAccount": {
    "accountName": "MyGigsters Technology Pty Ltd",
    "bsb": "085005",
    "accountNumber": "310895575"
  },
  "refundAccount": {
    "accountName": "MyGigsters Technology Pty Ltd",
    "bsb": "085005",
    "accountNumber": "310895575"
  },
  "directDebitAgreement": {
    "agreedToTerms": true,
    "agreedAt": "2024-01-15T10:30:00Z"
  },
  "legalAgreements": {
    "termsAndConditions": true,
    "privacyPolicy": true,
    "directDebitServiceAgreement": true,
    "masterServiceAgreement": true
  },
  "digitalSignature": "iVBORw0KGgoAAAANSUhEUgAA..."
}
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",
            "{",
            "  \"companyDetails\": {",
            "    \"employerName\": \"MyGigsters Technologies Pty Ltd\",",
            "    \"australianBusinessNumber\": \"34623710896\",",
            "    \"status\": \"ACTIVE\",",
            "    \"contributionsEnabled\": true,",
            "    \"employeeServicesEnabled\": false,",
            "    \"singleTouchPayrollEnabled\": true,",
            "    \"splitMultiEmployerBatch\": true,",
            "    \"withholderPayerNumber\": \"123456789\",",
            "    \"employerArrangement\": \"ARR001\",",
            "    \"location\": \"SYDNEY\",",
            "    \"acn\": \"123456789\",",
            "    \"website\": \"https://example.com\",",
            "    \"registrationIp\": \"203.0.113.42\"",
            "  },",
            "  \"contactPerson\": {",
            "    \"givenName\": \"Swaminathan\",",
            "    \"familyName\": \"Narayanan\",",
            "    \"emailAddress\": \"jane.smith@example.com\",",
            "    \"title\": \"Mr\",",
            "    \"otherName\": \"\",",
            "    \"mobilePhone\": \"0452624731\",",
            "    \"telephone\": \"0452624731\",",
            "    \"areaCode\": \"08\",",
            "    \"signatoryName\": \"Swaminathan Narayanan\",",
            "    \"signatoryPosition\": \"CPO\"",
            "  },",
            "  \"companyAddress\": {",
            "    \"addressType\": \"POSTAL\",",
            "    \"addressLine1\": \"UNIT 6 17 THIRZA AVENUE\",",
            "    \"addressLine2\": \"\",",
            "    \"addressLine3\": \"\",",
            "    \"suburb\": \"MITCHELL PARK\",",
            "    \"postcode\": \"5043\",",
            "    \"state\": \"SA\",",
            "    \"country\": \"Australia\"",
            "  },",
            "  \"directDebitAccount\": {",
            "    \"accountName\": \"MyGigsters Technology Pty Ltd\",",
            "    \"bsb\": \"085005\",",
            "    \"accountNumber\": \"310895575\"",
            "  },",
            "  \"refundAccount\": {",
            "    \"accountName\": \"MyGigsters Technology Pty Ltd\",",
            "    \"bsb\": \"085005\",",
            "    \"accountNumber\": \"310895575\"",
            "  },",
            "  \"directDebitAgreement\": {",
            "    \"agreedToTerms\": true,",
            "    \"agreedAt\": \"2024-01-15T10:30:00Z\"",
            "  },",
            "  \"legalAgreements\": {",
            "    \"termsAndConditions\": true,",
            "    \"privacyPolicy\": true,",
            "    \"directDebitServiceAgreement\": true,",
            "    \"masterServiceAgreement\": true",
            "  },",
            "  \"digitalSignature\": \"iVBORw0KGgoAAAANSUhEUgAA...\"",
            "}"
        );

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://qa-super.mygigsters.com.au/v1/employers/onboard"))
            .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(`{
  "companyDetails": {
    "employerName": "MyGigsters Technologies Pty Ltd",
    "australianBusinessNumber": "34623710896",
    "status": "ACTIVE",
    "contributionsEnabled": true,
    "employeeServicesEnabled": false,
    "singleTouchPayrollEnabled": true,
    "splitMultiEmployerBatch": true,
    "withholderPayerNumber": "123456789",
    "employerArrangement": "ARR001",
    "location": "SYDNEY",
    "acn": "123456789",
    "website": "https://example.com",
    "registrationIp": "203.0.113.42"
  },
  "contactPerson": {
    "givenName": "Swaminathan",
    "familyName": "Narayanan",
    "emailAddress": "jane.smith@example.com",
    "title": "Mr",
    "otherName": "",
    "mobilePhone": "0452624731",
    "telephone": "0452624731",
    "areaCode": "08",
    "signatoryName": "Swaminathan Narayanan",
    "signatoryPosition": "CPO"
  },
  "companyAddress": {
    "addressType": "POSTAL",
    "addressLine1": "UNIT 6 17 THIRZA AVENUE",
    "addressLine2": "",
    "addressLine3": "",
    "suburb": "MITCHELL PARK",
    "postcode": "5043",
    "state": "SA",
    "country": "Australia"
  },
  "directDebitAccount": {
    "accountName": "MyGigsters Technology Pty Ltd",
    "bsb": "085005",
    "accountNumber": "310895575"
  },
  "refundAccount": {
    "accountName": "MyGigsters Technology Pty Ltd",
    "bsb": "085005",
    "accountNumber": "310895575"
  },
  "directDebitAgreement": {
    "agreedToTerms": true,
    "agreedAt": "2024-01-15T10:30:00Z"
  },
  "legalAgreements": {
    "termsAndConditions": true,
    "privacyPolicy": true,
    "directDebitServiceAgreement": true,
    "masterServiceAgreement": true
  },
  "digitalSignature": "iVBORw0KGgoAAAANSUhEUgAA..."
}`)

	req, err := http.NewRequest("POST", "https://qa-super.mygigsters.com.au/v1/employers/onboard", 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/employers/onboard");
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
request.Content = new StringContent(@"{
  ""companyDetails"": {
    ""employerName"": ""MyGigsters Technologies Pty Ltd"",
    ""australianBusinessNumber"": ""34623710896"",
    ""status"": ""ACTIVE"",
    ""contributionsEnabled"": true,
    ""employeeServicesEnabled"": false,
    ""singleTouchPayrollEnabled"": true,
    ""splitMultiEmployerBatch"": true,
    ""withholderPayerNumber"": ""123456789"",
    ""employerArrangement"": ""ARR001"",
    ""location"": ""SYDNEY"",
    ""acn"": ""123456789"",
    ""website"": ""https://example.com"",
    ""registrationIp"": ""203.0.113.42""
  },
  ""contactPerson"": {
    ""givenName"": ""Swaminathan"",
    ""familyName"": ""Narayanan"",
    ""emailAddress"": ""jane.smith@example.com"",
    ""title"": ""Mr"",
    ""otherName"": """",
    ""mobilePhone"": ""0452624731"",
    ""telephone"": ""0452624731"",
    ""areaCode"": ""08"",
    ""signatoryName"": ""Swaminathan Narayanan"",
    ""signatoryPosition"": ""CPO""
  },
  ""companyAddress"": {
    ""addressType"": ""POSTAL"",
    ""addressLine1"": ""UNIT 6 17 THIRZA AVENUE"",
    ""addressLine2"": """",
    ""addressLine3"": """",
    ""suburb"": ""MITCHELL PARK"",
    ""postcode"": ""5043"",
    ""state"": ""SA"",
    ""country"": ""Australia""
  },
  ""directDebitAccount"": {
    ""accountName"": ""MyGigsters Technology Pty Ltd"",
    ""bsb"": ""085005"",
    ""accountNumber"": ""310895575""
  },
  ""refundAccount"": {
    ""accountName"": ""MyGigsters Technology Pty Ltd"",
    ""bsb"": ""085005"",
    ""accountNumber"": ""310895575""
  },
  ""directDebitAgreement"": {
    ""agreedToTerms"": true,
    ""agreedAt"": ""2024-01-15T10:30:00Z""
  },
  ""legalAgreements"": {
    ""termsAndConditions"": true,
    ""privacyPolicy"": true,
    ""directDebitServiceAgreement"": true,
    ""masterServiceAgreement"": true
  },
  ""digitalSignature"": ""iVBORw0KGgoAAAANSUhEUgAA...""
}", Encoding.UTF8, "application/json");

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

```json 201 theme={null}
{
  "employerId": "6963f20f2bc9fd78d613afe6",
  "clientId": 2,
  "message": "Employer onboarded successfully",
  "onboardedAt": "2026-01-11T18:55:11.618Z"
}
```


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