Пользователи и организации
Клиенты (покупатели) сайта PlatParts: выгрузка в CRM, создание из внешней системы, привязка внешнего ID через meta.
Базовый путь: /api/integrations/v1/users
Права: users.read, users.write, users.write_meta, users.delete
Обозначения: Структура и обозначения
Список
GET /users — users.read
| Query | Описание |
|---|---|
since | updated_at ≥ даты |
per_page | 1–100 (по умолчанию 50) |
cursor | курсор страницы |
curl -sS "https://ВАШ_ДОМЕН/api/integrations/v1/users?per_page=50" \
-H "Authorization: Bearer pp_abc123:ВАШ_СЕКРЕТ" \
-H "Accept: application/json"{
"data": [
{
"id": 10,
"email": "ivan@example.com",
"phone": "+79001234567",
"name": "Иван",
"surname": "Иванов",
"parentname": "Иванович",
"pick_up_point_id": 1,
"is_active": true,
"created_at": "2026-03-01T10:00:00+03:00",
"updated_at": "2026-07-01T12:00:00+03:00"
}
],
"per_page": 50,
"next_cursor": null,
"path": "https://ВАШ_ДОМЕН/api/integrations/v1/users"
}В snapshot нет полей login, timezone, category_id — даже если они заданы при создании.
Один пользователь
GET /users/{id} — users.read404 — пользователь не найден.
Создать
POST /users — users.write → 201
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
name | string≤191 | да | Имя |
password | string≥6 | да | Пароль |
email | условно* | ||
phone | string≤50 | условно* | Телефон |
surname / parentname / login | string | нет | ФИО / логин |
timezone | string≤64 | нет | Часовой пояс |
is_active | bool | нет | По умолчанию true |
pick_up_point_id | int|null | нет | Точка выдачи |
category_id | int|null | нет | Категория пользователя |
*Нужен хотя бы один из email или phone — иначе 422.
curl -sS -X POST "https://ВАШ_ДОМЕН/api/integrations/v1/users" \
-H "Authorization: Bearer pp_abc123:ВАШ_СЕКРЕТ" \
-H "Content-Type: application/json" \
-d '{
"name": "Иван",
"surname": "Иванов",
"email": "ivan@example.com",
"phone": "+79001234567",
"password": "Secret123!",
"is_active": true,
"pick_up_point_id": 1
}'{
"ok": true,
"user": {
"id": 10,
"email": "ivan@example.com",
"phone": "+79001234567",
"name": "Иван",
"surname": "Иванов",
"parentname": null,
"pick_up_point_id": 1,
"is_active": true,
"created_at": "2026-07-21T12:00:00+03:00",
"updated_at": "2026-07-21T12:00:00+03:00"
}
}Изменить / удалить / meta
| Метод | URL | Право | Тело |
|---|---|---|---|
PATCH | /users/{id} | users.write | Те же поля, все optional; password при необходимости |
DELETE | /users/{id} | users.delete | — |
POST | /users/{id}/meta | users.write_meta | { "meta": { "external_id": "CRM-77" } } |
curl -sS -X POST "https://ВАШ_ДОМЕН/api/integrations/v1/users/10/meta" \
-H "Authorization: Bearer pp_abc123:ВАШ_СЕКРЕТ" \
-H "Content-Type: application/json" \
-d '{"meta":{"external_id":"CRM-77"}}'Ответ удаления: { "ok": true, "deleted": true, "user_id": 10 }.
Организации
Организации покупателей доступны только для чтения: GET /organizations требует право organizations.read. Методов создания, изменения и удаления организаций в API нет.
Параметры списка: since (updated_at не раньше указанной даты), per_page (1–100) и cursor.
curl -sS "https://ВАШ_ДОМЕН/api/integrations/v1/organizations?per_page=50" \
-H "Authorization: Bearer pp_abc123:ВАШ_СЕКРЕТ" \
-H "Accept: application/json"{
"data": [
{
"id": 3,
"type": "legal",
"name": "ООО Ромашка",
"inn": "7701234567",
"kpp": "770101001",
"is_active": true,
"updated_at": "2026-06-01T11:30:00+03:00"
}
],
"per_page": 50,
"next_cursor": null
}404 означает, что сущность не найдена; 401 и 403 — проблему с ключом или правом доступа.