Submit Contribution

POST/v1/contributions/contribution

Overview

Submits a superannuation contribution for processing. This endpoint automatically retrieves employer and employee static information from the database, so you only need to provide variable data such as fund amounts, pay periods, and employment status.

Simplified Request Format

Instead of providing the full contribution payload, you only need to provide:

  • Fund USI: The superannuation fund identifier
  • Employee ID: Reference to employee stored in database (from GET /v1/employees)
  • Amounts: Contribution amounts for each employee
  • Pay Periods: Start and end dates for the pay period
  • Employment Status: Employment status for this pay period

For this simplified endpoint, you do not send memberNumber or employmentPayrollNumber in the member objects. These identifiers are automatically populated from the onboarded employee record and passed through in the full SuperChoice payload that we build internally.

Workflow

  1. Onboard Employer: Store employer information in database (internal process)
  2. Onboard Employees: Use POST /v1/employees to store employee static data (including USI, memberNumber, and employmentPayrollNumber)
  3. Submit Contribution: Use this endpoint with only variable data

Benefits

  • Reduced Payload Size: Only send variable data that changes per contribution
  • Data Consistency: Static data is stored once and reused
  • Simplified Integration: Less data to manage in your payroll system
  • Automatic Updates: Update employee data once, affects all future contributions

Automatic Contribution History Storage

When contributions are submitted via this endpoint, the system automatically stores the contribution details in the history. This happens in the background and does not affect the contribution submission response. You can retrieve the stored contribution history using the GET /v1/contributions/submitted/history endpoint.

Note: This automatic storage ensures all submitted contributions are tracked and can be retrieved later for auditing, reporting, or reconciliation purposes.

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

Example Request

{
  "contributionDetails": {
    "funds": [
      {
        "usi": "40328908469310",
        "amountForFund": { "value": 1391.67, "currency": "AUD" },
        "members": [
          {
            "employeeId": "507f1f77bcf86cd799439011",
            "payPeriodStartDate": 1638277200,
            "payPeriodEndDate": 1640955600,
            "employmentStatus": "FULL_TIME",
            "totalMemberContributionAmount": { "value": 1391.67, "currency": "AUD" },
            "superGuaranteeAmount": { "value": 1391.67, "currency": "AUD" }
          }
        ]
      }
    ]
  }
}

Authentication

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

The system automatically identifies your employer account and uses the stored SuperChoice API credentials to process the contribution.

Request Body

Required: Yes
Content-Type: application/json
ParameterTypeDescription
contributionDetails *objectSimplified contribution details. Only variable data (fund USIs, amounts, pay periods) is required. Employee and employer static data will be automatically retrieved from the database.
ParameterTypeDescription
funds*arrayList of superannuation funds receiving contributions, each with their associated members. Contributions are grouped by fund for efficient processing.

Array items (each item contains):

ParameterTypeDescription
usi*stringUnique Superannuation Identifier (USI) for the fund
amountForFund*objectTotal contribution amount for this fund
ParameterTypeDescription
value*numberThe monetary amount as a decimal number. Should be specified to 2 decimal places for AUD. Must be a positive value for contributions.
currency*string (AUD)ISO 4217 currency code. Currently only Australian Dollars (AUD) is supported. All superannuation contributions in Australia must be made in AUD.
members*arrayList of members (employees) contributing to this fund

Array items (each member contains):

ParameterTypeDescription
employeeId*stringEmployee ID from the database (obtained from GET /v1/employees or POST /v1/employees)
payPeriodStartDate*numberPay period start date (Unix timestamp in seconds)
payPeriodEndDate*numberPay period end date (Unix timestamp in seconds)
employmentStatus*string (CASUAL, CONTRACTOR, FULL_TIME, PART_TIME)Employment Status Type. Valid values: CASUAL, CONTRACTOR, FULL_TIME, PART_TIME
totalMemberContributionAmount*objectTotal contribution amount for this member
superGuaranteeAmount*objectSuper guarantee amount for this member

Responses

Content-Type: application/json
Response CodeDescriptionSchema
200Contribution submitted successfully. The payment has been queued for processing. The response includes the full payload that was sent to SuperChoice API.
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.
payloadThe complete contribution payload that was submitted to SuperChoice API. This includes all employer details, fund information, and member contributions with full employee data.
400Submission failed - Invalid data or employee/employer not found.
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 authentication 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).
404Employee or employer not found in database.
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/contribution' -X POST \
    -u "apiUsername:apiPassword-from-api-keys"  \
    -H "Content-Type: application/json" --data '{"contributionDetails":{"funds":[{"usi":"40328908469310","amountForFund":{"value":1391.67,"currency":"AUD"},"members":[{"employeeId":"507f1f77bcf86cd799439011","payPeriodStartDate":1638277200,"payPeriodEndDate":1640955600,"employmentStatus":"FULL_TIME","totalMemberContributionAmount":{"value":1391.67,"currency":"AUD"},"superGuaranteeAmount":{"value":1391.67,"currency":"AUD"}}]}]}}' 

Sample Response - 200

{
  "success": true,
  "statusCode": 200,
  "message": "Contribution submitted successfully",
  "transactionId": "txn-550e8400-e29b-41d4-a716-446655440000",
  "payload": {
    "identifier": {
      "transactionId": {
        "value": "txn-550e8400-e29b-41d4-a716-446655440000"
      },
      "timeInUTC": 1765780000000
    },
    "contributionDetails": {
      "employer": {
        "employerDetails": {
          "organisationName": "MyGigsters Technologies Pty Ltd",
          "australianBusinessNumber": "34623710896",
          "paymentDetails": {
            "paymentType": "DIRECTDEBIT",
            "directDebit": {
              "bankAccount": {
                "accountName": "MyGigsters Technologies Pty Ltd",
                "bsb": "923100",
                "accountNumber": "62645812"
              },
              "directDebitPaymentAmount": {
                "value": 1391.67,
                "currency": "AUD"
              }
            }
          },
          "refundAccount": {
            "accountName": "MyGigsters Technologies Pty Ltd",
            "bsb": "923100",
            "accountNumber": "62645812"
          },
          "contactDetails": {
            "name": {
              "title": "Mr",
              "firstName": "Jonathan",
              "middleName": " ",
              "lastName": "Vella",
              "suffix": " "
            },
            "phoneNumber": {
              "type": "MOBILE_PHONE",
              "value": "0424022864"
            },
            "email": {
              "value": "jon.vella@company.com"
            }
          }
        },
        "funds": [
          {
            "usi": "40328908469310",
            "amountForFund": {
              "value": 1391.67,
              "currency": "AUD"
            },
            "members": [
              {
                "employeeId": "507f1f77bcf86cd799439011",
                "payPeriodStartDate": 1638277200,
                "payPeriodEndDate": 1640955600,
                "employmentStatus": "FULL_TIME",
                "totalMemberContributionAmount": {
                  "value": 1391.67,
                  "currency": "AUD"
                },
                "superGuaranteeAmount": {
                  "value": 1391.67,
                  "currency": "AUD"
                }
              }
            ]
          }
        ]
      }
    }
  }
}