Boca Raton Partner API

Create User

POST
/v1/users
X-Api-Key<token>

Partner API key issued during onboarding. Must be included in every request alongside the HMAC signature headers.

In: header

Header Parameters

X-Request-Timestamp*string

RFC 3339 timestamp used in the request signing payload. Requests outside the allowed clock-skew window are rejected.

Formatdate-time
X-Request-Signature*string

HMAC-SHA256 signature over the canonical request string. See the Request Signing section above for the format.

Idempotency-Key?string

Client-generated UUID to ensure at-most-once processing within a 24-hour window.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://partner-api.bocaraton.com/v1/users" \  -H "X-Request-Timestamp: 2026-03-13T12:00:00Z" \  -H "X-Request-Signature: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2" \  -H "Idempotency-Key: 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d" \  -H "Content-Type: application/json" \  -d '{    "externalId": "partner-user-42",    "email": "jane.doe@example.com",    "firstName": "Jane",    "lastName": "Doe",    "dateOfBirth": "1990-05-15",    "addressLine1": "123 Main St",    "addressLine2": "Suite 400",    "city": "Toronto",    "postalCode": "M5V 2T6",    "province": "ON",    "country": "CA",    "occupation": "Software Engineer",    "isCiroAffiliate": false  }'
{
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "externalId": "partner-user-42",
  "status": "pendingCompliance"
}
{
  "error": "bad_request",
  "message": "Request body failed validation",
  "requestId": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "fieldErrors": [
    {
      "field": "email",
      "message": "Must be a valid email address"
    }
  ]
}
{
  "error": "unauthorized",
  "message": "Invalid API key or request signature",
  "requestId": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
{
  "error": "conflict",
  "message": "A user with this externalId already exists",
  "requestId": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
{
  "error": "unprocessable_entity",
  "message": "User must be at least 18 years old",
  "requestId": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
{
  "error": "too_many_requests",
  "message": "Rate limit exceeded. Retry after the duration indicated in the Retry-After header.",
  "requestId": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
{
  "error": "internal_error",
  "message": "An unexpected error occurred. Please retry or contact support with the requestId.",
  "requestId": "req-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}