Sandbox live

Quickstart

Integrate an education-provider enrolment wizard with StudentPay in four steps.

0. Confirm sandbox

curl https://sandbox-api.studentpay.com.au/v1/environment

Expect "environment": "sandbox" and "pinch_mode": "test".

1. Authenticate

Authorization: Bearer <PROVIDER_API_KEY>
Content-Type: application/json

The key must belong to the same provider.provider_code sent in the body. See Authentication.

2. Create a checkout

POST /v1/provider-checkouts
Idempotency-Key: ONFIT-ENROLMENT-12345
{
  "provider": {
    "provider_code": "ONFIT",
    "provider_order_id": "ONFIT-ENROLMENT-12345",
    "provider_account_id": "001XXXXXXXXXXXX"
  },
  "student": {
    "first_name": "Alex",
    "last_name": "Student",
    "email": "alex.student@example.com"
  },
  "course": {
    "course_name": "Certificate IV in Fitness"
  },
  "pricing": {
    "course_price": 2990,
    "amount_to_finance": 2490
  },
  "plan": {
    "payment_type": "interest_free_payment_plan",
    "payment_frequency": "Fortnightly",
    "number_of_instalments": 20,
    "instalment_amount": 124.5,
    "first_payment_date": "2026-08-18"
  }
}

Use direct_debit.setup_url to collect bank authority (hosted /api/dd-setup flow). Prefer sending Idempotency-Key — see Idempotency.

Full request/response schemas: Create a provider checkout.

3. Confirm enrolment

After DDA completion and student declarations:

POST /v1/provider-checkouts/{checkoutId}/confirm

Include checkout.checkout_token, opportunity_id, dda_id, payment details, and the three declaration booleans set to true.

4. Retrieve status

GET /v1/provider-checkouts/{checkoutId}

Next