Skip to content

Register a pending live merchant without issuing keys or moving funds

POST
/v1/live/signups
curl --request POST \
--url https://api.xaalis.org/v1/live/signups \
--header 'Content-Type: application/json' \
--header 'idempotency-key: example' \
--data '{ "email": "hello@example.com", "business_name": "example", "terms_version": "example", "sandbox_merchant_id": "example" }'
idempotency-key
required

Required retry-safe key; reuse it only for the same operation and request body

string
>= 1 characters <= 255 characters

Required retry-safe key; reuse it only for the same operation and request body

Media typeapplication/json
object
email
required
string format: email
<= 254 characters
business_name
required
string
>= 2 characters <= 120 characters
terms_version

Version explicitly accepted by the caller; optional until legal publication

string
<= 100 characters /^merchant-terms@[0-9]+(?:\.[0-9]+){1,2}(?:-[A-Za-z0-9.-]+)?$/
sandbox_merchant_id

Unverified hint only; does not link accounts or copy settings

string
<= 100 characters /^mer_[A-Za-z0-9]+$/
Examplegenerated
{
"email": "hello@example.com",
"business_name": "example",
"terms_version": "example",
"sandbox_merchant_id": "example"
}

Pending registration and sign-in email accepted by the mail transport

Media typeapplication/json
object
object
required
string
Allowed values: live_signup
merchant
required
object
object
required
string
Allowed values: merchant
id
required
string
name
required
string
email
required
string
status
required
string
Allowed values: pending_review
login_email_sent
required
boolean
Example
{
"object": "live_signup",
"merchant": {
"object": "merchant",
"status": "pending_review"
},
"login_email_sent": true
}
RateLimit-Policy
string

Present after quota evaluation: structured list of policy labels with q=request allowance and w=rolling-window seconds (IETF draft-ietf-httpapi-ratelimit-headers-11).

RateLimit
string

Present after quota evaluation: matching policy labels with r=remaining requests and t=effective-window seconds. Snapshot, not a guarantee; omitted when no quota was evaluated.

Invalid registration

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}
RateLimit-Policy
string

Present after quota evaluation: structured list of policy labels with q=request allowance and w=rolling-window seconds (IETF draft-ietf-httpapi-ratelimit-headers-11).

RateLimit
string

Present after quota evaluation: matching policy labels with r=remaining requests and t=effective-window seconds. Snapshot, not a guarantee; omitted when no quota was evaluated.

Changed idempotency request or an existing email registration

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}
RateLimit-Policy
string

Present after quota evaluation: structured list of policy labels with q=request allowance and w=rolling-window seconds (IETF draft-ietf-httpapi-ratelimit-headers-11).

RateLimit
string

Present after quota evaluation: matching policy labels with r=remaining requests and t=effective-window seconds. Snapshot, not a guarantee; omitted when no quota was evaluated.

Signup quota; retry after the indicated delay

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}
RateLimit-Policy
string

Present after quota evaluation: structured list of policy labels with q=request allowance and w=rolling-window seconds (IETF draft-ietf-httpapi-ratelimit-headers-11).

RateLimit
string

Present after quota evaluation: matching policy labels with r=remaining requests and t=effective-window seconds. Snapshot, not a guarantee; omitted when no quota was evaluated.

Retry-After
string

Minimum seconds to wait before retrying. Takes precedence over the quota snapshot.

Sign-in unavailable or delivery unconfirmed; retry the same idempotency key

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}
RateLimit-Policy
string

Present after quota evaluation: structured list of policy labels with q=request allowance and w=rolling-window seconds (IETF draft-ietf-httpapi-ratelimit-headers-11).

RateLimit
string

Present after quota evaluation: matching policy labels with r=remaining requests and t=effective-window seconds. Snapshot, not a guarantee; omitted when no quota was evaluated.