Validate Superannuation Fund

POST/v1/contributions/fund/validate

Overview

Validates one or more superannuation fund USIs (Unique Superannuation Identifiers) to confirm they are active and able to receive electronic contributions through SuperChoice.

Simplified Request Format

The fund validation endpoint has been simplified to automatically retrieve employer information from the database. You only need to provide the fund USIs you want to validate.

Minimal Request (Recommended):

{
  "fundUsis": ["40328908469310"]
}

The system automatically retrieves your employer information based on your authentication credentials, so you no longer need to include employer details in the request.

Transaction ID - Server-Generated

The server automatically generates a unique transaction ID and timestamp for each request.

Transaction ID Format: txn-{uuid}

Example generated IDs:

  • txn-550e8400-e29b-41d4-a716-446655440000
  • txn-6ba7b810-9dad-11d1-80b4-00c04fd430c8

The transaction ID will be:

  • Included in all response payloads
  • Available in error messages for troubleshooting
  • Returned in response headers for request tracking

Transaction ID in Response

The validate fund endpoint returns the server-generated transaction ID in the response:

{
  "success": true,
  "statusCode": 200,
  "message": "Fund validation successful",
  "transactionId": "txn-550e8400-e29b-41d4-a716-446655440000"
}

Use this ID for logging, debugging, and tracking requests in your system.

Validation Checks Performed

  1. USI Format: Verifies the USI follows the correct 14-character format
  2. Fund Active Status: Confirms the fund is currently accepting contributions
  3. Electronic Capability: Verifies the fund can receive SuperStream contributions
  4. Employer Association: Optional check if employer is already registered with the fund

When to Use

  • Member Onboarding: Validate the fund USI provided by a new employee
  • Choice of Fund: Verify funds before presenting them to employees
  • Pre-submission Check: Validate all funds in a batch before submission
  • Periodic Verification: Funds occasionally change status (mergers, closures)

Common USI Issues

  • Fund has merged with another fund (will return new USI)
  • Fund is temporarily not accepting electronic contributions
  • USI is for a closed or legacy product

Benefits of Simplified Format

  • Simpler Integration: No need to manage employer details
  • Smaller Request Payloads: Only send what's necessary
  • Always Up-to-Date: Uses the most current employer information from the database
  • Consistent Data: Same employer data used across all requests

Best Practices

  1. Cache valid USIs for up to 24 hours
  2. Always re-validate before first contribution to a new fund
  3. Handle fund merge redirects gracefully
  4. Use the transaction ID from responses for request tracking

Request Body

Required: Yes
Content-Type: application/json
ParameterTypeDescription
fundUsis *arrayArray of superannuation fund USIs (Unique Superannuation Identifiers) to validate. Each USI will be checked against the active funds registry to ensure it can accept contributions.

Responses

Content-Type: application/json
Response CodeDescriptionSchema
200Fund validation successful. All specified USIs are active and can receive contributions.
ParameterTypeDescription
successbooleanIndicates whether the operation completed successfully. True means the validation passed or submission was accepted.
statusCodeintegerHTTP status code of the response. 200 indicates success.
messagestringHuman-readable message describing the operation result. For successful operations, provides confirmation of what was validated or submitted.
transactionIdstringServer-generated transaction ID in the format `txn-{uuid}`. This ID is automatically generated by the server for tracking and correlation purposes. Use this ID for logging, debugging, and tracking requests in your system.
400Fund validation failed - One or more USIs are invalid or inactive.
ParameterTypeDescription
successbooleanAlways false for error responses, indicating the operation did not succeed.
statusCodeintegerHTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
messagestringHuman-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
errorCodeintegerSuperChoice-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).
401Unauthorized - Invalid API credentials.
ParameterTypeDescription
successbooleanAlways false for error responses, indicating the operation did not succeed.
statusCodeintegerHTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
messagestringHuman-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
errorCodeintegerSuperChoice-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).
500Internal server error.
ParameterTypeDescription
successbooleanAlways false for error responses, indicating the operation did not succeed.
statusCodeintegerHTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
messagestringHuman-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
errorCodeintegerSuperChoice-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).

Sample Request - cURL

curl 'https://super.mygigsters.com.au/v1/contributions/fund/validate' -X POST \
    -u "apiUsername:apiPassword-from-api-keys"  \
    -H "Content-Type: application/json" --data '{"fundUsis":["40328908469310"]}' 

Sample Response - 200

{
  "success": true,
  "statusCode": 200,
  "message": "Fund validation successful",
  "transactionId": "txn-550e8400-e29b-41d4-a716-446655440000"
}

Get Active Superannuation Funds

GET/v1/contributions/funds/active

Overview

Retrieves a comprehensive list of all superannuation funds currently registered and active in the SuperChoice network. These funds are verified and capable of receiving electronic contributions.

Authentication

This endpoint requires Basic Authentication using your API Key credentials. For detailed authentication instructions, please refer to the Authentication guide.

Use Cases

  • Initial Setup: Populate your system's fund dropdown/selection list
  • Periodic Refresh: Update your local fund cache (recommended: daily)
  • Validation: Verify a USI before attempting contribution submission
  • Member Onboarding: Present fund options to new employees

Response Details

The response includes each fund's:

  • USI (Unique Superannuation Identifier): The 14-character identifier required for contributions
  • Fund Name: The display name for user interface purposes
  • Product Name: The specific product name within the fund
  • Organisation Name: The name of the superannuation organisation
  • Australian Business Number (ABN): The fund's ABN
  • Account Details: Bank account information (account name, BSB, account number)
  • Contact Details: Contact information including name, phone number, and email

Performance

  • Response is cached for 15 minutes on the server
  • Average response time: < 200ms
  • Typical list size: 200-300 active funds

Rate Limiting

This endpoint has a higher rate limit (300 requests/minute) as it's commonly used for autocomplete features.

Responses

Content-Type: application/json
Response CodeDescriptionSchema
200Successfully retrieved the list of active superannuation funds. The response contains an array of fund objects, each with a USI and display name.
ParameterTypeDescription
fundsarrayArray of active superannuation funds that can receive contributions. This list is updated regularly as funds join or leave the SuperChoice network.
400Bad request - The request could not be processed. This may occur if the request format is invalid or required headers are malformed.
ParameterTypeDescription
successbooleanAlways false for error responses, indicating the operation did not succeed.
statusCodeintegerHTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
messagestringHuman-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
errorCodeintegerSuperChoice-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).
401Unauthorized - Authentication failed. Check that your X-Username and X-Password headers are correct and that your account is active.
ParameterTypeDescription
successbooleanAlways false for error responses, indicating the operation did not succeed.
statusCodeintegerHTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
messagestringHuman-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
errorCodeintegerSuperChoice-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).
500Internal server error - An unexpected error occurred. If this persists, contact SuperChoice support with your transaction ID.
ParameterTypeDescription
successbooleanAlways false for error responses, indicating the operation did not succeed.
statusCodeintegerHTTP status code indicating the type of error. Common values: 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), 500 (Server Error)
messagestringHuman-readable error message explaining what went wrong. May include specific details about which field or value caused the error.
errorCodeintegerSuperChoice-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).

Sample Request - cURL

curl 'https://super.mygigsters.com.au/v1/contributions/funds/active' \
    -u "apiUsername:apiPassword-from-api-keys"  

Sample Response - 200

{
  "funds": [
    {
      "usi": "40328908469310",
      "fundName": "Traditional and Personal Super",
      "productName": "Traditional and Personal Super",
      "organisationName": "Super Retirement Fund",
      "australianBusinessNumber": "40328908469",
      "account": {
        "accountName": "RESOLUTION LIFE AUSTRALASIA",
        "bsb": "032021",
        "accountNumber": "103312"
      },
      "contactDetails": {
        "name": "Customer Service",
        "phoneNumber": {
          "type": "LAND_LINE",
          "value": "1800624100"
        },
        "email": {
          "value": "Au.SISSuperstream@resolutionlife.com.au"
        }
      }
    },
    {
      "usi": "51739693679001",
      "fundName": "CRONIN SUPERANNUATION FUND",
      "productName": "CRONIN SUPERANNUATION FUND",
      "organisationName": "CRONIN SUPERANNUATION FUND",
      "australianBusinessNumber": "51739693679",
      "account": {
        "accountName": "CRONIN SUPERANNUATION FUND",
        "bsb": "032021",
        "accountNumber": "103312"
      },
      "contactDetails": {
        "name": "Customer Service",
        "phoneNumber": {
          "type": "LAND_LINE",
          "value": "1800624100"
        },
        "email": {
          "value": "contact@example.com"
        }
      }
    }
  ]
}