Skip to content

Redeem Invitation

POST
/api/onboard/redeem
curl --request POST \
--url https://example.com/api/onboard/redeem \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "token": "example" }'

Exchange a one-shot invitation token for a short-lived onboarding JWT. The JWT scopes every subsequent /api/onboard/* call to the inviting merchant.

POST /api/onboard/redeem
{ "token": "…" }
        

Rate-limited to 10 attempts per IP per 15 minutes.

object
token
required
string
>= 16 characters <= 128 characters
Example generated
{
"token": "example"
}

Token accepted.

Media type application/json

Result of a successful invitation redemption.

object
token
string
nullable
expiresAt
string format: date-time
merchant

Minimal merchant identity surfaced to the prospect.

object
id
string format: uuid
name
string
nullable
email
string
nullable
Example generated
{
"token": "example",
"expiresAt": "2026-04-15T12:00:00Z",
"merchant": {
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example"
},
"email": "example"
}

Token does not match any invitation.

Media type application/json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
key
additional properties
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Invitation is expired, used, or revoked.

Media type application/json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
key
additional properties
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Too many redemption attempts from this IP.

Media type application/json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
key
additional properties
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}