GAR • API & Интеграции

Подключайтесь к экосистеме GAR за часы

OAuth/OIDC для единого входа, вебхуки для событий документов и SCIM-провижининг пользователей. Готовые SDK и демо-консоль. Всё — в нежном фирменном стиле.

OIDC / OAuth 2.0Webhooks (HMAC)SCIM v2SDK
Quickstart

Три сценария за 10 минут

Готовые рецепты интеграции на продвинутые кейсы.

Guide

1) Проверка документа по API

Сервер-к-серверу. Получаете статус документа и основные поля.

curl -s https://api.pawid.ru/v1/verify?id=PAW-9X3M-7K2Q \
  -H "Authorization: Bearer <SANDBOX_TOKEN>"

2) Встроить кнопки SSO

Отдаёте пользователя в SSO Gateway и получаете id_token.

https://accounts.pawid.ru/oauth/authorize?
  client_id=YOUR_ID&redirect_uri=https://app.example.com/callback&
  response_type=code&scope=openid%20email%20profile

3) Получать вебхуки о статусах

Мы POST’им события: verified/revoked/created и т.д.

POST https://your.app/webhooks/gar
Headers: X-GAR-Signature: t=1699999999,s=HMAC_SHA256...
Body: { "type":"document.verified","data":{"id":"PAW-9X3M-7K2Q"} }
SSO / OAuth

OAuth 2.0 + OpenID Connect

Единый вход через GAR Accounts и внешних провайдеров (Google/Apple/Telegram/VK/Яндекс).

OIDC

Эндпоинты

  • Issuer: https://accounts.pawid.ru
  • Authorize: /oauth/authorize
  • Token: /oauth/token
  • JWKs: /.well-known/jwks.json
  • UserInfo: /oauth/userinfo
# 1) Получить code через /oauth/authorize (редирект пользователя)
# 2) Обменять на токены:
curl -s https://accounts.pawid.ru/oauth/token \
  -d grant_type=authorization_code \
  -d code=RECEIVED_CODE \
  -d redirect_uri=https://app.example.com/callback \
  -u YOUR_CLIENT_ID:YOUR_CLIENT_SECRET

Провайдеры

Поддерживаем линкование входа пользователя к провайдерам (через SSO Gateway): Google, Apple, Telegram, VK, Яндекс.

Google
client_id / secret
Apple
team_id / key_id / p8
Telegram
bot_token / domain
VK
app_id / secure_key
Яндекс
client_id / secret
SSO Org
OIDC/SAML federation

Реальные значения настраиваются в кабинете разработчика. Для тестов используйте Sandbox-клиент.

Webhooks

События в реальном времени

Подпись HMAC-SHA256 в заголовке X-GAR-Signature. Рекомендуем подтверждать 2xx.

HMAC

Типы событий

  • document.verified — документ подтверждён
  • document.revoked — документ отозван / подозрение на фрод
  • pawid.created — выдан новый PAWID
  • account.login — вход пользователя (опционально)
  • sso.linked — привязка внешнего провайдера
POST https://your.app/webhooks/gar
X-GAR-Signature: t=1700000000,s=HMAC_SHA256_HEX
{
  "id":"evt_123",
  "type":"document.verified",
  "created":1700000000,
  "data":{"id":"PAW-9X3M-7K2Q"}
}

Проверка подписи

// Node 18+ (crypto)
import { createHmac } from 'crypto';
function verify(sigHeader, raw, secret){
  const {t,s}=Object.fromEntries(sigHeader.split(',').map(x=>x.split('=')));
  const h=createHmac('sha256', secret).update(t+'.'+raw).digest('hex');
  return h===s;
}
SCIM

Автопровижининг пользователей

Поддержка SCIM v2 для организаций: Users и Groups.

Provisioning

Эндпоинты

  • POST /scim/v2/Users
  • PATCH /scim/v2/Users/{id}
  • GET /scim/v2/Users?filter=...
  • POST /scim/v2/Groups
curl -X POST https://api.pawid.ru/scim/v2/Users \
 -H "Authorization: Bearer <SCIM_TOKEN>" \
 -H "Content-Type: application/scim+json" \
 -d '{"userName":"ivan@org.ru","name":{"givenName":"Ivan","familyName":"Petrov"}}'

Роли и атрибуты

  • role: owner | breeder | cattery | club | assoc | agent
  • scopes: read:verify, write:docs, admin:org
  • entitlements: features: { sso, webhooks, api, scim }

Наборы прав согласуются при подключении организации.

SDK

Готовые библиотеки

Подключайтесь быстрее с официальными SDK (исходники на GitHub).

Open Source

JavaScript

Node/Browser

Скоро

Python

requests/fastapi

Скоро

PHP

Guzzle

Скоро

1C

HTTP-сервис

Скоро
Sandbox

Получите ключи и попробуйте API

Запрос на доступ + мини-консоль для тестового запроса.

Free

Мини-консоль

{ "status":"verified","id":"PAW-9X3M-7K2Q","hash":"e3b0c4..." }

В демо-запросе используем локальные данные. Для реального вызова нужен доступ к API и CORS-разрешение.

FAQ

Частые вопросы

Справка
Какие лимиты?
Sandbox: 60 req/min, 10k/сутки. Pro: 600 req/min. Подробнее в договоре.
Как подписываются вебхуки?
HMAC-SHA256 над строкой t + '.' + raw_body секретом вашего endpoint.
Можно ли без CORS?
Для браузера нужен CORS. Сервер-к-серверу — без ограничений.
Что с персональными данными?
По умолчанию маскированы. Полный доступ — по ролям и правам.
Где статус сервиса?
Публичная страница статуса: /status (демо).
Есть тестовые данные?
Да: PAW-9X3M-7K2Q, PED-2025-001234, MET-778899.
Начните сегодня

Интегрируйтесь с GAR API быстрее

Подайте заявку на Sandbox, подключите SSO и вебхуки — и запуститесь за пару спринтов.