Skip to content

Register the authenticated Supabase identity as a mother account

POST
/mother/accounts
curl --request POST \
--url https://example.com/mother/accounts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "expectedProfileRevision": 0, "expectedAddressRevision": 0, "fullName": "example", "birthDate": "2026-04-15", "address": { "postalCode": "example", "roadAddress": "example", "detailAddress": "example" }, "consentAcceptances": [ { "policyKey": "example", "versionLabel": "example" } ] }'

Native Supabase Auth signup, identity linking, and contact verification happen before this operation. The provider is re-read from the bearer session; this API never accepts credentials, OTP material, provider tokens, actor role, member id, or branch scope in the request body.

Idempotency-Key
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
Media typeapplication/json
RegisterMotherAccountRequest
object
expectedProfileRevision
required
0
expectedAddressRevision
required
0
fullName
required
string
>= 1 characters <= 100 characters /\S/
birthDate
required
string format: date
address
required
object
postalCode
required
string
/^[0-9]{5}$/
roadAddress
required
string
>= 1 characters <= 300 characters /\S/
detailAddress
required
One of:
string
>= 1 characters <= 300 characters /\S/
key
additional properties
consentAcceptances
required
Array<object>
>= 1 items unique items
object
policyKey
required
string
>= 1 characters <= 120 characters /^[a-z][a-z0-9_.:-]*$/
versionLabel
required
string
>= 1 characters <= 120 characters /^[a-z0-9][a-z0-9_.:-]*$/
key
additional properties
key
additional properties

Exact replay returns the original authoritative account profile

Media typeapplication/json
object
motherAccountId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
motherProfileId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
accountLifecycle
required
string
Allowed values: active withdrawal_pending withdrawn
profileCompleteness
required
string
Allowed values: incomplete complete
profileRevision
required
integer
>= 1
addressRevision
required
integer
>= 1
fullName
required
string
>= 1 characters <= 100 characters /\S/
birthDate
required
string format: date
email
required
One of:
string format: email
<= 254 characters
primaryPhoneNumber
required
One of:
string
/^\+[1-9][0-9]{7,14}$/
address
required
object
postalCode
required
string
/^[0-9]{5}$/
roadAddress
required
string
>= 1 characters <= 300 characters /\S/
detailAddress
required
One of:
string
>= 1 characters <= 300 characters /\S/
key
additional properties
verifiedContacts
required
object
email
required
One of:
object
receiptId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
normalizedValue
required
string format: email
<= 254 characters
verifiedAt
required
string format: date-time
verificationAuthority
required
Allowed value: supabase_auth
key
additional properties
phone
required
One of:
object
receiptId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
normalizedValue
required
string
/^\+[1-9][0-9]{7,14}$/
verifiedAt
required
string format: date-time
verificationAuthority
required
Allowed value: supabase_auth
key
additional properties
key
additional properties
consentReceipts
required
Array<object>
object
consentReceiptId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
policyKey
required
string
>= 1 characters <= 120 characters /^[a-z][a-z0-9_.:-]*$/
versionLabel
required
string
>= 1 characters <= 120 characters /^[a-z0-9][a-z0-9_.:-]*$/
acceptedAt
required
string format: date-time
captureSource
required
Allowed value: explicit_mother_action
key
additional properties
ownershipRelationship
required
object
state
required
string
Allowed values: pending applied repair_required
relationshipReceiptId
required
One of:
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
appliedAt
required
One of:
string format: date-time
key
additional properties
allowedNextActions
required
Array<string>
unique items
Allowed values: verify_contact accept_current_consent complete_profile update_profile start_reservation request_withdrawal
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
idempotentReplay
required
boolean
idempotentReplay

Active mother account, complete profile, receipts, and ownership relationship created

Media typeapplication/json
object
motherAccountId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
motherProfileId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
accountLifecycle
required
string
Allowed values: active withdrawal_pending withdrawn
profileCompleteness
required
string
Allowed values: incomplete complete
profileRevision
required
integer
>= 1
addressRevision
required
integer
>= 1
fullName
required
string
>= 1 characters <= 100 characters /\S/
birthDate
required
string format: date
email
required
One of:
string format: email
<= 254 characters
primaryPhoneNumber
required
One of:
string
/^\+[1-9][0-9]{7,14}$/
address
required
object
postalCode
required
string
/^[0-9]{5}$/
roadAddress
required
string
>= 1 characters <= 300 characters /\S/
detailAddress
required
One of:
string
>= 1 characters <= 300 characters /\S/
key
additional properties
verifiedContacts
required
object
email
required
One of:
object
receiptId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
normalizedValue
required
string format: email
<= 254 characters
verifiedAt
required
string format: date-time
verificationAuthority
required
Allowed value: supabase_auth
key
additional properties
phone
required
One of:
object
receiptId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
normalizedValue
required
string
/^\+[1-9][0-9]{7,14}$/
verifiedAt
required
string format: date-time
verificationAuthority
required
Allowed value: supabase_auth
key
additional properties
key
additional properties
consentReceipts
required
Array<object>
object
consentReceiptId
required
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
policyKey
required
string
>= 1 characters <= 120 characters /^[a-z][a-z0-9_.:-]*$/
versionLabel
required
string
>= 1 characters <= 120 characters /^[a-z0-9][a-z0-9_.:-]*$/
acceptedAt
required
string format: date-time
captureSource
required
Allowed value: explicit_mother_action
key
additional properties
ownershipRelationship
required
object
state
required
string
Allowed values: pending applied repair_required
relationshipReceiptId
required
One of:
string
>= 1 characters <= 255 characters /^\S(?:.*\S)?$/
appliedAt
required
One of:
string format: date-time
key
additional properties
allowedNextActions
required
Array<string>
unique items
Allowed values: verify_contact accept_current_consent complete_profile update_profile start_reservation request_withdrawal
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
idempotentReplay
required
boolean
idempotentReplay

A valid Supabase bearer session is required

Media typeapplication/json
One of:
object
status
required
Allowed value: 401
code
required
Allowed value: authentication_required
retryable
required
key
additional properties

Authenticated staff or unsupported actor identity cannot create a mother account

Media typeapplication/json
One of:
object
status
required
Allowed value: 401
code
required
Allowed value: authentication_required
retryable
required
key
additional properties

Account identity or idempotency facts conflict without exposing another account

Media typeapplication/json
One of:
object
status
required
Allowed value: 401
code
required
Allowed value: authentication_required
retryable
required
key
additional properties

Profile input is invalid, contact is unverified, or a consent version is not published

Media typeapplication/json
One of:
object
status
required
Allowed value: 401
code
required
Allowed value: authentication_required
retryable
required
key
additional properties

Account creation did not reach a safe success state; repair reference may be returned

Media typeapplication/json
One of:
object
status
required
Allowed value: 401
code
required
Allowed value: authentication_required
retryable
required
key
additional properties