Register Store
Register a new store account. An OTP will be sent to the provided email for verification.
Endpoint
Authentication
Not required (public endpoint)
Request Body
{
"email": "store@example.com",
"name": "My Store",
"description": "Store description",
"business_address": "123 Main St",
"contact_phone": "+994501234567",
"preferred_language": "az",
"password": "SecurePass123!",
"confirm_password": "SecurePass123!"
}
Parameters
| Field | Type | Required | Description | Validation |
|---|---|---|---|---|
email |
string | Yes | Store's email address | Valid email format |
name |
string | Yes | Store name | Not empty |
description |
string | No | Store description | - |
business_address |
string | No | Business address | - |
contact_phone |
string | No | Contact phone number | Valid phone format (if provided) |
preferred_language |
string | Yes | Preferred language code | One of: "az", "en", "es", "de" |
password |
string | Yes | Store password | Min 8 chars, uppercase, lowercase, number, symbol |
confirm_password |
string | Yes | Password confirmation | Must match password |
Response
Success (200 OK)
An OTP code is sent to the provided email address. The store must verify the OTP using the Check OTP Store endpoint.
Error Responses
Email Already Exists (404)
Password Mismatch (400)
Example Request
curl -X POST "https://api.luxmart.site/v1/accounts/register/store/" \
-H "Content-Type: application/json" \
-d '{
"email": "store@example.com",
"name": "My Store",
"description": "Store description",
"business_address": "123 Main St",
"contact_phone": "+994501234567",
"preferred_language": "az",
"password": "SecurePass123!",
"confirm_password": "SecurePass123!"
}'
Notes
- The store account is created with
is_active: falseuntil OTP verification - OTP is sent asynchronously via email
- Password is hashed before storage
- Store role is automatically set to "3" (Store)