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`