Verify an individual (data form)
Use POST /v5/forms with type: "individual" and subType: "data" to create a hosted form where the customer fills in their personal details, address, identity documents, and accepts the consent declaration. The response returns a formUrl you can email or redirect them to.
Use the eKYC flow instead if you only want a selfie + ID-document capture without a data form.
Pre-fillable fields
Anything you include in the request body is pre-filled in the hosted form. Pre-filling reduces friction and avoids the customer mistyping data you already have.
- Name
userId- Type
- string
- Description
Optional. Your internal user identifier.
- Name
onBehalfUid- Type
- string
- Description
Optional. The UID of an
onBehalfaccount if submitting on behalf of another organisation.
- Name
tags- Type
- array
- Description
Optional. Array of tag labels to attach to the verification for filtering and reporting. Use
>>>(with surrounding spaces) to express hierarchy (e.g.tier-1 >>> gold). Up to 50 tags, each up to 500 characters. Labels referenced here are auto-registered into your tag registry on submission.
- Name
country- Type
- string
- Description
ISO3 Country code. Currently documented:
AUS,NZL. See Countries.
- Name
type- Type
- string
- Description
Always
"individual"for this flow.
- Name
subType- Type
- string
- Description
Always
"data"for this flow.
- Name
firstName- Type
- string
- Description
Optional pre-fill.
- Name
middleName- Type
- string
- Description
Optional pre-fill.
- Name
lastName- Type
- string
- Description
Optional pre-fill.
- Name
email- Type
- string
- Description
Optional pre-fill. The
formUrlreturned in the response is what you share with the customer; bronID does not email the link automatically.
- Name
dateOfBirth- Type
- string
- Description
Optional pre-fill. Accepts
YYYY-MM-DD(e.g.1980-10-20) orDD/MM/YYYY(e.g.20/10/1980). Normalised toYYYY-MM-DDserver-side.
The fields the customer sees on the hosted form mirror the KYC API schema. The identity-document validations the customer's entries are checked against — driver-licence number formats, card-number formats, passport-number patterns, Medicare checksum — are documented on the Identity documents (AUS) and Identity documents (NZL) pages.
Example — AUS
Pre-fill what you already know; the customer completes the rest in the hosted form.
Customer is Australian; you know their name and email but not their address or ID documents.
Request
curl https://dev.bronid.com/v5/forms \
--user "XL7ULiU6B4QE9Y2iWFZnhtMDKFN2:api_sec_NJAtNcRtUrPlf7xYDrMNP9URI-ZfN314" \
--header "Content-Type: application/json" \
--data '{
"userId": "user-aus-001",
"country": "AUS",
"type": "individual",
"subType": "data",
"firstName": "Jane",
"lastName": "Citizen",
"email": "jane@example.com",
"tags": ["region:apac", "tier-1 >>> gold"]
}'
Response
{
"timestamp": "2026-05-08T04:34:37.668Z",
"serviceUid": "XL7ULiU6B4QE9Y2iWFZnhtMDKFN2",
"trace": "1LuRUfAcaskosWc07nARZ",
"path": "/v5/forms",
"pathParams": {},
"statusCode": 200,
"message": "ID form created successfully",
"help": null,
"status": "success",
"data": {
"id": "1LuRUfAcaskosWc07nARZ",
"formUrl": "https://forms-preview.bronid.com/ekyc-start/1LuRUfAcaskosWc07nARZ",
"name": "Jane Citizen",
"help": null
},
"error": null
}
Example — NZL
The same pre-fill pattern works for New Zealand. The customer's address fields will not include state (NZL has no per-state subdivision).
Customer is a New Zealander; you only have their name and email so far.
Request
curl https://dev.bronid.com/v5/forms \
--user "XL7ULiU6B4QE9Y2iWFZnhtMDKFN2:api_sec_NJAtNcRtUrPlf7xYDrMNP9URI-ZfN314" \
--header "Content-Type: application/json" \
--data '{
"userId": "user-nzl-001",
"country": "NZL",
"type": "individual",
"subType": "data",
"firstName": "Jane",
"lastName": "Citizen",
"email": "jane@example.com",
"tags": ["region:apac", "tier-1 >>> gold"]
}'
Form lifecycle
- Create form.
POST /v5/formsreturns aformUrl. - Share the form. Email the link, redirect the user, or embed it in your app.
- Customer completes the form. They fill any fields you didn't pre-fill, capture ID documents, accept the consent declaration, and submit.
- Verification starts. bronID processes the submission against the same pipeline as the KYC API.
- Webhook notification. You receive status updates via Webhooks.
What's next?
- eKYC-only alternative (no data form): Verify an individual (eKYC)
- Restoring an expired form: Unlock form
- Test outcomes for development: Test values
- Verification lifecycle: Verification statuses