API Reference
Kirjapro käyttää Supabase Edge Functions -arkkitehtuuria (Deno runtime).
Base URL
Osio nimeltä “Base URL”https://<project-ref>.supabase.co/functions/v1/<function-name>Autentikointi
Osio nimeltä “Autentikointi”Useimmat endpointit vaativat JWT Bearer -tokenin.
Vaaditut headerit:
Authorization: Bearer <access_token>Content-Type: application/jsonapikey: <supabase_anon_key>Edge Functions
Osio nimeltä “Edge Functions”Verkkolaskut
Osio nimeltä “Verkkolaskut”send-einvoice-apix
Osio nimeltä “send-einvoice-apix”Lähettää verkkolaskun APIX-operaattorin kautta Finvoice 3.0 -muodossa.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/send-einvoice-apix |
| Auth | JWT Bearer token |
| Rate limit | 10 req/min per user |
send-einvoice-maventa
Osio nimeltä “send-einvoice-maventa”Lähettää verkkolaskun Maventa-operaattorin kautta.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/send-einvoice-maventa |
| Auth | JWT Bearer token |
| Rate limit | 10 req/min per user |
apix-webhook
Osio nimeltä “apix-webhook”Vastaanottaa toimitusilmoitukset APIX-operaattorilta.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/apix-webhook |
| Auth | HMAC-SHA256 signature |
| Rate limit | 100 req/min |
maventa-webhook
Osio nimeltä “maventa-webhook”Vastaanottaa toimitusilmoitukset Maventa-operaattorilta.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/maventa-webhook |
| Auth | Webhook secret |
| Rate limit | 100 req/min |
validate-maventa-credentials
Osio nimeltä “validate-maventa-credentials”Tarkistaa Maventa API -tunnusten toimivuuden.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/validate-maventa-credentials |
| Auth | JWT Bearer token |
| Rate limit | 5 req/min |
lookup-maventa-recipient
Osio nimeltä “lookup-maventa-recipient”Hakee vastaanottajan verkkolaskuosoitteen Maventan hakemistosta.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/lookup-maventa-recipient |
| Auth | JWT Bearer token |
| Rate limit | 10 req/min |
Tilaukset ja maksut
Osio nimeltä “Tilaukset ja maksut”create-checkout-session
Osio nimeltä “create-checkout-session”Luo Stripe Checkout -session tilauksen päivittämiseen.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/create-checkout-session |
| Auth | JWT Bearer token |
| Rate limit | 5 req/min |
Request:
{ "priceId": "price_xxx", "companyId": "uuid", "successUrl": "https://...", "cancelUrl": "https://..."}Response:
{ "success": true, "checkoutUrl": "https://checkout.stripe.com/...", "sessionId": "cs_xxx"}create-portal-session
Osio nimeltä “create-portal-session”Luo Stripe Customer Portal -session tilauksen hallintaan.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/create-portal-session |
| Auth | JWT Bearer token |
| Rate limit | 5 req/min |
create-payment-link
Osio nimeltä “create-payment-link”Luo Stripe-maksulinkki yksittäiselle laskulle. Asiakas voi maksaa laskun kortilla.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/create-payment-link |
| Auth | JWT Bearer token |
| Rate limit | 5 req/min |
| Vaatii | Yrittäjä-paketti tai ylempi |
Request:
{ "companyId": "uuid", "invoiceId": "uuid", "amount": 1240.00, "invoiceNumber": "2025-001", "customerName": "Asiakas Oy"}Response:
{ "success": true, "paymentUrl": "https://buy.stripe.com/...", "paymentToken": "abc123..."}validate-stripe-config
Osio nimeltä “validate-stripe-config”Tarkistaa Stripe-konfiguraation toimivuuden.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/validate-stripe-config |
| Auth | JWT Bearer token (admin/owner) |
| Rate limit | 5 req/min |
stripe-webhook
Osio nimeltä “stripe-webhook”Vastaanottaa Stripe-tapahtumat (checkout, subscription, invoice).
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/stripe-webhook |
| Auth | Stripe signature verification |
| Rate limit | None |
stripe-invoice-webhook
Osio nimeltä “stripe-invoice-webhook”Vastaanottaa korttimaksulinkkien maksutapahtumat.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/stripe-invoice-webhook |
| Auth | Stripe signature verification |
| Rate limit | None |
Pankkiyhteydet
Osio nimeltä “Pankkiyhteydet”enable-banking-auth
Osio nimeltä “enable-banking-auth”Aloittaa Open Banking -yhteyden muodostuksen.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/enable-banking-auth |
| Auth | JWT Bearer token |
| Rate limit | 5 req/min |
enable-banking-callback
Osio nimeltä “enable-banking-callback”Vastaanottaa pankin OAuth-paluukutsun.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | GET /functions/v1/enable-banking-callback |
| Auth | OAuth state parameter |
enable-banking-sync
Osio nimeltä “enable-banking-sync”Synkronoi pankkitapahtumat yhdistetystä tilistä.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/enable-banking-sync |
| Auth | JWT Bearer token |
| Rate limit | 5 req/min |
Hallinta
Osio nimeltä “Hallinta”invite-member
Osio nimeltä “invite-member”Lähettää tiimikutsun sähköpostilla.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | POST /functions/v1/invite-member |
| Auth | JWT Bearer token (admin/owner) |
| Rate limit | 10 req/min |
health
Osio nimeltä “health”Terveystarkistus.
| Ominaisuus | Arvo |
|---|---|
| Endpoint | GET /functions/v1/health |
| Auth | None |
Rate Limiting
Osio nimeltä “Rate Limiting”| Function | Limit | Window |
|---|---|---|
| send-einvoice-apix | 10 req | 1 min |
| send-einvoice-maventa | 10 req | 1 min |
| create-checkout-session | 5 req | 1 min |
| create-portal-session | 5 req | 1 min |
| create-payment-link | 5 req | 1 min |
| enable-banking-* | 5 req | 1 min |
| invite-member | 10 req | 1 min |
| apix-webhook | 100 req | 1 min |
| maventa-webhook | 100 req | 1 min |
Virhekoodit
Osio nimeltä “Virhekoodit”| Code | Merkitys |
|---|---|
| 400 | Bad Request - virheellinen pyyntö |
| 401 | Unauthorized - autentikointi puuttuu |
| 403 | Forbidden - ei oikeuksia |
| 404 | Not Found - resurssia ei löydy |
| 429 | Too Many Requests - rate limit ylitetty |
| 500 | Internal Server Error - palvelinvirhe |
Seuraavaksi
Osio nimeltä “Seuraavaksi”- Autentikointi — JWT ja Supabase Auth
- Webhookit — Reaaliaikaiset ilmoitukset
- Virhekoodit — Virhekäsittely ja retry-strategia
- Stripe-integraatio — Tilaukset ja maksut
- Korttimaksulinkit — Laskujen korttimaksu