Hoppa till innehållet

Guider

Behörigheter

Varje app och API-nyckel har en lista med behörigheter (scopes). De är samma behörigheter som rollerna i NONOX använder, så en bokförare och en app med vouchers:post får bokföra på samma sätt och med samma kontroller.

Alla behörigheter

Tabellen genereras från OpenAPI-filen. Anropen i högra kolumnen kräver behörigheten.

ScopeGerAnrop
vouchers:view Läsa verifikationer, underlag, kontoplan, räkenskapsår och perioder, kostnadsställen, projekt, verifikationsserier och momskoder GET /accounts GET /accounts/{number} GET /vat-codes GET /fiscal-years GET /fiscal-years/{fiscalYear} GET /fiscal-years/{fiscalYear}/periods GET /cost-centers GET /cost-centers/{costCenter} GET /projects GET /projects/{project} GET /voucher-series GET /vouchers GET /vouchers/{voucher} GET /vouchers/{voucher}/attachments GET /vouchers/{voucher}/attachments/{attachment}/content
vouchers:create Skapa och ändra utkast till verifikationer och lägga till underlag POST /vouchers PATCH /vouchers/{voucher} DELETE /vouchers/{voucher} POST /vouchers/{voucher}/attachments POST /invoices/{invoice}/issue POST /invoices/{invoice}/payments POST /supplier-invoices/{supplierInvoice}/register POST /supplier-invoices/{supplierInvoice}/payments
vouchers:post Bokföra verifikationer (går inte att ångra, bara rätta) POST /vouchers/{voucher}/post POST /invoices/{invoice}/issue POST /invoices/{invoice}/payments POST /supplier-invoices/{supplierInvoice}/register POST /supplier-invoices/{supplierInvoice}/payments
vouchers:correct Rätta bokförda verifikationer med en rättelseverifikation POST /vouchers/{voucher}/correct
accounts:manage Lägga till och ändra kostnadsställen och projekt POST /cost-centers PATCH /cost-centers/{costCenter} POST /projects PATCH /projects/{project}
reports:view Läsa saldobalans, huvudbok, balansrapport och resultatrapport GET /reports/trial-balance GET /reports/general-ledger GET /reports/balance-sheet GET /reports/income-statement
vat:prepare Läsa momsdeklarationen per period GET /vat-periods GET /vat-return
export:sie Hämta bokföringen som en SIE 4-fil GET /fiscal-years/{fiscalYear}/sie
invoices:view Läsa kunder, artiklar, kundfakturor och inbetalningar GET /customers GET /customers/{customer} GET /articles GET /articles/{article} GET /invoices GET /invoices/{invoice} GET /invoices/{invoice}/pdf GET /payments
invoices:create Lägga till och ändra kunder och artiklar och skapa utkast till kundfakturor POST /customers PATCH /customers/{customer} POST /articles PATCH /articles/{article} POST /invoices PATCH /invoices/{invoice}
invoices:send Skapa kundfakturor (med vouchers:create och vouchers:post) och mejla dem POST /invoices/{invoice}/issue POST /invoices/{invoice}/send
invoices:credit Kreditera obetalda kundfakturor POST /invoices/{invoice}/credit
payments:create Registrera inbetalningar och betalningar till leverantörer (med vouchers:create och vouchers:post) POST /invoices/{invoice}/payments GET /supplier-invoices GET /supplier-invoices/{supplierInvoice} POST /supplier-invoices/{supplierInvoice}/payments GET /supplier-payments
supplier-invoices:create Läsa leverantörer och leverantörsfakturor, lägga till leverantörer och skapa och registrera leverantörsfakturor GET /suppliers POST /suppliers GET /suppliers/{supplier} PATCH /suppliers/{supplier} GET /supplier-invoices POST /supplier-invoices GET /supplier-invoices/{supplierInvoice} PATCH /supplier-invoices/{supplierInvoice} DELETE /supplier-invoices/{supplierInvoice} POST /supplier-invoices/{supplierInvoice}/file POST /supplier-invoices/{supplierInvoice}/register GET /supplier-payments
supplier-invoices:approve Läsa och attestera leverantörsfakturor (aldrig sådana samma person registrerat, när företaget kräver separat attest) GET /suppliers GET /suppliers/{supplier} GET /supplier-invoices GET /supplier-invoices/{supplierInvoice} POST /supplier-invoices/{supplierInvoice}/approve GET /supplier-payments

GET /company kräver ingen särskild behörighet: varje giltig nyckel eller token får se vilket företag den gäller.

Vad ett anrop faktiskt får göra

Ett anrop får göra det som både nyckelns eller appens behörigheter och personen bakom tillåter, i det ögonblicket:

Personens roll i dag Nyckelns behörigheter Får nyckeln bokföra?
Bokförare vouchers:view, vouchers:post Ja
Attestant (får inte bokföra) vouchers:view, vouchers:post Nej, 403 insufficient_scope
Bokförare vouchers:view Nej, 403 insufficient_scope
Har lämnat företaget vouchers:post Nej, 401

Snittet prövas vid varje anrop, i varje kontroll i systemet, inte bara för den behörighet adressen nämner. En ändrad roll gäller alltså från nästa anrop, utan att appen behöver göra något.

När en behörighet saknas

JSON
{
  "type": "urn:nonox:problem:insufficient_scope",
  "title": "Forbidden",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "Nyckeln eller appen saknar behörigheten vouchers:post, eller så har personen som gav den inte längre den behörigheten i företaget.",
  "instance": "urn:nonox:request:7f3c2a9e-4b1d-4c8e-9a51-2d6f0e8b3c17",
  "required_scopes": ["vouchers:post"]
}

required_scopes säger vad som behövs. För en OAuth-app betyder det att personen behöver godkänna appen igen med fler behörigheter; för en API-nyckel att en ny nyckel behöver skapas.

Be om så lite som möjligt

Be bara om de behörigheter appen faktiskt använder. Personen ser listan på svenska när hen godkänner, och en kort lista är lättare att säga ja till. vouchers:post går inte att ångra i bokföringen (bara rätta), så be om den först när appen verkligen bokför.

Några saker API:t aldrig gör

  • Lämnar ut personnummer. En kund har has_personal_number; själva numret kan skrivas men aldrig läsas.
  • Ändrar eller tar bort en bokförd verifikation. Den kan bara rättas.
  • Ger åtkomst till löner, lönebesked eller personalliggare. Det finns inga behörigheter för det.