Skip to content

CustomerRegistration

Endpoint

POST /customer/registration

Description

Creates a new customer profile in the LEAD lifecycle stage.

The server accepts public registration fields and resets manager/KYC/AML/internal fields to safe defaults.

registered: true confirms that the record was created. It does not mean that the CRM lifecycle is REGISTERED. Every public registration starts with lifecycle_stage = 0 (LEAD). A manager or workflow must explicitly promote the lead to REGISTERED = 1.

The brand is resolved from the HTTP request host. A body brand value is used only as a fallback when the request context permits it.

Registration also resolves marketing attribution. A normal brand landing page is matched automatically; an external landing can provide an attribution object; a mobile application can provide an installation_id. See Marketing Attribution API.

Request

{
  "email": "[email protected]",
  "password": "strong-password",
  "first_name": "John",
  "last_name": "Smith",
  "phone": "+35700000000",
  "brand": "default",
  "preferred_language": "en",
  "timezone": "Asia/Nicosia",
  "marketing_allowed": 1
}

External landing attribution

{
  "email": "[email protected]",
  "password": "strong-password",
  "first_name": "John",
  "attribution": {
    "affiliate": "AFF1024",
    "campaign": "FB_CY_01",
    "utm_source": "partner-landing",
    "utm_medium": "affiliate",
    "sub_id": "creative-7"
  }
}

Mobile registration

{
  "email": "[email protected]",
  "password": "strong-password",
  "installation_id": "4c0b68c8-3c90-46dc-a0dc-e092f879dd80"
}

Response

{
  "registered": true,
  "customer": {
    "customer_id": 1,
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Smith",
    "full_name": "John Smith",
    "status": 0,
    "lifecycle_stage": 0,
    "enable": 1,
    "deposit_allowed": 1,
    "withdrawal_allowed": 1,
    "brand": "default",
    "created_time": 1777600000,
    "updated_time": 1777600000
  }
}

Errors

HTTP Error Description
400 INVALID_DATA Invalid request body
404 BRAND_NOT_FOUND Request host and fallback brand do not resolve to an active brand
409 DUPLICATE_RECORD Email is already registered

Lifecycle

Public registration always creates LEAD = 0. Conversion to REGISTERED = 1 is explicit:

  • a CRM manager updates lifecycle_stage with MngUpdateCustomer; or
  • a workflow executes customer.set_lifecycle_stage.

The response field registered describes the registration operation and must not be used as the customer's CRM lifecycle value.