API для компаний
Ваш клиент выдаёт доступ вашей компании, а в вашем приложении появляется кнопка «Открыть». Ключи не ходят по чатам, и каждое открытие подписано именем сотрудника, который нажал.
Как это работает
- В вашем интерфейсе клиент говорит, что нужно заехать. Сначала вы уточняете две вещи: шлагбаум открывается звонком с его номера и его телефон остаётся в сети. Если на шлагбауме стоит контроллер Entrixy, телефон не нужен вовсе.
- Вы создаёте обращение и показываете его QR-код. Клиент сканирует, ставит приложение, добавляет шлагбаум и выдаёт доступ — ваша компания уже ждёт в списке.
- Вы открываете через API, называя исполнителя. Клиент видит открытие в журнале с этим именем и в любой момент забирает доступ одним нажатием.
Аутентификация
There are two ways in, and the difference is what the client sees.
Signature bound to your domain
You publish a public key on your own domain and sign every call with the private one. We take the key from the domain itself, so the right to call and the right to be shown under that domain are the same thing: the file disappears, the domain moves or changes hands — the calls stop within a day. There is no one-off "verified" tick to outlive reality.
https://<your domain>/.well-known/entrixy.json
{ "key": "<Ed25519 public key, 32 bytes, base64>" }
Then each request carries four headers:
X-Entrixy-Org: your-domain.com X-Entrixy-Ts: 1750000000 // unix seconds, ±300 s X-Entrixy-Nonce: 0011…ff // 32 hex, used once X-Entrixy-Sig: <base64> // Ed25519 over the base string base = "<domain>.<ts>.<nonce>." + sha256(raw request body)
A repeated nonce is refused, and so is a body that does not match the signature. This is the mode where the client sees your domain and your logo.
A domain written in national characters goes into the header and into the base string in its punycode form — xn--… — the same form it takes in the address of the key file. The client is still shown the readable spelling.
A secret, if you have no domain
Register, issue a secret in the cabinet and put it in the body. Your calls work the same, but the client is shown only the name you wrote for yourself, with a note that the domain is not confirmed — no logo, no domain. A company that has set a domain can no longer use a secret: otherwise a leaked secret would speak in the name of a confirmed one.
POST https://entrixy.com/api/company.php?a=<action>
Content-Type: application/json
{ "org_id": 17, "secret": "…", … }
Создание обращения
POST /api/company.php?a=request
{ "org_id": 17, "secret": "…", "ref": "order-517", "ttl_hours": 72 }
→ { "code": "rrGzNweV31rkHV6Q",
"url": "https://entrixy.com/c/rrGzNweV31rkHV6Q",
"expires_in_hours": 72 }
ref — ваш номер заявки, он возвращается в состоянии. Положите url в QR-код и покажите клиенту.
Состояние обращения
POST /api/company.php?a=status
{ "org_id": 17, "secret": "…", "code": "rrGzNweV31rkHV6Q" }
→ { "state": "issued", "key_ref": 4821, "ref": "order-517",
"claimed_at": "2026-09-09 12:20:11", "issued_at": "2026-09-09 12:24:03" }
| Состояние | Meaning |
|---|---|
new | QR-код создан, клиент ещё не пришёл |
claimed | клиент открыл приложение — он в пути |
issued | доступ выдан; key_ref — им и открываете |
revoked | клиент забрал доступ |
expired | срок обращения истёк раньше, чем клиент пришёл |
Открытие
POST /api/company.php?a=open
{ "org_id": 17, "secret": "…", "key_ref": 4821,
"number_id": 93, "actor": "Ivan P., shift 12" }
→ { "ok": 1 }
actor обязателен: именно его клиент видит в журнале. Годится всё, что опознаёт сотрудника у вас — имя, табельный номер, смена. Без него вызов отклоняется.
| Ответ | Meaning |
|---|---|
403 forbidden | ключ не ваш или объекта в нём нет |
403 revoked | клиент забрал доступ |
403 expired | срок жизни ключа истёк |
400 actor_required | исполнитель не назван |
429 rate_limit | слишком много открытий по одному ключу в минуту |
Ваша карточка в приложении
При регистрации компании пришлите название и квадратный логотип. Клиент видит их на странице, куда попадает по QR, на экране согласия и рядом с каждой строкой журнала — так понятно, кого он пускает. Логотип отдаём мы сами; картинки с чужих серверов не подтягиваем.
Как начать
Зарегистрируйте компанию в своём аккаунте: заявка, а дальше секрет, адрес обратной связи, логотип и список обращений — всё в кабинете компании. Заявки смотрим руками: клиент доверяет той компании, которую мы пустили в список.