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
- Browse the interactive API Reference
- Understand the error envelope
- Review planned webhooks