Felsökning
Börja i loggen
Knox → Logg registrerar varje anrop med status, tid och Fortnox egen numeriska felkod, som är betydligt mer användbar än HTTP-statusen. Den sparar även anrops- och svarskroppar, om du inte stänger av det.
php craft knox/log/last-error # avslutar med felkod om något är fel
Den felkoden gör det användbart från övervakning.
Fortnox felkoder
| Kod | Betyder | Gör |
|---|---|---|
2000310 | Token saknas eller är fel | Anslut på nytt. Återkommer det direkt är Client Secret fel. |
2000663 | Ingen åtkomst till den behörigheten | Behörigheten gavs inte vid godkännandet. Anslut på nytt — att ändra inställningen räcker inte. |
2001103 | Kontot saknar API-licens | En fråga om Fortnox-abonnemang, inte om Knox. Kontakta Fortnox. |
2000423 | Kontot hittas inte | Ett konto i din mappning finns inte i kontoplanen. Tryck på Kontrollera att kontona finns i Fortnox. |
2003275 | Ej behörig | Oftast samma sak som 2000663. |
”Knox är inte anslutet till Fortnox”
Antingen har det aldrig varit det, eller så har refresh-token gått ut.
Fortnox ogiltigförklarar en refresh-token 45 dagar efter att den utfärdats, och klockan startar om först när den används. En butik utan ordrar på sju veckor — eller en staging-sajt ingen lägger ordrar på — kommer tillbaka till en död anslutning utan att något är fel.
php craft knox/connect/status
Står det expired, tryck på Anslut till Fortnox igen. För att det inte ska hända, lägg
knox/connect/refresh i en veckovis cron.
”Den här anslutningen saknar behörigheterna …”
Du lade till en behörighet i Knox inställningar efter att du anslöt. Fortnox låste behörighetsuppsättningen när du godkände integrationen, så den nya är inte beviljad och blir det aldrig förrän du ansluter på nytt.
Det är inte Knox som är försiktig — ett anrop som kräver en obeviljad behörighet kommer tillbaka som 403 med en kod som inte uppenbart säger ”behörighet”.
En faktura är Stoppad
Ingenting skickades. Anledningen står på raden, och den är en av en kort lista:
”… beskattas med 8,5 %, vilket inte är en av de momssatser en Fortnox-fakturarad kan bära” — en Fortnox-rad tar ett helt procenttal från dina konfigurerade satser. Rätta momssatsen i Commerce, annars går ordern inte att fakturera via Fortnox alls.
”… bär 2 olika momssatser” — en Fortnox-rad har exakt en. Dela upp orderraden.
”Ordern har moms både inbakad i priserna och pålagd ovanpå” — VATIncluded är på fakturanivå i
Fortnox. Rätta momssatserna så att ordern blir konsekvent, eller lås fast Moms i priser i
inställningarna.
”Den här ordern kräver momstypen EUREVERSEDVAT, som ligger på kundposten” — slå på Synka kunder. Se Moms.
”Fortnox kräver en kund på varje faktura, och Knox har ingen för den här ordern” — sätt ett samlingskundnummer, eller slå på kundsynkning.
”Fakturan skulle bli X men ordern debiterades Y” — avstämningsspärren. Det är Knox som vägrar skicka något felaktigt, och det betyder att modellen och ordern faktiskt skiljer sig med mer än avrundning. Kontrollera orderns justeringar; en fraktrad som stängts av medan frakt debiterades gör precis det här.
En faktura Stämmer inte med ordern
Den finns i Fortnox, och dess totalsumma är inte vad kunden betalade. Båda siffrorna finns på detaljsidan.
Är Fortnox öresutjämning skild från noll är det orsaken, och lösningen finns i Fortnox och inte i Knox — se Öresavrundning.
Är den noll är differensen en Knox inte förutsåg. Titta på raderna på fakturan i Fortnox; något har ändrats där efter att Knox skapade den.
En faktura är Okänt
Fortnox svarade aldrig på skapandet. Fakturan kan finnas där eller inte, så Knox skickar den inte igen — det är hela poängen med tillståndet.
php craft knox/sync/reconcile
eller tryck på Kontrollera mot Fortnox. Knox slår upp fakturan på orderreferensen den stämplar på varje faktura, och gör sedan antingen anspråk på det Fortnox har eller röjer vägen för ett nytt försök.
Lös aldrig det här genom att skapa en faktura för hand i Fortnox — avstämningen hittar den inte om referensen saknas, och du slutar med två.
Bokföringen misslyckas i januari
Fortnox har inget räkenskapsår som täcker 2027-01-04
Ingen har skapat det nya räkenskapsåret i Fortnox än. Skapa det där och tryck på Bokför igen — knappen frågar Fortnox på nytt i stället för att lita på det cachade svaret.
Anropsbegränsning
Fortnox tillåter 25 anrop per rullande fem sekunder per client ID och företag. Knox håller sig själv i takt över varje kö-arbetare på sajten så att de delar en budget i stället för att var och en hålla sig artigt under gränsen och tillsammans spränga den.
Ser du 429:or ändå, höj Minsta intervall mellan anrop över 220 ms. Något annat använder samma integrationsuppgifter.
En faktura ligger kvar i Fortnox ”att skriva ut”
Slå på Markera som skickad. Din butik har redan mejlat kunden ett kvitto; utan flaggan väntar fakturan på att skrivas ut för evigt.
Ingenting händer alls
Kontrollera, i ordning:
php craft knox/connect/status— är den ansluten?- Är utlösaren satt till Bara på begäran?
- Är Endast helt betalda ordrar på, med en obetald order?
- Körs kön? Fakturering är alltid ett köjobb.
- Knox → Logg — ett anrop som misslyckades registreras även när inget syns i fakturalistan.
Ett rent svar för en enskild order
php craft knox/sync/order 1234 --dry
Skriver ut ordersumman, fakturasumman, momstypen, motiveringen, varje notis och exakt vilken data som skulle skickas — utan att skicka något. Det är snabbaste sättet att se vad Knox tycker om en order.