Errors
Every error returned by the gnubok REST API uses a stable code from this catalogue. Codes never change once shipped — agents can pattern-match on them safely. The
docs_urlfield on every error envelope points at the anchor for that specific code.
Envelope shape
{
"error": {
"code": "PERIOD_LOCKED",
"message": "Den valda perioden är låst.",
"message_en": "The selected period is locked.",
"remediation": {
"description": "Unlock via /fiscal-periods/{id}/unlock or pick an open period.",
"tool": "fiscal_periods.unlock"
},
"details": { "fiscal_period_id": "..." },
"docs_url": "https://gnubok.app/docs/api/errors#period_locked"
},
"meta": { "request_id": "req_...", "api_version": "..." }
}
The message field is Swedish (matches the dashboard); message_en is English (for agent and developer logs); remediation (when present) hints at the canonical fix and may include a tool reference into the MCP surface.
Generic
Cross-cutting codes returned by any endpoint.
COMPANY_CONTEXT_MISSING
HTTP 400 — Bad request
No active company context resolved for the request.
Swedish: Ingen aktiv företagskontext. Välj ett företag och försök igen.
CONFLICT
HTTP 409 — Conflict
Conflict.
Swedish: En konflikt uppstod. Ladda om sidan och försök igen.
FORBIDDEN
HTTP 403 — Forbidden
Insufficient permissions.
Swedish: Du har inte behörighet att utföra denna åtgärd.
IDEMPOTENCY_KEY_REUSE
HTTP 409 — Conflict
Idempotency key was previously used with a different request body.
Swedish: Idempotensnyckeln har redan använts med en annan begäran.
Remediation: Use a fresh UUID for a new operation, or send the original request body to replay.
INSUFFICIENT_SCOPE
HTTP 403 — Forbidden
The current API key does not have the required scope.
Swedish: API-nyckeln saknar behörighet för denna åtgärd.
Remediation: Mint a new key with the missing scope or grant it through the API key settings.
Related resource: gnubok://capabilities
INTERNAL_ERROR
HTTP 500 — Server error
Internal server error.
Swedish: Ett oväntat serverfel uppstod. Försök igen senare.
MFA_REQUIRED
HTTP 403 — Forbidden
MFA verification required.
Swedish: Tvåstegsverifiering krävs för att utföra åtgärden.
NOT_FOUND
HTTP 404 — Not found
Resource not found.
Swedish: Resursen kunde inte hittas.
NOT_IMPLEMENTED
HTTP 501 — Not implemented
This feature is accepted by the schema but not yet implemented.
Swedish: Funktionen är inte implementerad ännu.
RATE_LIMITED
HTTP 429 — Rate limited
Rate limit exceeded.
Swedish: För många förfrågningar. Vänta en stund och försök igen.
UNAUTHORIZED
HTTP 401 — Unauthorized
Authentication required.
Swedish: Din session har gått ut. Logga in igen.
UNKNOWN_ERROR
HTTP 500 — Server error
An unexpected error occurred.
Swedish: Något gick fel. Försök igen.
VALIDATION_ERROR
HTTP 400 — Bad request
Validation error.
Swedish: Förfrågan innehåller ogiltiga uppgifter.
Bookkeeping engine
Errors from the journal-entry lifecycle (create, commit, reverse, correct).
BOOKKEEPING_DATABASE_ERROR
HTTP 500 — Server error
Bookkeeping database operation failed.
Swedish: Verifikationen kunde inte sparas. Försök igen.
JOURNAL_ENTRY_NOT_BALANCED
HTTP 400 — Bad request
Debits and credits do not match.
Swedish: Verifikationen balanserar inte.
Remediation: Recalculate the lines so totals are equal before retrying.
JOURNAL_ENTRY_NOT_FOUND
HTTP 404 — Not found
Journal entry not found.
Swedish: Verifikationen kunde inte hittas.
Periods + year-end
Fiscal period locking, year-end closing, opening balances, FX revaluation.
FX_FAILED
HTTP 400 — Bad request
Currency revaluation failed.
Swedish: Valutaomvärderingen misslyckades.
FX_PERIOD_CLOSED
HTTP 400 — Bad request
Period is already closed; currency revaluation cannot be run.
Swedish: Perioden är redan stängd. Valutaomvärdering kan inte köras.
FX_PERIOD_NOT_FOUND
HTTP 404 — Not found
Fiscal period not found.
Swedish: Räkenskapsperioden kunde inte hittas.
PERIOD_HAS_UNBOOKED_TRANSACTIONS
HTTP 400 — Bad request
The period contains uncategorized business transactions.
Swedish: Perioden innehåller okategoriserade affärstransaktioner. Bokför eller markera dem som privata innan låsning.
Remediation: Categorize or mark uncategorized transactions before locking.
Related tool: gnubok_list_uncategorized_transactions
PERIOD_LOCKED
HTTP 400 — Bad request
Period is locked or closed; entries cannot be added.
Swedish: Bokföringen är låst för denna period.
PERIOD_LOCK_ALREADY_LOCKED
HTTP 409 — Conflict
Period is already locked.
Swedish: Perioden är redan låst.
PERIOD_LOCK_FAILED
HTTP 400 — Bad request
Failed to lock period.
Swedish: Perioden kunde inte låsas.
PERIOD_LOCK_HAS_DRAFTS
HTTP 400 — Bad request
Period contains draft journal entries.
Swedish: Perioden innehåller verifikationsutkast som måste bokföras eller raderas innan låsning.
PERIOD_NOT_FOUND
HTTP 404 — Not found
Fiscal period not found.
Swedish: Räkenskapsperioden kunde inte hittas.
PERIOD_NOT_LOCKED
HTTP 400 — Bad request
Period must be locked before it can be closed.
Swedish: Perioden måste först låsas innan den kan stängas.
Remediation: Call gnubok_lock_period before closing.
Related tool: gnubok_lock_period
YEAR_END_FAILED
HTTP 400 — Bad request
Failed to execute year-end closing.
Swedish: Bokslutet kunde inte verkställas.
YEAR_END_NOT_RUN
HTTP 400 — Bad request
Year-end closing must be executed before the period can be closed.
Swedish: Bokslutsåtgärder måste utföras innan perioden kan stängas.
YEAR_END_PREVIEW_FAILED
HTTP 400 — Bad request
Failed to preview year-end closing.
Swedish: Bokslutsförhandsgranskningen misslyckades.
YEAR_END_PRIOR_PERIOD_OPEN
HTTP 400 — Bad request
A prior fiscal period is still open.
Swedish: En tidigare period är fortfarande öppen. Stäng den först.
YEAR_END_UNBALANCED_TRIAL
HTTP 400 — Bad request
Trial balance does not balance.
Swedish: Resultaträkningens debet och kredit balanserar inte. Granska verifikationerna innan bokslut.
Invoices
Customer invoice lifecycle: draft, send, mark paid, credit.
CUSTOMER_CREATE_FAILED
HTTP 500 — Server error
Failed to create customer.
Swedish: Kunden kunde inte skapas.
CUSTOMER_DELETE_FAILED
HTTP 500 — Server error
Failed to delete customer.
Swedish: Kunden kunde inte tas bort.
CUSTOMER_DUPLICATE_ORG_NUMBER
HTTP 409 — Conflict
A customer with that organisation number already exists.
Swedish: En kund med samma organisationsnummer finns redan.
CUSTOMER_HAS_INVOICES
HTTP 409 — Conflict
Customer cannot be deleted while invoices reference it.
Swedish: Kunden har fakturor och kan inte tas bort.
CUSTOMER_NOT_FOUND
HTTP 404 — Not found
Customer not found.
Swedish: Kunden kunde inte hittas.
CUSTOMER_UPDATE_FAILED
HTTP 500 — Server error
Failed to update customer.
Swedish: Kunden kunde inte uppdateras.
INVOICE_ALREADY_SENT
HTTP 409 — Conflict
The invoice is already sent or paid.
Swedish: Fakturan har redan skickats eller betalats.
INVOICE_CANCEL_RACE
HTTP 409 — Conflict
Invoice was modified concurrently and could not be cancelled. Reload and retry.
Swedish: Fakturan ändrades samtidigt och kunde inte makuleras. Ladda om och försök igen.
INVOICE_CREATE_INSERT_FAILED
HTTP 500 — Server error
Invoice insert failed.
Swedish: Fakturan kunde inte sparas.
INVOICE_CREATE_ITEMS_FAILED
HTTP 500 — Server error
Invoice items insert failed.
Swedish: Fakturaraderna kunde inte sparas.
INVOICE_CREATE_NUMBER_ASSIGN_FAILED
HTTP 500 — Server error
Failed to assign invoice number on create.
Swedish: Kunde inte tilldela fakturanummer vid skapande.
INVOICE_CREATE_VAT_RULE_VIOLATION
HTTP 400 — Bad request
The VAT rate is not allowed for this customer type.
Swedish: Momssatsen är inte tillåten för denna kundtyp.
INVOICE_CREDIT_ALREADY_CREDITED
HTTP 400 — Bad request
Invoice has already been credited.
Swedish: Fakturan har redan krediterats.
INVOICE_CREDIT_NOT_INVOICE
HTTP 400 — Bad request
Credit notes can only be created from standard invoices.
Swedish: Kreditfakturor kan endast skapas från riktiga fakturor.
INVOICE_CREDIT_NOT_SENT
HTTP 400 — Bad request
Only sent, paid, or overdue invoices can be credited.
Swedish: Endast skickade, betalda eller förfallna fakturor kan krediteras.
INVOICE_CREDIT_ORIGINAL_NOT_FOUND
HTTP 404 — Not found
Original invoice not found.
Swedish: Ursprungsfakturan kunde inte hittas.
INVOICE_CUSTOMER_NOT_FOUND
HTTP 404 — Not found
Customer not found.
Swedish: Kunden kunde inte hittas.
INVOICE_DELETE_NOT_DRAFT
HTTP 400 — Bad request
Only draft invoices can be deleted; non-drafts must be credited.
Swedish: Endast utkast kan tas bort. Bokförda fakturor måste krediteras istället.
Remediation: Issue a credit note instead of deleting a posted invoice.
INVOICE_PAID_BOOK_FAILED
HTTP 500 — Server error
Failed to create payment journal entry.
Swedish: Kunde inte bokföra betalningen.
INVOICE_PAID_LIKELY_DUPLICATE
HTTP 409 — Conflict
A likely-matching unlinked inbound bank transaction was found for this customer. Suggest linking it instead of creating a new payment entry.
Swedish: Det finns redan en obokförd inkommande banktransaktion som kan vara denna betalning. Länka den istället, eller markera som betald ändå om du är säker.
Remediation: Match the candidate transaction via POST /api/transactions/{id}/match-invoice, or resend mark-paid with force: true to create the payment entry anyway. When using the v1 endpoint, the force retry requires a fresh Idempotency-Key (the original key is bound to the body hash).
INVOICE_PAID_LINES_UNBALANCED
HTTP 400 — Bad request
Custom journal lines do not balance.
Swedish: Verifikationsraderna är inte balanserade (debet ≠ kredit).
INVOICE_PAID_NOT_FOUND
HTTP 404 — Not found
Invoice not found.
Swedish: Fakturan kunde inte hittas.
INVOICE_PAID_NOT_PAYABLE
HTTP 400 — Bad request
Invoice is not in a payable status.
Swedish: Fakturan kan inte markeras som betald i nuvarande status.
INVOICE_PAID_NO_FISCAL_PERIOD
HTTP 400 — Bad request
No open fiscal period covers the payment date.
Swedish: Ingen öppen räkenskapsperiod för betalningsdatumet.
INVOICE_PAID_RACE
HTTP 409 — Conflict
Invoice was already paid by another request.
Swedish: Fakturan har redan betalats av en annan förfrågan.
INVOICE_PDF_RENDER_FAILED
HTTP 500 — Server error
Invoice PDF rendering failed.
Swedish: Fakturans PDF kunde inte skapas.
INVOICE_SEND_CANCELLED
HTTP 400 — Bad request
Cancelled invoices cannot be sent; create a new invoice instead.
Swedish: Makulerade fakturor kan inte skickas. Skapa en ny faktura istället.
INVOICE_SEND_COMPANY_SETTINGS_MISSING
HTTP 404 — Not found
Company settings are missing.
Swedish: Företagsinställningar saknas.
INVOICE_SEND_EMAIL_NOT_CONFIGURED
HTTP 503
Email service is not configured.
Swedish: E-posttjänsten är inte konfigurerad. Kontrollera att RESEND_API_KEY och RESEND_FROM_EMAIL är satta.
Remediation: Set RESEND_API_KEY and RESEND_FROM_EMAIL in the deployment environment.
INVOICE_SEND_NO_CUSTOMER_EMAIL
HTTP 400 — Bad request
Customer has no email address.
Swedish: Kunden saknar e-postadress. Uppdatera kunduppgifterna först.
Remediation: Add an email address on the customer record before sending.
INVOICE_SEND_NUMBER_ASSIGN_FAILED
HTTP 500 — Server error
Failed to assign invoice number on send.
Swedish: Kunde inte tilldela fakturanummer.
INVOICE_SEND_PARTIAL
HTTP 200
Invoice was sent but a follow-up step (journal entry or PDF) failed.
Swedish: Fakturan skickades men en efterföljande åtgärd misslyckades (verifikation eller PDF-bilaga).
INVOICE_SEND_PDF_RENDER_FAILED
HTTP 500 — Server error
Failed to render invoice PDF before send; no invoice number was consumed.
Swedish: Fakturans PDF kunde inte skapas. Kontrollera fakturarader och kunduppgifter och försök igen.
INVOICE_SEND_PROVIDER_FAILED
HTTP 502
The email provider could not deliver the message.
Swedish: E-postleverantören kunde inte skicka meddelandet.
INVOICE_UPDATE_NOT_DRAFT
HTTP 409 — Conflict
Only draft invoices can be updated. Issued invoices are immutable — issue a credit note instead.
Swedish: Endast utkast kan ändras. Bokförda fakturor är oföränderliga — utfärda en kreditfaktura istället.
Remediation: Issue a credit note via POST /invoices/{id}:credit and create a fresh invoice with the corrected details.
Supplier invoices
AP lifecycle: register, approve, mark paid, credit.
SUPPLIER_CREATE_FAILED
HTTP 500 — Server error
Failed to create supplier.
Swedish: Leverantören kunde inte skapas.
SUPPLIER_DELETE_FAILED
HTTP 500 — Server error
Failed to delete supplier.
Swedish: Leverantören kunde inte tas bort.
SUPPLIER_DUPLICATE_ORG_NUMBER
HTTP 409 — Conflict
A supplier with that organisation number already exists.
Swedish: En leverantör med samma organisationsnummer finns redan.
SUPPLIER_HAS_INVOICES
HTTP 409 — Conflict
Supplier cannot be archived while open supplier invoices reference it.
Swedish: Leverantören kan inte arkiveras eftersom det finns öppna leverantörsfakturor som refererar till den.
Remediation: Close (credit / mark paid) every open supplier invoice before archiving the supplier. The dashboard exposes the same blocker.
SUPPLIER_NOT_FOUND
HTTP 404 — Not found
Supplier not found.
Swedish: Leverantören kunde inte hittas.
SUPPLIER_UPDATE_FAILED
HTTP 500 — Server error
Failed to update supplier.
Swedish: Leverantören kunde inte uppdateras.
Transactions
Bank transaction ingest, categorisation, matching.
MATCH_INVOICE_ALREADY_PAID
HTTP 409 — Conflict
Invoice has already been fully paid or is no longer matchable.
Swedish: Fakturan har redan slutbetalats av en annan förfrågan.
MATCH_INVOICE_DUPLICATE_PAYMENT
HTTP 409 — Conflict
This transaction is already matched to this invoice.
Swedish: Den här transaktionen är redan matchad mot fakturan.
MATCH_INVOICE_LINK_TX_FAILED
HTTP 500 — Server error
Failed to link transaction to invoice.
Swedish: Kunde inte koppla transaktionen till fakturan.
MATCH_INVOICE_NOT_FOUND
HTTP 404 — Not found
Invoice not found.
Swedish: Fakturan kunde inte hittas.
MATCH_INVOICE_NOT_INCOME
HTTP 400 — Bad request
Only income transactions can be matched to customer invoices.
Swedish: Endast intäktstransaktioner kan matchas mot kundfakturor.
MATCH_INVOICE_NOT_INVOICE_TYPE
HTTP 400 — Bad request
Only invoices may be matched to a transaction; proforma and delivery notes have no VAT obligation.
Swedish: Endast fakturor kan matchas mot en transaktion. Proforma och följesedel saknar momsskyldighet.
MATCH_INVOICE_NOT_OPEN
HTTP 400 — Bad request
Invoice is not in an unpaid state.
Swedish: Fakturan är inte i ett obetalt läge och kan inte matchas.
MATCH_INVOICE_PARTIAL
HTTP 200
Match recorded but the journal entry could not be created.
Swedish: Matchningen registrerades men verifikationen kunde inte skapas.
MATCH_INVOICE_RECORD_PAYMENT_FAILED
HTTP 500 — Server error
Failed to record invoice payment.
Swedish: Kunde inte registrera fakturabetalningen.
MATCH_INVOICE_TX_ALREADY_LINKED
HTTP 400 — Bad request
Transaction is already linked to an invoice.
Swedish: Transaktionen är redan kopplad till en faktura.
MATCH_SI_ALREADY_PAID
HTTP 400 — Bad request
Supplier invoice is already paid or credited.
Swedish: Leverantörsfakturan är redan betald eller krediterad.
MATCH_SI_CASH_FX_UNSUPPORTED
HTTP 400 — Bad request
Cash accounting does not support exchange-rate differences. Switch to accrual or book the FX difference manually.
Swedish: Kontantmetoden stödjer inte valutakursdifferenser. Byt till löpande bokföring eller bokför valutakursdifferensen manuellt.
MATCH_SI_DUPLICATE_PAYMENT
HTTP 409 — Conflict
This transaction is already matched to this supplier invoice.
Swedish: Den här transaktionen är redan matchad mot leverantörsfakturan.
MATCH_SI_LINK_TX_FAILED
HTTP 500 — Server error
Failed to link transaction to supplier invoice.
Swedish: Kunde inte koppla transaktionen till leverantörsfakturan.
MATCH_SI_NOT_EXPENSE
HTTP 400 — Bad request
Only expense transactions can be matched to supplier invoices.
Swedish: Endast utgiftstransaktioner kan matchas mot leverantörsfakturor.
MATCH_SI_NOT_FOUND
HTTP 404 — Not found
Supplier invoice not found.
Swedish: Leverantörsfakturan kunde inte hittas.
MATCH_SI_NOT_OPEN
HTTP 409 — Conflict
Supplier invoice has already been fully paid or is no longer matchable.
Swedish: Leverantörsfakturan har redan slutbetalats av en annan förfrågan.
MATCH_SI_RECORD_PAYMENT_FAILED
HTTP 500 — Server error
Failed to record supplier invoice payment.
Swedish: Kunde inte registrera leverantörsfakturabetalningen.
MATCH_SI_TX_ALREADY_LINKED
HTTP 400 — Bad request
Transaction is already linked to a supplier invoice.
Swedish: Transaktionen är redan kopplad till en leverantörsfaktura.
TRANSACTION_ALREADY_CATEGORIZED
HTTP 409 — Conflict
The transaction already has a journal entry.
Swedish: Transaktionen är redan bokförd. Ångra kategoriseringen om du vill ändra den.
Remediation: Use gnubok_uncategorize_transaction first if you need to recategorize.
Related tool: gnubok_uncategorize_transaction
Reports
Report generation: VAT declaration, periodisk sammanställning, SIE export, INK2.
PS_REPORT_CSV_BLOCKED_BY_ERRORS
HTTP 400 — Bad request
CSV download blocked by validation errors. Fix them first.
Swedish: CSV kan inte laddas ner. Åtgärda blockerande fel först.
PS_REPORT_GENERATION_FAILED
HTTP 500 — Server error
Failed to generate periodisk sammanställning.
Swedish: Periodisk sammanställning kunde inte beräknas.
PS_REPORT_INVALID_PERIOD
HTTP 400 — Bad request
period is invalid for the chosen period type.
Swedish: period är ogiltig för vald periodtyp.
PS_REPORT_INVALID_PERIOD_TYPE
HTTP 400 — Bad request
periodType must be monthly or quarterly.
Swedish: periodType måste vara monthly eller quarterly.
PS_REPORT_INVALID_YEAR
HTTP 400 — Bad request
year must be a number between 2000 and 2100.
Swedish: year måste vara ett giltigt årtal mellan 2000 och 2100.
PS_REPORT_MISSING_FILER_INFO
HTTP 400 — Bad request
Tax contact information is missing on company_settings.
Swedish: Kontaktuppgifter saknas. Fyll i namn, telefon och e-post under Inställningar.
PS_REPORT_MISSING_PARAMS
HTTP 400 — Bad request
periodType, year and period query parameters are required.
Swedish: periodType, year och period krävs.
REPORT_GENERATION_FAILED
HTTP 500 — Server error
Failed to generate the report.
Swedish: Rapporten kunde inte genereras.
REPORT_PERIOD_REQUIRED
HTTP 400 — Bad request
period_id query parameter is required.
Swedish: period_id krävs.
SIE_EXPORT_COMPANY_NOT_FOUND
HTTP 404 — Not found
Company settings missing; SIE export cannot be generated.
Swedish: Företagsinställningar saknas — SIE-exporten kan inte skapas.
SIE_EXPORT_FAILED
HTTP 500 — Server error
Failed to generate SIE export.
Swedish: SIE-exporten misslyckades.
TAX_DECL_GENERATION_FAILED
HTTP 500 — Server error
Failed to generate tax declaration.
Swedish: Skattedeklarationen kunde inte genereras.
VAT_REPORT_GENERATION_FAILED
HTTP 500 — Server error
Failed to calculate VAT declaration.
Swedish: Momsdeklarationen kunde inte beräknas.
VAT_REPORT_INVALID_PERIOD
HTTP 400 — Bad request
period is invalid for the chosen period type.
Swedish: period är ogiltig för vald periodtyp.
VAT_REPORT_INVALID_PERIOD_TYPE
HTTP 400 — Bad request
periodType must be one of monthly, quarterly, yearly.
Swedish: periodType måste vara monthly, quarterly eller yearly.
VAT_REPORT_INVALID_YEAR
HTTP 400 — Bad request
year must be a number between 2000 and 2100.
Swedish: year måste vara ett giltigt årtal mellan 2000 och 2100.
VAT_REPORT_MISSING_PARAMS
HTTP 400 — Bad request
periodType, year and period query parameters are required.
Swedish: periodType, year och period krävs.
Imports
SIE import, bank file import, opening-balance import, provider migration.
BANK_FILE_DUPLICATE
HTTP 409 — Conflict
Bank file has already been imported.
Swedish: Den här filen har redan importerats.
BANK_FILE_EXECUTE_FAILED
HTTP 500 — Server error
Bank file import failed.
Swedish: Bankfilsimporten misslyckades.
BANK_FILE_FORMAT_UNKNOWN
HTTP 400 — Bad request
Bank file format could not be identified.
Swedish: Bankfilens format kunde inte identifieras.
BANK_FILE_IMPORT_RECORD_FAILED
HTTP 500 — Server error
Failed to create the bank file import record.
Swedish: Kunde inte skapa importpost.
BANK_FILE_NO_FILE
HTTP 400 — Bad request
No file attached to the request.
Swedish: Ingen fil bifogad i förfrågan.
BANK_FILE_NO_TRANSACTIONS
HTTP 400 — Bad request
No transactions to import.
Swedish: Bankfilen innehåller inga transaktioner att importera.
BANK_FILE_PARSE_FAILED
HTTP 500 — Server error
Failed to parse the bank file.
Swedish: Kunde inte tolka bankfilen.
BANK_FILE_TOO_LARGE
HTTP 400 — Bad request
File exceeds the 10 MB size limit.
Swedish: Filen är för stor. Maxstorlek är 10 MB.
SIE_IMPORT_ACCOUNT_ACTIVATION_FAILED
HTTP 500 — Server error
Failed to activate mapped accounts in the chart of accounts.
Swedish: Kunde inte aktivera konton i kontoplanen. Kontrollera att kontona inte redan finns med andra inställningar.
SIE_IMPORT_DUPLICATE
HTTP 409 — Conflict
This SIE file has already been imported.
Swedish: Den här SIE-filen har redan importerats.
SIE_IMPORT_FAILED
HTTP 400 — Bad request
SIE import completed with errors.
Swedish: Importen slutfördes med fel. Se detaljerna nedan.
SIE_IMPORT_UNEXPECTED
HTTP 500 — Server error
Unexpected error during SIE import; no data was committed.
Swedish: Importen avbröts oväntat. Ingen data har sparats.
SIE_IMPORT_UNMAPPED_ACCOUNTS
HTTP 400 — Bad request
One or more accounts have no mapping target.
Swedish: Vissa konton saknar mappning. Gå tillbaka till kontomappningssteget och koppla alla konton.
Remediation: Map every source account to a BAS account before importing.
Salary + AGI
Payroll lifecycle, AGI generation, KU declarations.
AGI_FSKATT_VERIFICATION_FAILED
HTTP 400 — Bad request
F-skatt verification failed.
Swedish: F-skattekontrollen misslyckades. Kontrollera leverantörens F-skatt.
AGI_GENERATE_NOT_BOOKABLE
HTTP 400 — Bad request
AGI can only be generated for salary runs in review, approved, paid, booked, or corrected status.
Swedish: AGI kan endast genereras för lönekörningar i status review, approved, paid, booked eller corrected.
AGI_GENERATION_FAILED
HTTP 500 — Server error
Failed to generate AGI declaration.
Swedish: AGI-deklarationen kunde inte genereras.
AGI_INCOMPLETE_DATA
HTTP 400 — Bad request
AGI data is incomplete — verify the company has org number, contact name, phone, and email.
Swedish: AGI-data ofullständig — kontrollera att företaget har organisationsnummer, kontaktnamn, telefon och e-post.
AGI_NO_SALARY_RUN
HTTP 400 — Bad request
No salary run exists for the period.
Swedish: Det finns ingen lönekörning för perioden.
EMPLOYEE_DUPLICATE_PERSONNUMMER
HTTP 409 — Conflict
An employee with that personnummer already exists.
Swedish: En anställd med samma personnummer finns redan.
EMPLOYEE_NOT_FOUND
HTTP 404 — Not found
Employee not found.
Swedish: Den anställda kunde inte hittas.
SALARY_RUN_APPROVE_NOT_REVIEW
HTTP 400 — Bad request
Salary run must be in review status to approve.
Swedish: Lönekörningen måste vara i status review för godkännande.
SALARY_RUN_APPROVE_VALIDATION_FAILED
HTTP 400 — Bad request
Validation failed — fix issues before approving.
Swedish: Valideringsfel — korrigera innan godkännande.
SALARY_RUN_BOOK_FAILED
HTTP 500 — Server error
Failed to book salary run.
Swedish: Lönekörningen kunde inte bokföras.
SALARY_RUN_BOOK_NOT_PAID
HTTP 400 — Bad request
Salary run must be marked paid before booking.
Swedish: Lönekörningen måste vara markerad som betald för bokföring.
SALARY_RUN_CALCULATE_FAILED
HTTP 500 — Server error
Failed to calculate salary run.
Swedish: Lönekörningen kunde inte beräknas.
SALARY_RUN_CALCULATE_NOT_DRAFT
HTTP 400 — Bad request
Salary run must be in draft status to calculate.
Swedish: Lönekörningen måste vara i status draft för beräkning.
SALARY_RUN_CREATE_FAILED
HTTP 500 — Server error
Failed to create salary run.
Swedish: Lönekörningen kunde inte skapas.
SALARY_RUN_DELETE_HAS_JOURNAL_ENTRY
HTTP 400 — Bad request
Salary run is linked to a journal entry and cannot be deleted (BFL 5 kap räkenskapsinformation).
Swedish: Lönekörningen är kopplad till en verifikation och kan inte raderas (BFL 5 kap räkenskapsinformation).
SALARY_RUN_DELETE_NOT_DRAFT
HTTP 400 — Bad request
Only draft salary runs can be deleted.
Swedish: Endast utkast (draft) kan raderas.
SALARY_RUN_DUPLICATE_PERIOD
HTTP 409 — Conflict
A salary run for that period already exists.
Swedish: En lönekörning för perioden finns redan.
SALARY_RUN_MARK_PAID_NOT_APPROVED
HTTP 400 — Bad request
Salary run must be approved before it can be marked paid.
Swedish: Lönekörningen måste vara godkänd för att markeras som betald.
SALARY_RUN_NOT_CALCULATED
HTTP 400 — Bad request
Salary run must be calculated before booking.
Swedish: Lönekörningen måste beräknas innan bokföring.
SALARY_RUN_NOT_FOUND
HTTP 404 — Not found
Salary run not found.
Swedish: Lönekörningen kunde inte hittas.
SALARY_RUN_NO_EMPLOYEES
HTTP 400 — Bad request
No active employees in the company.
Swedish: Inga aktiva anställda finns i företaget.
SALARY_RUN_PATCH_NOT_DRAFT
HTTP 400 — Bad request
Only draft salary runs can be patched.
Swedish: Endast utkast (draft) kan uppdateras.
SALARY_RUN_PERIOD_LOCKED
HTTP 400 — Bad request
Salary run cannot be processed in a locked period.
Swedish: Lönekörningen kan inte göras i en låst period.
SALARY_RUN_TAX_TABLE_MISSING
HTTP 400 — Bad request
Tax table is missing for the period.
Swedish: Skattetabellen saknas för perioden. Importera skattetabellen först.
Company + API keys
Multi-tenant + auth lifecycle.
API_KEY_CREATE_FAILED
HTTP 500 — Server error
Failed to create API key.
Swedish: API-nyckeln kunde inte skapas.
API_KEY_NOT_FOUND
HTTP 404 — Not found
API key not found.
Swedish: API-nyckeln kunde inte hittas.
API_KEY_QUOTA_EXCEEDED
HTTP 429 — Rate limited
API key quota exceeded.
Swedish: Du har nått maxgränsen för antal API-nycklar.
API_KEY_REVOKE_FAILED
HTTP 500 — Server error
Failed to revoke API key.
Swedish: API-nyckeln kunde inte återkallas.
API_KEY_SCOPE_INVALID
HTTP 400 — Bad request
One or more requested scopes are invalid.
Swedish: En eller flera scopes är ogiltiga.
COMPANY_CREATE_BAS_SEED_FAILED
HTTP 500 — Server error
Failed to seed the chart of accounts.
Swedish: Kontoplanen kunde inte skapas. Försök igen.
COMPANY_CREATE_DUPLICATE_ORG_NUMBER
HTTP 409 — Conflict
A company with that organisation number already exists.
Swedish: Ett företag med samma organisationsnummer finns redan.
COMPANY_CREATE_FAILED
HTTP 500 — Server error
Failed to create company.
Swedish: Företaget kunde inte skapas.
COMPANY_NOT_FOUND
HTTP 404 — Not found
Company not found.
Swedish: Företaget kunde inte hittas.
Provider connections
External provider OAuth, sync, consent.
PROVIDER_ACCEPT_FAILED
HTTP 500 — Server error
Failed to accept consent.
Swedish: Kunde inte slutföra anslutningen.
PROVIDER_AUTH_EXPIRED
HTTP 401 — Unauthorized
Provider authentication expired or refresh failed.
Swedish: Anslutningen till leverantören har gått ut. Återanslut för att fortsätta.
PROVIDER_COMPANY_ID_REQUIRED
HTTP 400 — Bad request
companyId is required for this provider.
Swedish: companyId krävs för den här leverantören.
PROVIDER_CONNECT_FAILED
HTTP 500 — Server error
Failed to start provider connection flow.
Swedish: Kunde inte starta anslutningen till leverantören.
PROVIDER_CONSENT_NOT_FOUND
HTTP 404 — Not found
Provider consent not found.
Swedish: Anslutningen kunde inte hittas.
PROVIDER_CONSENT_NOT_READY
HTTP 400 — Bad request
Provider consent is not ready; finish authentication first.
Swedish: Anslutningen är inte klar. Slutför inloggningen först.
PROVIDER_DISCONNECT_FAILED
HTTP 500 — Server error
Provider disconnect failed.
Swedish: Frånkoppling från leverantören misslyckades.
PROVIDER_INVALID
HTTP 400 — Bad request
Unknown provider.
Swedish: Okänd leverantör.
PROVIDER_MIGRATE_FAILED
HTTP 500 — Server error
Provider migration failed.
Swedish: Migrationen från leverantören misslyckades.
PROVIDER_PREVIEW_FAILED
HTTP 500 — Server error
Provider preview failed.
Swedish: Förhandsgranskningen från leverantören misslyckades.
PROVIDER_RATE_LIMITED
HTTP 429 — Rate limited
Provider rate limit exceeded.
Swedish: Leverantören begränsar antalet anrop just nu. Vänta en stund och försök igen.
PROVIDER_SIE_FETCH_FAILED
HTTP 502
Failed to fetch SIE data from the provider.
Swedish: Kunde inte hämta SIE-data från leverantören.
PROVIDER_SIE_NO_YEARS
HTTP 404 — Not found
No fiscal years available for 2024–2026.
Swedish: Inga räkenskapsår 2024–2026 hittades hos leverantören.
PROVIDER_SIE_ONLY_FORTNOX
HTTP 400 — Bad request
SIE export is currently only supported for Fortnox.
Swedish: SIE-export stöds för närvarande endast för Fortnox.
PROVIDER_STATUS_FAILED
HTTP 500 — Server error
Failed to fetch provider status.
Swedish: Kunde inte hämta status från leverantören.
PROVIDER_TOKEN_REQUIRED
HTTP 400 — Bad request
apiToken is required for this provider.
Swedish: API-token krävs för den här leverantören.
PROVIDER_TOKEN_SUBMIT_FAILED
HTTP 500 — Server error
Failed to submit provider token.
Swedish: Tokensubmissionen misslyckades.
PROVIDER_UNREACHABLE
HTTP 502
Provider service is unreachable (network/DNS error).
Swedish: Leverantörens tjänst är inte tillgänglig just nu. Försök igen om en stund.
PROVIDER_UPSTREAM_ERROR
HTTP 502
Provider returned an upstream 5xx error.
Swedish: Leverantören svarade med ett fel. Försök igen om en stund.
Other
ACCOUNTS_NOT_IN_CHART
HTTP 400 — Bad request
One or more BAS accounts are not active in the chart of accounts.
Swedish: Konton saknas i kontoplanen.
Remediation: Activate the missing accounts via bookkeeping settings, or use a different category.
Related resource: gnubok://chart-of-accounts
BANK_IMPORT_DUPLICATE_OTHER_COMPANY
HTTP 409 — Conflict
This file has already been imported into another company by this user.
Swedish: Den här filen har redan importerats för ett annat företag av samma användare.
BANK_IMPORT_FAILED
HTTP 500 — Server error
Bank file import failed.
Swedish: Bankfilsimporten misslyckades.
CANNOT_CORRECT_NON_POSTED
HTTP 400 — Bad request
Only posted entries can be corrected.
Swedish: Endast bokförda verifikationer kan rättas.
CANNOT_REVERSE_NON_POSTED
HTTP 400 — Bad request
Only posted entries can be reversed.
Swedish: Endast bokförda verifikationer kan stornas.
CURRENCY_REVALUATION_ALREADY_EXISTS
HTTP 409 — Conflict
Currency revaluation already exists for this period.
Swedish: En valutaomvärdering finns redan för denna period.
DOC_DOWNLOAD_FAILED
HTTP 500 — Server error
Failed to create signed download URL.
Swedish: Det gick inte att skapa nedladdningslänken.
DOC_LINK_ALREADY_LINKED
HTTP 409 — Conflict
Document is already linked to a journal entry.
Swedish: Dokumentet är redan kopplat till en verifikation.
DOC_LINK_ENTRY_NOT_FOUND
HTTP 404 — Not found
Journal entry not found.
Swedish: Verifikationen kunde inte hittas.
DOC_LINK_FAILED
HTTP 500 — Server error
Failed to link document to journal entry.
Swedish: Kopplingen misslyckades.
DOC_NOT_FOUND
HTTP 404 — Not found
Document not found.
Swedish: Dokumentet kunde inte hittas.
DOC_UPLOAD_NO_FILE
HTTP 400 — Bad request
No file attached.
Swedish: Ingen fil bifogad.
DOC_UPLOAD_STORAGE_FAILED
HTTP 500 — Server error
Document storage failed.
Swedish: Filen kunde inte sparas.
DOC_UPLOAD_TOO_LARGE
HTTP 400 — Bad request
Uploaded file exceeds the size limit.
Swedish: Filen är för stor.
DOC_UPLOAD_UNSUPPORTED_TYPE
HTTP 400 — Bad request
Unsupported file type.
Swedish: Filtypen stöds inte.
ENTRY_ALREADY_REVERSED
HTTP 409 — Conflict
Entry was already reversed by a concurrent operation.
Swedish: Verifikationen har redan stornats av en annan användare. Ladda om sidan och försök igen.
ENTRY_DATE_OUTSIDE_FISCAL_PERIOD
HTTP 400 — Bad request
Entry date is outside the active fiscal period.
Swedish: Datumet ligger utanför det valda räkenskapsåret.
Remediation: Use a date inside an open period or create one that covers it.
Related resource: gnubok://period/active
FISCAL_PERIOD_NOT_FOUND
HTTP 404 — Not found
No fiscal period covers the entry date.
Swedish: Räkenskapsperioden kunde inte hittas.
Remediation: Create or extend the relevant fiscal period before retrying.
Related resource: gnubok://period/active
INVALID_MAPPING_RESULT
HTTP 400 — Bad request
Mapping rules produced an invalid debit/credit account pair.
Swedish: Kontering saknas för transaktionen. Kontrollera bokföringsreglerna.
OB_ACCOUNT_ACTIVATION_FAILED
HTTP 500 — Server error
Failed to activate accounts in the chart of accounts.
Swedish: Kunde inte aktivera konton i kontoplanen.
OB_EXECUTE_FAILED
HTTP 500 — Server error
Opening balance import failed.
Swedish: Importen misslyckades.
OB_FILE_TOO_LARGE
HTTP 400 — Bad request
File exceeds the 10 MB size limit.
Swedish: Filen är för stor. Maxstorlek är 10 MB.
OB_INVALID_COLUMN_OVERRIDES
HTTP 400 — Bad request
Invalid column overrides JSON.
Swedish: Ogiltig kolumnmappning.
OB_INVALID_FORMAT
HTTP 400 — Bad request
Unsupported file format.
Swedish: Filformatet stöds inte. Tillåtna format: .xlsx, .xls, .csv, .ods.
OB_NO_FILE
HTTP 400 — Bad request
No file attached.
Swedish: Ingen fil bifogad.
OB_PARSE_FAILED
HTTP 500 — Server error
Failed to parse the opening balance file.
Swedish: Kunde inte tolka filen.
OB_PERIOD_ALREADY_HAS_BALANCES
HTTP 409 — Conflict
Fiscal period already has opening balances set.
Swedish: Räkenskapsperioden har redan ingående balanser.
OB_PERIOD_CLOSED
HTTP 400 — Bad request
Fiscal period is closed.
Swedish: Räkenskapsperioden är stängd.
OB_PERIOD_LOCKED
HTTP 400 — Bad request
Fiscal period is locked.
Swedish: Räkenskapsperioden är låst.
OB_PERIOD_NOT_FOUND
HTTP 404 — Not found
Fiscal period not found.
Swedish: Räkenskapsperioden hittades inte.
OB_PNL_ACCOUNT
HTTP 400 — Bad request
Profit & loss accounts (class 3-8) are not allowed in opening balances.
Swedish: Resultatkonton (klass 3-8) kan inte användas i ingående balanser.
OB_TOO_FEW_LINES
HTTP 400 — Bad request
At least two lines with amounts are required.
Swedish: Minst två rader med belopp krävs.
OB_UNBALANCED
HTTP 400 — Bad request
Opening balance debits and credits do not match.
Swedish: Debet och kredit balanserar inte.
OPENING_BAL_PERIOD_NOT_FOUND
HTTP 404 — Not found
Fiscal period not found.
Swedish: Räkenskapsperioden kunde inte hittas.
REG_IMPORT_EXECUTE_FAILED
HTTP 500 — Server error
Register import failed.
Swedish: Importen misslyckades.
REG_IMPORT_FILE_TOO_LARGE
HTTP 400 — Bad request
File exceeds the 10 MB size limit.
Swedish: Filen är för stor. Maxstorlek är 10 MB.
REG_IMPORT_INVALID_COLUMN_OVERRIDES
HTTP 400 — Bad request
Invalid column overrides JSON.
Swedish: Ogiltig kolumnmappning.
REG_IMPORT_INVALID_FORMAT
HTTP 400 — Bad request
Unsupported file format.
Swedish: Filformatet stöds inte. Tillåtna format: .xlsx, .xls, .csv, .ods.
REG_IMPORT_NO_FILE
HTTP 400 — Bad request
No file attached.
Swedish: Ingen fil bifogad.
REG_IMPORT_NO_ROWS
HTTP 400 — Bad request
No valid rows found in the file.
Swedish: Inga giltiga rader hittades i filen.
REG_IMPORT_PARSE_FAILED
HTTP 500 — Server error
Failed to parse the register file.
Swedish: Kunde inte tolka filen.
SIE_DUPLICATE_FILE
HTTP 409 — Conflict
File has already been imported.
Swedish: Den här filen har redan importerats.
SIE_DUPLICATE_PERIOD
HTTP 409 — Conflict
An SIE import for an overlapping fiscal period already exists.
Swedish: En SIE-import för ett överlappande räkenskapsår finns redan.
SIE_PARSE_EMPTY
HTTP 400 — Bad request
File is empty.
Swedish: Filen är tom (0 bytes). Kontrollera exporten från bokföringsprogrammet.
SIE_PARSE_FAILED
HTTP 500 — Server error
Failed to parse the SIE file.
Swedish: Kunde inte tolka SIE-filen. Filen kan vara skadad eller i ett format som inte stöds.
SIE_PARSE_FILE_TOO_LARGE
HTTP 400 — Bad request
File exceeds the 50 MB size limit.
Swedish: Filen är för stor. Maxstorlek är 50 MB.
SIE_PARSE_INVALID_TYPE
HTTP 400 — Bad request
Unsupported file type; upload a .sie or .se file.
Swedish: Filtypen stöds inte. Ladda upp en fil med ändelsen .sie eller .se.
SIE_PARSE_NO_FILE
HTTP 400 — Bad request
No file attached to the request.
Swedish: Ingen fil bifogad i förfrågan.
SIE_PARSE_VALIDATION_FAILED
HTTP 400 — Bad request
SIE file failed validation.
Swedish: SIE-filen innehåller valideringsfel som måste åtgärdas innan import.
SIE_REPLACE_FAILED
HTTP 400 — Bad request
Failed to replace SIE import.
Swedish: SIE-importen kunde inte ersättas.
SI_APPROVE_NOT_REGISTERED
HTTP 400 — Bad request
Only invoices in registered status can be approved.
Swedish: Endast registrerade fakturor kan godkännas.
SI_APPROVE_UPDATE_FAILED
HTTP 500 — Server error
Failed to update supplier invoice status to approved.
Swedish: Kunde inte godkänna leverantörsfakturan.
SI_CREATE_DUPLICATE_INVOICE_NUMBER
HTTP 409 — Conflict
A supplier invoice with that number already exists.
Swedish: En leverantörsfaktura med samma nummer finns redan.
SI_CREATE_FAILED
HTTP 500 — Server error
Failed to create supplier invoice.
Swedish: Leverantörsfakturan kunde inte skapas.
SI_CREATE_INVALID_INPUT
HTTP 400 — Bad request
Invalid combination of supplier invoice fields.
Swedish: Ogiltig kombination av fakturafält. Kontrollera formuläret och försök igen.
SI_CREDIT_ALREADY_CREDITED
HTTP 409 — Conflict
Supplier invoice has already been credited.
Swedish: Leverantörsfakturan har redan krediterats.
SI_CREDIT_FAILED
HTTP 500 — Server error
Failed to credit supplier invoice.
Swedish: Kunde inte kreditera leverantörsfakturan.
SI_CREDIT_PERIOD_LOCKED
HTTP 400 — Bad request
Bookkeeping is locked; credit note cannot be created.
Swedish: Bokföringen är låst. Krediteringen kan inte skapas.
SI_NOT_DRAFT
HTTP 400 — Bad request
Supplier invoice is not in registered status and cannot be updated or deleted.
Swedish: Leverantörsfakturan är inte längre i status "registrerad" och kan därför inte uppdateras eller tas bort.
SI_NOT_FOUND
HTTP 404 — Not found
Supplier invoice not found.
Swedish: Leverantörsfakturan kunde inte hittas.
SI_PAID_ALREADY
HTTP 409 — Conflict
Supplier invoice is already paid or credited.
Swedish: Leverantörsfakturan är redan betald eller krediterad.
SI_PAID_FAILED
HTTP 500 — Server error
Failed to record supplier invoice payment.
Swedish: Kunde inte registrera betalningen.
SI_PAID_LIKELY_DUPLICATE
HTTP 409 — Conflict
A likely-matching unlinked bank transaction was found for this supplier. Suggest linking it instead of creating a new payment entry.
Swedish: Det finns redan en obokförd banktransaktion som kan vara denna betalning. Länka den istället, eller markera som betald ändå om du är säker.
Remediation: Match the candidate transaction via POST /api/transactions/{id}/match-supplier-invoice, or resend mark-paid with force: true to create the payment entry anyway.
SI_PAID_NOT_PAYABLE
HTTP 400 — Bad request
Supplier invoice is not in a payable state.
Swedish: Leverantörsfakturan kan inte markeras som betald i nuvarande status.
SI_PAID_PERIOD_LOCKED
HTTP 400 — Bad request
Bookkeeping is locked; payment cannot be recorded.
Swedish: Bokföringen är låst. Betalningen kan inte registreras.
TX_BATCH_CATEGORIZE_EMPTY
HTTP 400 — Bad request
Batch is empty — pass at least one item.
Swedish: Batchen är tom.
TX_CATEGORIZE_INVALID_ACCOUNT
HTTP 400 — Bad request
The supplied account does not exist in the chart of accounts.
Swedish: Det valda kontot finns inte i kontoplanen.
Remediation: Activate the account in the chart of accounts or pick a different one.
Related resource: gnubok://chart-of-accounts
TX_CATEGORIZE_INVALID_MAPPING
HTTP 400 — Bad request
Mapping result is missing a debit or credit account.
Swedish: Konteringen saknar debet- eller kreditkonto.
TX_CATEGORIZE_INVALID_TEMPLATE
HTTP 400 — Bad request
The supplied booking template is invalid or does not match the entity type.
Swedish: Bokföringsmallen är ogiltig eller passar inte din bolagsform.
TX_CATEGORIZE_RACE
HTTP 409 — Conflict
Transaction was already categorized by another request.
Swedish: Transaktionen kategoriserades av en annan förfrågan. Ladda om och försök igen.
TX_CATEGORIZE_SUGGEST_CI_MATCH
HTTP 409 — Conflict
An unpaid customer invoice from the same customer matches this amount. Suggest matching to the invoice instead of a plain 151x categorization to avoid producing a duplicate verifikation (BFL 5 kap 5 §).
Swedish: Det finns en obetald kundfaktura från samma kund med samma belopp. Matcha mot fakturan istället för att bokföra direkt mot kundfordringskontot — annars skapas en dubblerad verifikation som måste stornas (BFL 5 kap 5 §).
Remediation: Match the transaction via POST /api/transactions/{id}/match-invoice, or resend with confirm_no_match: true to keep the plain 151x categorization.
TX_CATEGORIZE_SUGGEST_SI_MATCH
HTTP 409 — Conflict
An open supplier invoice from the same supplier matches this amount. Suggest matching to the invoice instead of a plain 244x categorization to avoid producing a duplicate verifikation (BFL 5 kap 5 §).
Swedish: Det finns en öppen leverantörsfaktura från samma leverantör med samma belopp. Matcha mot fakturan istället för att bokföra direkt på leverantörsskuldskontot — annars skapas en dubblerad verifikation som måste stornas (BFL 5 kap 5 §).
Remediation: Match the transaction via POST /api/transactions/{id}/match-supplier-invoice, or resend with confirm_no_match: true to keep the plain 244x categorization.
TX_CATEGORIZE_TX_NOT_FOUND
HTTP 404 — Not found
Transaction not found.
Swedish: Transaktionen kunde inte hittas.
TX_EXCHANGE_RATE_UNAVAILABLE
HTTP 502
Could not fetch the exchange rate from Riksbanken. The verifikation must be posted in SEK.
Swedish: Kunde inte hämta växelkursen från Riksbanken. Försök igen om en stund — verifikationen måste bokföras i SEK.
TX_INGEST_INSERT_FAILED
HTTP 500 — Server error
Transaction ingest failed.
Swedish: Transaktionerna kunde inte importeras.
TX_UNCATEGORIZE_JE_NOT_POSTED
HTTP 400 — Bad request
Journal entry is not in posted status; reversal is not possible.
Swedish: Verifikationen är inte bokförd. Reversal kan inte utföras.
TX_UNCATEGORIZE_NOT_BOOKED
HTTP 400 — Bad request
Transaction has no journal entry — nothing to uncategorize.
Swedish: Transaktionen är inte bokförd. Det finns inget att av-kategorisera.
TX_UNCATEGORIZE_NO_LINKED_ENTRY
HTTP 400 — Bad request
Transaction has no linked journal entry to reverse.
Swedish: Transaktionen har ingen kopplad verifikation att stornera.