Back to blog

Articol test

articol test

Claudiu7 min read
# Backend integration status Generated 2026-05-26 — **79 of 143** endpoints wired (55%). Regenerate any time with `node scripts/integration-status.mjs`. Scans every `api.(...)` call across `hooks/`, `lib/api/` and `providers/` for `/v1/...` paths and compares against `lib/api/openapi.json`. The OpenAPI snapshot must be current (`pnpm api:types` after a backend change), otherwise the doc tracks an outdated contract. ## Coverage by tag | Tag | Wired | Total | % | | -------------------------- | -----: | ------: | ------: | | Admin — app settings | 2 | 2 | 100% | | Admin — audit | 1 | 1 | 100% | | Admin — billing profiles | 1 | 1 | 100% | | Admin — error log | 0 | 4 | 0% | | Admin — invitations | 4 | 4 | 100% | | Admin — invoicing | 10 | 15 | 67% | | Admin — invoicing settings | 5 | 5 | 100% | | Admin — legal | 0 | 2 | 0% | | Admin — mailer settings | 0 | 8 | 0% | | Admin — modules | 3 | 3 | 100% | | Admin — orders | 4 | 4 | 100% | | Admin — payment webhooks | 0 | 2 | 0% | | Admin — payments | 2 | 4 | 50% | | Admin — payments settings | 7 | 8 | 88% | | Admin — roles | 1 | 1 | 100% | | Admin — scheduled tasks | 0 | 1 | 0% | | Admin — users | 8 | 9 | 89% | | App | 0 | 3 | 0% | | App config | 1 | 1 | 100% | | Auth | 6 | 8 | 75% | | Auth — invitations | 3 | 3 | 100% | | Auth — sessions | 3 | 3 | 100% | | Billing profile — me | 2 | 2 | 100% | | GDPR — admin | 0 | 4 | 0% | | GDPR — public download | 0 | 3 | 0% | | GDPR — self | 0 | 7 | 0% | | Health | 0 | 2 | 0% | | Legal | 0 | 4 | 0% | | Orders — me | 2 | 2 | 100% | | Passkeys | 7 | 7 | 100% | | Payments | 3 | 3 | 100% | | Payments — me | 3 | 5 | 60% | | Payments — webhook | 0 | 1 | 0% | | Recovery | 0 | 9 | 0% | | Users — self | 1 | 2 | 50% | | **Total** | **79** | **143** | **55%** | ## Endpoints by tag Legend: ✅ wired · ⬜ not yet. ### Admin — app settings — 2/2 - ✅ `GET /v1/admin/app-settings` - ✅ `PATCH /v1/admin/app-settings` ### Admin — audit — 1/1 - ✅ `GET /v1/admin/audit` ### Admin — billing profiles — 1/1 - ✅ `GET /v1/admin/billing-profiles/{userId}` ### Admin — error log — 0/4 - ⬜ `GET /v1/admin/errors` - ⬜ `DELETE /v1/admin/errors/{id}` - ⬜ `GET /v1/admin/errors/{id}` - ⬜ `GET /v1/admin/errors/stats` ### Admin — invitations — 4/4 - ✅ `GET /v1/admin/invitations` - ✅ `POST /v1/admin/invitations` - ✅ `DELETE /v1/admin/invitations/{id}` - ✅ `POST /v1/admin/invitations/{id}/resend` ### Admin — invoicing — 10/15 - ⬜ `GET /v1/admin/invoicing/api-logs` - ⬜ `GET /v1/admin/invoicing/documents` - ✅ `DELETE /v1/admin/invoicing/documents/{id}` - ⬜ `GET /v1/admin/invoicing/documents/{id}` - ✅ `POST /v1/admin/invoicing/documents/{id}/cancel` - ⬜ `GET /v1/admin/invoicing/documents/{id}/pdf` - ⬜ `POST /v1/admin/invoicing/documents/{id}/reconcile` - ✅ `PUT /v1/admin/invoicing/documents/{id}/restore` - ✅ `POST /v1/admin/invoicing/documents/{id}/reverse` - ✅ `POST /v1/admin/invoicing/documents/{id}/send` - ✅ `GET /v1/admin/invoicing/series` - ✅ `GET /v1/admin/invoicing/tax-rates` - ✅ `POST /v1/admin/invoicing/tax-rates/sync` - ✅ `GET /v1/admin/invoicing/warehouses` - ✅ `POST /v1/admin/invoicing/warehouses/sync` ### Admin — invoicing settings — 5/5 - ✅ `GET /v1/admin/invoicing-settings` - ✅ `PATCH /v1/admin/invoicing-settings` - ✅ `PUT /v1/admin/invoicing-settings/credentials` - ✅ `POST /v1/admin/invoicing-settings/disconnect` - ✅ `POST /v1/admin/invoicing-settings/verify` ### Admin — legal — 0/2 - ⬜ `GET /v1/admin/legal` - ⬜ `GET /v1/admin/legal/{kind}/versions` ### Admin — mailer settings — 0/8 - ⬜ `GET /v1/admin/mailer-settings` - ⬜ `PATCH /v1/admin/mailer-settings` - ⬜ `PUT /v1/admin/mailer-settings/resend-credentials` - ⬜ `GET /v1/admin/mailer-settings/senders` - ⬜ `DELETE /v1/admin/mailer-settings/senders/{purpose}` - ⬜ `PUT /v1/admin/mailer-settings/senders/{purpose}` - ⬜ `PUT /v1/admin/mailer-settings/smtp-credentials` - ⬜ `POST /v1/admin/mailer-settings/test` ### Admin — modules — 3/3 - ✅ `GET /v1/admin/modules` - ✅ `PATCH /v1/admin/modules/{key}` - ✅ `GET /v1/admin/modules/history` ### Admin — orders — 4/4 - ✅ `GET /v1/admin/orders` - ✅ `GET /v1/admin/orders/{id}` - ✅ `PATCH /v1/admin/orders/{id}/cancel` - ✅ `POST /v1/admin/orders/{id}/reverse` ### Admin — payment webhooks — 0/2 - ⬜ `GET /v1/admin/payments/webhooks` - ⬜ `GET /v1/admin/payments/webhooks/{id}` ### Admin — payments — 2/4 - ⬜ `GET /v1/admin/payments/subscriptions` - ⬜ `GET /v1/admin/payments/transactions` - ✅ `POST /v1/admin/payments/transactions/{id}/issue-invoice` - ✅ `POST /v1/admin/payments/transactions/{id}/refund` ### Admin — payments settings — 7/8 - ✅ `GET /v1/admin/payments-settings` - ✅ `PATCH /v1/admin/payments-settings` - ⬜ `GET /v1/admin/payments-settings/connection` - ✅ `PUT /v1/admin/payments-settings/live-keys` - ✅ `POST /v1/admin/payments-settings/live-keys/disconnect` - ✅ `POST /v1/admin/payments-settings/mode` - ✅ `PUT /v1/admin/payments-settings/test-keys` - ✅ `POST /v1/admin/payments-settings/test-keys/disconnect` ### Admin — roles — 1/1 - ✅ `GET /v1/admin/roles` ### Admin — scheduled tasks — 0/1 - ⬜ `GET /v1/admin/scheduled-tasks` ### Admin — users — 8/9 - ✅ `GET /v1/admin/users` - ✅ `DELETE /v1/admin/users/{id}` - ✅ `GET /v1/admin/users/{id}` - ⬜ `PATCH /v1/admin/users/{id}` - ✅ `POST /v1/admin/users/{id}/restore` - ✅ `POST /v1/admin/users/{id}/roles` - ✅ `DELETE /v1/admin/users/{id}/roles/{roleId}` - ✅ `POST /v1/admin/users/{id}/suspend` - ✅ `POST /v1/admin/users/{id}/unsuspend` ### App — 0/3 - ⬜ `GET /v1` - ⬜ `POST /v1/dev/email-test` - ⬜ `GET /v1/dev/throw` ### App config — 1/1 - ✅ `GET /v1/app-config` ### Auth — 6/8 - ⬜ `POST /v1/auth/email/change/request` - ⬜ `POST /v1/auth/email/change/verify` - ✅ `POST /v1/auth/login/request` - ✅ `POST /v1/auth/login/verify` - ✅ `POST /v1/auth/logout` - ✅ `POST /v1/auth/otp/resend` - ✅ `POST /v1/auth/register/request` - ✅ `POST /v1/auth/register/verify` ### Auth — invitations — 3/3 - ✅ `GET /v1/auth/invitations/{token}` - ✅ `POST /v1/auth/invitations/{token}/accept` - ✅ `POST /v1/auth/invitations/{token}/verify` ### Auth — sessions — 3/3 - ✅ `DELETE /v1/auth/sessions` - ✅ `GET /v1/auth/sessions` - ✅ `DELETE /v1/auth/sessions/{id}` ### Billing profile — me — 2/2 - ✅ `GET /v1/me/billing-profile` - ✅ `PUT /v1/me/billing-profile` ### GDPR — admin — 0/4 - ⬜ `GET /v1/admin/gdpr/dsar` - ⬜ `GET /v1/admin/gdpr/dsar/{id}` - ⬜ `POST /v1/admin/gdpr/dsar/{id}/fulfill-erasure-now` - ⬜ `POST /v1/admin/gdpr/dsar/{id}/reject` ### GDPR — public download — 0/3 - ⬜ `GET /v1/gdpr/delete/{id}/cancel` - ⬜ `POST /v1/gdpr/delete/{id}/cancel` - ⬜ `GET /v1/gdpr/exports/{id}/download` ### GDPR — self — 0/7 - ⬜ `GET /v1/me/gdpr/consent` - ⬜ `POST /v1/me/gdpr/consent` - ⬜ `POST /v1/me/gdpr/delete` - ⬜ `POST /v1/me/gdpr/delete/{id}/cancel` - ⬜ `POST /v1/me/gdpr/export` - ⬜ `GET /v1/me/gdpr/exports/{id}/download` - ⬜ `GET /v1/me/gdpr/requests/{id}` ### Health — 0/2 - ⬜ `GET /health` - ⬜ `GET /health/ready` ### Legal — 0/4 - ⬜ `GET /v1/legal` - ⬜ `GET /v1/legal/{kind}` - ⬜ `GET /v1/legal/{kind}/{version}` - ⬜ `GET /v1/legal/{kind}/versions` ### Orders — me — 2/2 - ✅ `GET /v1/me/orders` - ✅ `GET /v1/me/orders/{id}` ### Passkeys — 7/7 - ✅ `GET /v1/auth/passkeys` - ✅ `DELETE /v1/auth/passkeys/{id}` - ✅ `PATCH /v1/auth/passkeys/{id}` - ✅ `POST /v1/auth/passkeys/login/options` - ✅ `POST /v1/auth/passkeys/login/verify` - ✅ `POST /v1/auth/passkeys/register/options` - ✅ `POST /v1/auth/passkeys/register/verify` ### Payments — 3/3 - ✅ `POST /v1/payments/checkout` - ✅ `GET /v1/payments/checkout/{sessionId}` - ✅ `GET /v1/payments/plans` ### Payments — me — 3/5 - ✅ `GET /v1/me/payments/history` - ✅ `GET /v1/me/payments/subscriptions` - ⬜ `POST /v1/me/payments/subscriptions/{stripeSubscriptionId}/cancel` - ⬜ `POST /v1/me/payments/subscriptions/{stripeSubscriptionId}/resume` - ✅ `GET /v1/me/payments/subscriptions/active` ### Payments — webhook — 0/1 - ⬜ `POST /v1/payments/webhook` ### Recovery — 0/9 - ⬜ `DELETE /v1/auth/recovery/codes` - ⬜ `POST /v1/auth/recovery/codes/generate` - ⬜ `POST /v1/auth/recovery/codes/redeem` - ⬜ `GET /v1/auth/recovery/codes/status` - ⬜ `DELETE /v1/auth/recovery/email` - ⬜ `POST /v1/auth/recovery/email/request` - ⬜ `POST /v1/auth/recovery/email/verify` - ⬜ `POST /v1/auth/recovery/login/request` - ⬜ `POST /v1/auth/recovery/login/verify` ### Users — self — 1/2 - ✅ `GET /v1/users/me` - ⬜ `PATCH /v1/users/me`