Skip to main content
POST
cURL

Overview

Creates a Parchment login for a user in your organization and assigns roles. When access_roles contains provider or rx_queue_manager, Parchment also verifies the HPI-I against the HI Service and creates a provider record. A 201 is not always a complete success. Read code. Every USER_CREATED_PROVIDER_* code means the login and roles exist but there is no provider record, and the user cannot create prescriptions. The response returns user_id only. There is no partner_user_id. Map user_id to your own record.

Request Example

Response Examples

Created (201)

Created, No Provider Record (201)

Email Already Registered (409)

Validation Error (422)

Unauthorized (401)

Result Codes

A user with rx_queue_manager but not provider always returns USER_CREATED, even when the provider record was not created. Read the user back and check provider_details is not null.

Response Fields

Request Fields

Status Codes

Notes

  • The HI Service lookup sends hpii_number, given_name, family_name, date_of_birth and sex. All five must match the record held by Services Australia.
  • Parchment never returns the HI Service reason or the HPI-I number. Quote the requestId to Parchment support.
  • Patient operations are not affected by a missing provider record. Patients belong to the organization.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-organization-secret
string
required

Organization secret for authentication - provided by Parchment

Path Parameters

organization_id
string<uuid>
required

Organization ID

Body

application/json

User data to add to Parchment

User information to be created

given_name
string
required

User's given name

Minimum string length: 1
Example:

"Darlene"

family_name
string
required

User's family name

Minimum string length: 1
Example:

"Cameron"

email
string<email>
required

User's email address

Example:

"darlene.cameron@example.com"

date_of_birth
string<date>

User's date of birth in YYYY-MM-DD format (required if role includes 'provider' or 'rx_queue_manager')

Example:

"1969-10-02"

sex
enum<string>

User's sex — M (male), F (female), I (indeterminate), N (not stated). Required if access_roles includes 'provider' or 'rx_queue_manager'.

Available options:
M,
F,
I,
N
Example:

"F"

phone
string

Contact phone number. Not validated by the API — send an Australian number (04xxxxxxxx, 0[2378]xxxxxxxx, or +61 prefixed) so it prints correctly on prescriptions.

Example:

"0412345678"

access_roles
enum<string>[]

Roles for the user. Omitted: the user gets member only. provider and rx_queue_manager require date_of_birth, sex, hpii_number and qualifications; provider also requires prescriber_type, and prescriber_number unless prescriber_type is T.

Available options:
admin,
provider,
receptionist,
rx_reader,
rx_queue_manager
Example:
hpii_number
string

Healthcare Provider Individual Identifier, 16 digits with a valid check digit. Required when access_roles includes provider or rx_queue_manager. Verified against the HI Service together with given_name, family_name, date_of_birth and sex.

Example:

"8003614900029560"

prescriber_type
enum<string>

Prescriber type — M (medical practitioner), E (optometrist), U (nurse), F (midwife), D (dentist), V (veterinarian), T (podiatrist), C (pharmacist). Required if access_roles includes 'provider'.

Available options:
M,
E,
U,
F,
D,
V,
T,
C
Example:

"M"

prescriber_number
string

Prescriber number (required if role includes 'provider' and prescriber_type is not 'T')

Maximum string length: 10
Example:

"1234567"

qualifications
string

Professional qualifications. Required when access_roles includes provider or rx_queue_manager.

Example:

"MBBS, FRACGP"

title
string

Professional title

Example:

"Dr"

provider_number
string

Medicare provider number

Maximum string length: 10
Example:

"123456789"

ahpra_number
string

AHPRA registration number: a 3-letter profession prefix followed by 10 digits (13 characters).

Pattern: ^[A-Z]{3}[0-9]{10}$
Example:

"MED0000932846"

hospital_provider_number
string

Hospital provider number

Example:

"H123456"

erx_entity_id
string

eRx Entity ID — exactly 5 alphanumeric characters.

Required string length: 5
Pattern: ^[A-Za-z0-9]{5}$
Example:

"AB12C"

Response

User created. Read the code field — a provider record may not have been created.

success
boolean
required
Example:

true

statusCode
integer
required
Example:

201

message
string
required
Example:

"User created successfully"

code
enum<string>
required

Result code. USER_CREATED means the provider record exists. Any USER_CREATED_PROVIDER_* code means there is no provider record and the user cannot prescribe.

Available options:
USER_CREATED,
USER_CREATED_PROVIDER_NOT_FOUND,
USER_CREATED_PROVIDER_SEARCH_FAILED,
USER_CREATED_PROVIDER_ALREADY_EXISTS,
USER_CREATED_PROVIDER_INVALID_PARAMS,
USER_CREATED_PROVIDER_RESOURCE_NOT_FOUND,
USER_CREATED_PROVIDER_FAILED,
USER_CREATED_ROLES_FAILED
Example:

"USER_CREATED"

data
object
required

User creation/update response data

timestamp
string<date-time>
required
Example:

"2025-09-22T20:31:54.558Z"

requestId
string
required
Example:

"1-68d1b225-2a98752c7b2da3fa489267fc"