Fra ordre til kladde
Et typisk input kommer fra en afsluttet ordre i et andet system. Integrationens ansvar er at mappe kundenavn, fakturadato, eventuel forfaldsdato og de konkrete ordrelinjer. Opret først kladden, når kildeordren har en stabil identitet, som kan bruges i appens idempotensstrategi.
invoices:write giver adgang til kladdeoprettelse. Det giver ikke ret til at udstede, sende, bogføre, betale eller annullere en allerede udstedt faktura. De handlinger kan have egne konsekvenser og skal ikke gemmes bag et enkelt generisk create-kald.
Den publicerede inputprofil
Fakturakladden kræver customer_name, issue_date og 1–500 linjer. Valgfrit kan du angive delivery_date og customer_address. Valuta er DKK. Linjens unit_price_minor er hele øre, qty er en positiv mængde med højst tre decimaler og er som standard 1, og discount_pct er mindst nul og under 100 med højst tre decimaler.
income_account_no skal være en tilladt, aktiv indtægtskonto i kundens udvalgte konfiguration. Et eksisterende kontonummer fra en anden virksomhed er ikke gyldigt. Valgfri tax_code_id skal også være en autoriseret reference i den konkrete kontekst.
Ruten accepterer ikke selvvalgt fakturanummer, intern status, bankoplysninger, Stripe-ID eller posted-entry-reference. Se opret fakturakladde for den komplette felttabel og et konkret eksempel.
Successvar og kvittering
En succes returnerer en kladdeidentitet og status: "draft" sammen med operationskvitteringens oplysninger. Kladden har sent: false og posted: false, og total_incl_vat_minor er null, indtil fakturaen er bogført. Integrationen skal gemme resultatet mod kildeordren og ikke fortsætte med at kalde create under en ny nøgle ved hvert refresh af sin UI.
Ved et timeout gentages samme operation med samme nøgle og input. Ved ændrede ordrelinjer er der tale om en ny forretningsbeslutning; partner-API'et har ikke et update-endpoint, der stiltiende redigerer en eksisterende kladde. Afklar ændringsflowet frem for at oprette en dublet.
Læsning af salgsfakturaer
GET /invoices med scopet invoices:read viser organisationens salgsfakturaer, også dem appen ikke selv har oprettet. Cursoren after er en UUID. Svaret indeholder ingen bank-, betalings-, afsender-bankkonto- eller Stripe-felter.
Listen er ikke en garanti for kundens aktuelle betalingsstatus. Et dashboard, som kræver aktuelle betalingsoplysninger, kan derfor ikke bygges oven på listen. Produktbehovet skal have en separat kontrakt, som også undersøger, om oplysningerne er bankafledte eller på anden måde begrænsede.
Forholdet til Hours' fakturafunktion
Kladden oprettes gennem Hours' eksisterende fakturafunktion i samme transaktion som operationskvitteringen. Felterne i partner-API'et er ikke identiske med felterne i Hours' egen fakturaopsætning.
Test kladdeoprettelse, forkert indtægtskonto, forkert momskode, ugyldig dato, ubekræftet grant og samtidige retries i sandbox. Kontrollér den oprettede kladde og dens linjer i Hours.