Apex Motor Claims Group

Referral partner integration guide

For the web developer of an Apex Motor Claims Group referral partner. A partner sends referrals to Apex by website form, by API, or both. Every referral is logged against the partner and returns a lead reference in the APXL format.

This page holds no keys or links. Apex issues each partner its own form link and API keys at onboarding. The form link comes in the credentials email. API keys are given by phone or in person, never by email.

Option A. Website form

No development needed. Your form link is unique to your business, so every claim submitted through it is tagged to you. Use it as a link or button on your website, in claim emails, or embed it in a page. It works on a phone and shows the client their lead reference on submission. Replace YOUR FORM LINK below with the link Apex sent you.

<a href="YOUR FORM LINK">Lodge a claim with Apex Motor Claims Group</a>
<iframe src="YOUR FORM LINK"
        width="100%" height="900" style="border:0"
        title="Apex Motor Claims referral"></iframe>

The form asks for the client's name, mobile, email, accident date, registration, what happened, your reference if they have one, and a tick confirming the person named agrees to the referral. It also asks six optional questions about the accident. They are who was at fault, whether the client has car insurance and what cover, whether the other driver has insurance, whether the car can be driven safely, whether a replacement car is needed and whether there were witnesses. The API takes only the fields listed under Option B. It limits how many referrals one device can send in an hour.

Anyone who has your form link can send a referral, so publish it only where you want clients or your staff to use it. Apex replaces a link on request, and the old one stops working at once. Every referral sent through the form reaches the claims team as a real enquiry, so please do not use it to test.

Option B. API

For referrals sent straight from your claim or policy system. One JSON POST over HTTPS per claim. Authentication is an API key in the x-api-key header.

Endpoint

POST https://apexmotorclaims.com.au/api/public/partner-referral

Headers

content-type: application/json

x-api-key: your API key

Request fields

Send these fields in one JSON object. Other fields are ignored.
FieldRequiredRule
full_nameYesThe client's full name, 120 characters or fewer
mobileYesThe client's Australian mobile or landline, for example 0412 345 678 or 02 9123 4567
accident_dateYesYYYY-MM-DD, a real date, not in the future (Sydney time)
vehicle_regoYesThe client's registration, 10 characters or fewer
broker_referenceYesYour own claim or policy reference, 100 characters or fewer. Used to avoid duplicates
consent_confirmedYesThe JSON value true, confirming the client agreed to the referral
emailNoA valid email address, 100 characters or fewer
at_fault_knownNoYour view of fault, one of claimant_not_at_fault, claimant_at_fault, disputed or unknown. The claimant is your client
descriptionNoHow the accident happened, 2000 characters or fewer

Example request body

{
  "full_name": "Client name",
  "mobile": "0412 345 678",
  "accident_date": "2026-10-01",
  "vehicle_rego": "ABC123",
  "broker_reference": "YOUR-REF-1001",
  "consent_confirmed": true,
  "email": "client@example.com",
  "at_fault_known": "claimant_not_at_fault",
  "description": "Rear ended at the lights."
}

Responses

Every response carries an x-trace-id header. Quote it if you contact Apex about a request.
StatusBodyMeaning
200{"reference":"APXL-2026-00012"}Accepted. The reference is the APXL lead reference, or APXT-... for the test key. Also answered for a repeated broker_reference
400{"errors":[{"field":"mobile","reason":"..."}]}A field failed validation. Every field that failed is listed with the reason
401{"error":"The API key is missing or not recognised."}No key, an unknown key, or a revoked key
403{"error":"..."}The request came from a browser, or a live key was used before your referral agreement with Apex is active
413{"error":"..."}The body is larger than 16 KB
429{"error":"Rate limit reached. Retry later."}Rate limit reached. The Retry-After header gives the seconds to wait
500, 503{"error":"..."}Apex could not take the referral just now. Retry later with the same broker_reference
{
  "errors": [
    { "field": "accident_date", "reason": "Must not be in the future." },
    { "field": "consent_confirmed", "reason": "Must be true, confirming the client agreed to the referral. Do not send a referral without the client's consent." }
  ]
}

Rate limit

Each API key may send up to 60 requests an hour. Every request with a recognised key counts, refused ones included, and the hour starts with the first request. Past the limit the answer is 429 with a Retry-After header in seconds.

Avoiding duplicates

Give each claim its own broker_reference. A referral with a broker_reference you already sent in the last 30 days creates nothing and answers 200 with the first referral's APXL reference. So if a request times out, send it again with the same broker_reference.

Test key

Apex issues a test key, starting apx_test_, with your live key, starting apx_live_. A referral sent with the test key is checked exactly like a live one and answers a reference in the form APXT-YYYYMMDD-XXXXXX, but nothing is created at Apex. The test key works before your referral agreement is active. Duplicates are not checked for test referrals, so each answers a new APXT reference. Your first valid test referral tells Apex you are ready to go live. The live key is accepted once your referral agreement with Apex is active, and answers 403 before then.

Keep keys on your server

API keys stay server side. Never put a key in a web page, a mobile app, a URL or an email, and keep it out of your logs. The endpoint sends no CORS headers and answers 403 to any request from a browser. Apex keeps only a fingerprint of each key, so a lost key cannot be shown again. Ask Apex to revoke a key you no longer trust. A revoked key answers 401 at once, and a new key replaces it.

Examples

Each example sends one referral. Set APEX_API_KEY in your server's environment with the key Apex gave you, starting with the test key.

curl

curl -X POST "https://apexmotorclaims.com.au/api/public/partner-referral" \
  -H "content-type: application/json" \
  -H "x-api-key: $APEX_API_KEY" \
  --data '{"full_name":"Client name","mobile":"0412 345 678","accident_date":"2026-10-01","vehicle_rego":"ABC123","broker_reference":"YOUR-REF-1001","consent_confirmed":true}'

JavaScript (Node fetch)

// Node 18 or later. The key is read from the server's environment, never from a web page.
const response = await fetch("https://apexmotorclaims.com.au/api/public/partner-referral", {
  method: "POST",
  headers: {
    "content-type": "application/json",
    "x-api-key": process.env.APEX_API_KEY,
  },
  body: JSON.stringify({
    full_name: "Client name",
    mobile: "0412 345 678",
    accident_date: "2026-10-01",
    vehicle_rego: "ABC123",
    broker_reference: "YOUR-REF-1001",
    consent_confirmed: true,
  }),
});
const answer = await response.json();
if (response.status === 200) console.log("Apex reference", answer.reference);
else if (response.status === 400) console.log("Fix these fields", answer.errors);
else if (response.status === 429) console.log("Retry after", response.headers.get("retry-after"), "seconds");
else console.log("Not accepted", response.status, response.headers.get("x-trace-id"));

PHP

<?php
// The key is read from the server's environment, never from a web page.
$referral = [
    'full_name' => 'Client name',
    'mobile' => '0412 345 678',
    'accident_date' => '2026-10-01',
    'vehicle_rego' => 'ABC123',
    'broker_reference' => 'YOUR-REF-1001',
    'consent_confirmed' => true,
];
$ch = curl_init('https://apexmotorclaims.com.au/api/public/partner-referral');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'content-type: application/json',
        'x-api-key: ' . getenv('APEX_API_KEY'),
    ],
    CURLOPT_POSTFIELDS => json_encode($referral),
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
$answer = json_decode($body, true);
if ($status === 200) {
    echo 'Apex reference ' . $answer['reference'];
}

Privacy and consent

Confirm the client's consent before sending any details, and set consent_confirmed to true only when they have agreed to the referral. A referral without it is refused. Personal information is handled under the Privacy Act 1988 (Cth). Send only the fields listed here, and never put client details in a web address.

Who to contact

For help with the set up, or to replace a form link or revoke a key, email info@apexmotorclaims.com.au.