API-referanse

Alle operasjonene i vbeslag API v1, laget fra det samme dokumentet som API-et sjekker med.

Nøkkelen

Hvem er jeg? Sjekk at nøkkelen virker

Virker
GET /api/v1/me

Det første kallet: viser verkstedet, nøkkelen (aldri hemmeligheten), delene som er slått på, og grensene. Avdelingene (locations) kommer: til verkstedet kan ha avdelinger, er feltet utelatt.

RettigheterBare en nøkkel
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Svaret (200)

FeltTypeMå medBeskrivelse
organizationobjectJa
organization.namestringJa
organization.shopSlugstring | nullJa
keyobjectJa
key.namestringJa
key.prefixstringJaBegynnelsen av nøkkelen, som vist i appen. Aldri hemmeligheten.
key.environment"live" | "test"Ja
key.purpose"nettside" | "eget_system" | "kunde" | "egendefinert" | "maskin" | "regneark" | "leverandor"Ja
key.scopes"catalog:read" | "prices:read" | "orders:read" | "orders:write" | "orders:status" | "agreements:read" | "customers:read" | "customers:write" | "invoices:read" | "production:read" | "production:status" | "reports:read"[]Ja
key.customerobject | nullJaSatt når nøkkelen er en kundenøkkel.
key.createdAtstringJaTidspunkt, ISO 8601 i UTC
key.expiresAtstring | nullJaTidspunkt, ISO 8601 i UTC
featuresobjectJa
features.apibooleanJa
features.webhooksbooleanJa
features.shopbooleanJa
features.avtalerbooleanJa
features.lapperbooleanJa
features.kontorbooleanJa
limitsobjectJa
limits.perMinuteobjectJa
limits.perDayobjectJa
limits.perWorkshopPerDayintegerJa
limits.failedLoginsobjectJa
modulesobject[]NeiModulene verkstedet har slått på.
locationsobject[]NeiKommer: avdelingene, når verkstedet har to eller flere. Til avdelinger finnes, er feltet utelatt.
apiVersion"v1"Ja

Feilkoder

  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Ordre

Send inn en ordre eller en forespørsel

Virker
POST /api/v1/orders

Blir en ordre i verkstedets liste med neste nummer, akkurat som en lapp, en ordre fra disken eller fra nettbutikken. En forespørsel (intent: request) venter på at verkstedet bekrefter. Et avrop på en godtatt avtale (agreementNumber og position-linjer, modulen Avtaler) blir Mottatt med avtalens priser; en kundenøkkel når bare sin egen kundes avtaler. Idempotency-Key gjør det trygt å prøve igjen.

Rettigheterorders:write
KundenøkkelJa, for sine egne
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key

Parametre

FeltTypeMå medBeskrivelse
Idempotency-Key (header)stringJa8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.

Det du sender

FeltTypeMå medBeskrivelse
intent"order" | "request"Jarequest: en Forespørsel verkstedet bekrefter («Ingenting er avtalt før du har bekreftet»). order: rett inn som Mottatt (bare verkstedets egne nøkler, med kunde).
customerobject | object | object | nullNeiKunden: { "id" }, { "number" } (kundenummeret i registeret) eller { "orgNr" }.
contactContactInput | nullNei
createCustomerbooleanNeiLag kunden i registeret fra contact (bare med en ekte nøkkel som er verkstedets egen).
agreementNumberinteger | nullNeiEt avrop på en godtatt avtale (intent: "order", bare position-linjer). Kunden, prosjektet og prisene er avtalens; en kundenøkkel når bare sin egen kundes avtaler. Ordren får source: "avrop".
projectNostring | nullNei
ordererstring | nullNei
customerPostring | nullNei
titlestring | nullNei
notestring | nullNei
deliveryobject | nullNei
delivery.mode"henting" | "levering" | nullNei
delivery.requestedDatestring | nullNeiDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullNei
linesTextLineInput | PositionLineInput[]Nei
externalRefstring | nullNeiDin egen id (for eksempel woo-18822). Unik per nøkkel: samme id igjen gir 409 med ordrenummeret.

Svaret (201)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberintegerJaOrdrenummeret i verkstedets serie (testordre har sin egen serie).
numberDisplaystringJa«004711», eller «T-000012» for en testordre.
isTestbooleanJa
source"lapp" | "manuell" | "tilbud" | "avrop" | "nettbutikk" | "api" | "import" | "portal" | "nettverk"JaHvor ordren kom fra (lapp, manuell, tilbud, avrop, nettbutikk, api, import). Kan få nye verdier: les en ukjent verdi som «annet».
channelstring | nullJaNavnet på nøkkelen eller butikkens «kilde»: der ordren kom fra.
status"forespurt" | "mottatt" | "i_arbeid" | "klar" | "levert" | "fakturert" | "betalt" | "avbrutt"JaLagret status: forespurt, mottatt, i_arbeid, klar, levert, fakturert, betalt, avbrutt. Stigen får aldri et nytt trinn uten v2.
statusLabelstringJaStatusen med appens ord: Forespørsel, Mottatt, I arbeid, Klar, Levert/Hentet, Fakturert, Betalt, Avbrutt/Avvist.
statusChangedAtstringJaTidspunkt, ISO 8601 i UTC
customerobject | nullJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
contactobject | nullJaBare så lenge ordren ikke har en kunde (en forespørsel).
contact.namestringJa
contact.companystring | nullJa
contact.orgNrstring | nullJa
contact.emailstring | nullJa
contact.mobilestring | nullJa
projectNostring | nullJa
ordererstring | nullJa
customerPostring | nullJa
titlestring | nullJa
notestring | nullJa
agreementobject | nullJa
agreement.idstringJaUUID
deliveryobjectJa
delivery.mode"henting" | "levering" | nullJa
delivery.requestedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.deliveryDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullJa
linesOrderLine[]Ja
totalsobjectJa
totals.netOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.vatOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.grossOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.currency"NOK"Ja
totals.priceStatus"priced" | "partial" | "in_kalkyle" | "hidden"Japriced: alle linjer har pris; partial: noen linjer venter på pris; in_kalkyle: prisen står i kalkylen; hidden: skjult for en kundenøkkel. Beløpene er null når de ikke er kjent.
hasKalkyleboolean | nullJaOm ordren er priset i en kalkyle; null for en kundenøkkel.
stickerNumbersinteger[]JaLappnumrene som er knyttet til ordren.
readyWithoutReceiptbooleanJa«Klar uten mottak».
readySmsobject | nullJaKlar-SMS-en: status og tider, aldri nummer eller tekst. Null for en kundenøkkel.
readySms.status"queued" | "cancelled" | "sending" | "sent" | "delivered" | "failed"Ja
readySms.sendAfterstring | nullJaTidspunkt, ISO 8601 i UTC
readySms.sentAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoiceobject | nullJa
invoice.idstringJaUUID
invoice.kind"invoice" | "credit_note" | "erp_mark"Ja
invoice.numberstring | nullJa
invoice.issuedAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoice.erpNostring | nullJa
attachmentsAttachment[]Ja
externalRefstring | nullJaDin egen id for ordren, unik per nøkkel.
createdAtstringJaTidspunkt, ISO 8601 i UTC
receivedAtstring | nullJaTidspunkt, ISO 8601 i UTC
inWorkAtstring | nullJaTidspunkt, ISO 8601 i UTC
readyAtstring | nullJaTidspunkt, ISO 8601 i UTC
deliveredAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoicedAtstring | nullJaTidspunkt, ISO 8601 i UTC
paidAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelledAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelReasonstring | nullJa
updatedAtstringJaTidspunkt, ISO 8601 i UTC
versionintegerJaØker ved hver endring. Send den tilbake i If-Match: "v<version>".
productionOrderProduction | nullNeiBøyearkene på ordren, når verkstedet har Produksjon; null uten Produksjon og for en kundenøkkel. Med i svarene fra ordreoperasjonene, ikke i webhooks og GET /events. Et bøyd ark endrer ikke version, så når production ikke er null, svarer If-None-Match aldri 304.

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • test_key_not_allowed · En testnøkkel kan ikke dette: den endrer aldri kunderegisteret, og et avrop er alltid en ekte ordre.
  • duplicate_external_ref · Du har allerede sendt en ordre med denne externalRef. existingNumber er ordrenummeret.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • key_owner_missing · Brukeren som laget nøkkelen finnes ikke lenger. Lag en ny nøkkel.
  • agreement_not_active · Avtalen tar ikke imot avrop: den er ikke godtatt, er utløpt eller erstattet, eller finnes ikke for denne nøkkelen. reason sier hvorfor.
  • contact_invalid · Kontakten trenger et navn og en e-post eller et norsk mobilnummer.
  • content_required · Ordren må ha minst en linje eller en merknad (note) på minst 3 tegn.
  • customer_fixed_by_key · Denne nøkkelen hører til en kunde, og ordren må være for den kunden.
  • customer_invalid · Noe i kundefeltene er feil. fields sier hva.
  • customer_required · Ordren må ha en kunde. Send customer, eller contact med createCustomer: true.
  • date_invalid · Datoen er ikke en gyldig dag (ÅÅÅÅ-MM-DD).
  • delivery_date_not_allowed · Avtalen leverer ikke den dagen. nextPossibleDate er den første dagen som går.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • intent_not_allowed · En kundenøkkel sender forespørsler ("intent": "request"), eller avrop på en godtatt avtale (agreementNumber).
  • length_over_max · Lengden er over det avtalen tillater (maxLengthMm). fields sier hvilken linje.
  • orderer_required · Denne kunden krever bestiller (orderer).
  • position_not_in_agreement · Posisjonen hører ikke til denne avtalen. Hent posisjonene med GET /agreements/{number}. fields sier hvilken linje.
  • project_no_required · Denne kunden krever prosjektnummer (projectNo).
  • quantity_invalid · Antallet må være mellom 1 og 500.
  • too_many_lines · Ordren kan ha høyst 100 linjer.
  • idempotency_key_required · Send Idempotency-Key med denne forespørselen.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Eksempel

Eksempel: POST /orders
{
  "intent": "request",
  "contact": {
    "name": "Kari Nordmann",
    "email": "kari@example.no",
    "mobile": "+4791234567"
  },
  "title": "Pipebeslag",
  "note": "Se bilde av skissen",
  "lines": [
    {
      "kind": "text",
      "description": "Pipebeslag 600×600, stål sort",
      "quantity": 1,
      "unit": "stk"
    }
  ],
  "externalRef": "woo-18822"
}

List ordre

Virker
GET /api/v1/orders

Nyeste først, eller etter endring for å synkronisere (sort=updatedAt med updatedSince og cursor). En testnøkkel ser testordrene. Avropene på en avtale: agreementNumber=12.

Rettigheterorders:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
status (query)stringNeiEn eller flere statuser, med komma: mottatt,i_arbeid.
view (query)"apne" | "klar_ikke_fakturert"Neiapne: alt som ikke er lukket; klar_ikke_fakturert: Klar eller Levert uten faktura.
source (query)"lapp" | "manuell" | "tilbud" | "avrop" | "nettbutikk" | "api" | "import" | "portal" | "nettverk"NeiHvor ordren kom fra (lapp, manuell, tilbud, avrop, nettbutikk, api, import). Kan få nye verdier: les en ukjent verdi som «annet».
customerId (query)stringNeiUUID
agreementNumber (query)stringNeiAvropene på en avtale: avtalenummeret, som «12» (SR-AVT-4).
projectNo (query)stringNei
externalRef (query)stringNei
createdSince (query)stringNeiTidspunkt, ISO 8601 i UTC
updatedSince (query)stringNeiTidspunkt, ISO 8601 i UTC
sort (query)"-createdAt" | "createdAt" | "updatedAt"NeiNyeste først (-createdAt, standard), eldste først (createdAt), eller etter endring (updatedAt, for synkronisering).
limit (query)integerNeiAntall per side, 1–100 (25 når den mangler).
cursor (query)stringNeinextCursor fra forrige side.

Svaret (200)

FeltTypeMå medBeskrivelse
dataOrder[]Ja
nextCursorstring | nullJaGi denne som cursor for neste side; null når det ikke er flere.

Feilkoder

  • invalid_cursor · Markøren (cursor) er ikke en vi har gitt ut.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hent en ordre

Virker
GET /api/v1/orders/{number}

Med linjer, filer, faktura og Klar-SMS-ens status. ETag er versjonen; send If-None-Match for å få 304 når ingenting er endret.

Rettigheterorders:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberintegerJaOrdrenummeret i verkstedets serie (testordre har sin egen serie).
numberDisplaystringJa«004711», eller «T-000012» for en testordre.
isTestbooleanJa
source"lapp" | "manuell" | "tilbud" | "avrop" | "nettbutikk" | "api" | "import" | "portal" | "nettverk"JaHvor ordren kom fra (lapp, manuell, tilbud, avrop, nettbutikk, api, import). Kan få nye verdier: les en ukjent verdi som «annet».
channelstring | nullJaNavnet på nøkkelen eller butikkens «kilde»: der ordren kom fra.
status"forespurt" | "mottatt" | "i_arbeid" | "klar" | "levert" | "fakturert" | "betalt" | "avbrutt"JaLagret status: forespurt, mottatt, i_arbeid, klar, levert, fakturert, betalt, avbrutt. Stigen får aldri et nytt trinn uten v2.
statusLabelstringJaStatusen med appens ord: Forespørsel, Mottatt, I arbeid, Klar, Levert/Hentet, Fakturert, Betalt, Avbrutt/Avvist.
statusChangedAtstringJaTidspunkt, ISO 8601 i UTC
customerobject | nullJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
contactobject | nullJaBare så lenge ordren ikke har en kunde (en forespørsel).
contact.namestringJa
contact.companystring | nullJa
contact.orgNrstring | nullJa
contact.emailstring | nullJa
contact.mobilestring | nullJa
projectNostring | nullJa
ordererstring | nullJa
customerPostring | nullJa
titlestring | nullJa
notestring | nullJa
agreementobject | nullJa
agreement.idstringJaUUID
deliveryobjectJa
delivery.mode"henting" | "levering" | nullJa
delivery.requestedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.deliveryDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullJa
linesOrderLine[]Ja
totalsobjectJa
totals.netOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.vatOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.grossOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.currency"NOK"Ja
totals.priceStatus"priced" | "partial" | "in_kalkyle" | "hidden"Japriced: alle linjer har pris; partial: noen linjer venter på pris; in_kalkyle: prisen står i kalkylen; hidden: skjult for en kundenøkkel. Beløpene er null når de ikke er kjent.
hasKalkyleboolean | nullJaOm ordren er priset i en kalkyle; null for en kundenøkkel.
stickerNumbersinteger[]JaLappnumrene som er knyttet til ordren.
readyWithoutReceiptbooleanJa«Klar uten mottak».
readySmsobject | nullJaKlar-SMS-en: status og tider, aldri nummer eller tekst. Null for en kundenøkkel.
readySms.status"queued" | "cancelled" | "sending" | "sent" | "delivered" | "failed"Ja
readySms.sendAfterstring | nullJaTidspunkt, ISO 8601 i UTC
readySms.sentAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoiceobject | nullJa
invoice.idstringJaUUID
invoice.kind"invoice" | "credit_note" | "erp_mark"Ja
invoice.numberstring | nullJa
invoice.issuedAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoice.erpNostring | nullJa
attachmentsAttachment[]Ja
externalRefstring | nullJaDin egen id for ordren, unik per nøkkel.
createdAtstringJaTidspunkt, ISO 8601 i UTC
receivedAtstring | nullJaTidspunkt, ISO 8601 i UTC
inWorkAtstring | nullJaTidspunkt, ISO 8601 i UTC
readyAtstring | nullJaTidspunkt, ISO 8601 i UTC
deliveredAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoicedAtstring | nullJaTidspunkt, ISO 8601 i UTC
paidAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelledAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelReasonstring | nullJa
updatedAtstringJaTidspunkt, ISO 8601 i UTC
versionintegerJaØker ved hver endring. Send den tilbake i If-Match: "v<version>".
productionOrderProduction | nullNeiBøyearkene på ordren, når verkstedet har Produksjon; null uten Produksjon og for en kundenøkkel. Med i svarene fra ordreoperasjonene, ikke i webhooks og GET /events. Et bøyd ark endrer ikke version, så når production ikke er null, svarer If-None-Match aldri 304.

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Endre prosjektnr, bestiller, merknad eller levering

Virker
PATCH /api/v1/orders/{number}

Krever If-Match med versjonen du så. Avvist når ordren er fakturert. En kundenøkkel kan bare endre sine egne ordre før de er klare.

Rettigheterorders:write
KundenøkkelJa, for sine egne
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key (valgfri), If-Match

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.
If-Match (header)stringJaVersjonen du så, som "v3" (fra version eller ETag).

Det du sender

FeltTypeMå medBeskrivelse
projectNostring | nullNei
ordererstring | nullNei
customerPostring | nullNei
titlestring | nullNei
notestring | nullNei
deliveryobjectNei
delivery.requestedDatestring | nullNeiDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullNei

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberintegerJaOrdrenummeret i verkstedets serie (testordre har sin egen serie).
numberDisplaystringJa«004711», eller «T-000012» for en testordre.
isTestbooleanJa
source"lapp" | "manuell" | "tilbud" | "avrop" | "nettbutikk" | "api" | "import" | "portal" | "nettverk"JaHvor ordren kom fra (lapp, manuell, tilbud, avrop, nettbutikk, api, import). Kan få nye verdier: les en ukjent verdi som «annet».
channelstring | nullJaNavnet på nøkkelen eller butikkens «kilde»: der ordren kom fra.
status"forespurt" | "mottatt" | "i_arbeid" | "klar" | "levert" | "fakturert" | "betalt" | "avbrutt"JaLagret status: forespurt, mottatt, i_arbeid, klar, levert, fakturert, betalt, avbrutt. Stigen får aldri et nytt trinn uten v2.
statusLabelstringJaStatusen med appens ord: Forespørsel, Mottatt, I arbeid, Klar, Levert/Hentet, Fakturert, Betalt, Avbrutt/Avvist.
statusChangedAtstringJaTidspunkt, ISO 8601 i UTC
customerobject | nullJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
contactobject | nullJaBare så lenge ordren ikke har en kunde (en forespørsel).
contact.namestringJa
contact.companystring | nullJa
contact.orgNrstring | nullJa
contact.emailstring | nullJa
contact.mobilestring | nullJa
projectNostring | nullJa
ordererstring | nullJa
customerPostring | nullJa
titlestring | nullJa
notestring | nullJa
agreementobject | nullJa
agreement.idstringJaUUID
deliveryobjectJa
delivery.mode"henting" | "levering" | nullJa
delivery.requestedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.deliveryDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullJa
linesOrderLine[]Ja
totalsobjectJa
totals.netOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.vatOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.grossOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.currency"NOK"Ja
totals.priceStatus"priced" | "partial" | "in_kalkyle" | "hidden"Japriced: alle linjer har pris; partial: noen linjer venter på pris; in_kalkyle: prisen står i kalkylen; hidden: skjult for en kundenøkkel. Beløpene er null når de ikke er kjent.
hasKalkyleboolean | nullJaOm ordren er priset i en kalkyle; null for en kundenøkkel.
stickerNumbersinteger[]JaLappnumrene som er knyttet til ordren.
readyWithoutReceiptbooleanJa«Klar uten mottak».
readySmsobject | nullJaKlar-SMS-en: status og tider, aldri nummer eller tekst. Null for en kundenøkkel.
readySms.status"queued" | "cancelled" | "sending" | "sent" | "delivered" | "failed"Ja
readySms.sendAfterstring | nullJaTidspunkt, ISO 8601 i UTC
readySms.sentAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoiceobject | nullJa
invoice.idstringJaUUID
invoice.kind"invoice" | "credit_note" | "erp_mark"Ja
invoice.numberstring | nullJa
invoice.issuedAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoice.erpNostring | nullJa
attachmentsAttachment[]Ja
externalRefstring | nullJaDin egen id for ordren, unik per nøkkel.
createdAtstringJaTidspunkt, ISO 8601 i UTC
receivedAtstring | nullJaTidspunkt, ISO 8601 i UTC
inWorkAtstring | nullJaTidspunkt, ISO 8601 i UTC
readyAtstring | nullJaTidspunkt, ISO 8601 i UTC
deliveredAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoicedAtstring | nullJaTidspunkt, ISO 8601 i UTC
paidAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelledAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelReasonstring | nullJa
updatedAtstringJaTidspunkt, ISO 8601 i UTC
versionintegerJaØker ved hver endring. Send den tilbake i If-Match: "v<version>".
productionOrderProduction | nullNeiBøyearkene på ordren, når verkstedet har Produksjon; null uten Produksjon og for en kundenøkkel. Med i svarene fra ordreoperasjonene, ikke i webhooks og GET /events. Et bøyd ark endrer ikke version, så når production ikke er null, svarer If-None-Match aldri 304.

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • already_invoiced · Ordren er fakturert og kan ikke endres.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • stale_version · Ordren er endret siden du leste den. Hent den på nytt og send med ny versjon.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • date_invalid · Datoen er ikke en gyldig dag (ÅÅÅÅ-MM-DD).
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • precondition_required · Send If-Match med versjonen du så, for eksempel "v3".
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Bekreft en forespørsel

Virker
POST /api/v1/orders/{number}/confirm

Forespørsel → Mottatt, med en kunde fra registeret eller en ny kunde laget fra forespørselen. Den som spurte får bekreftelsen.

Rettigheterorders:write
KundenøkkelNei
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key (valgfri), If-Match (valgfri)

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.
If-Match (header)stringNeiVersjonen du så, som "v3" (fra version eller ETag).

Det du sender

FeltTypeMå medBeskrivelse
customerIdstring | nullNeiUUID
createCustomerbooleanNei

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberintegerJaOrdrenummeret i verkstedets serie (testordre har sin egen serie).
numberDisplaystringJa«004711», eller «T-000012» for en testordre.
isTestbooleanJa
source"lapp" | "manuell" | "tilbud" | "avrop" | "nettbutikk" | "api" | "import" | "portal" | "nettverk"JaHvor ordren kom fra (lapp, manuell, tilbud, avrop, nettbutikk, api, import). Kan få nye verdier: les en ukjent verdi som «annet».
channelstring | nullJaNavnet på nøkkelen eller butikkens «kilde»: der ordren kom fra.
status"forespurt" | "mottatt" | "i_arbeid" | "klar" | "levert" | "fakturert" | "betalt" | "avbrutt"JaLagret status: forespurt, mottatt, i_arbeid, klar, levert, fakturert, betalt, avbrutt. Stigen får aldri et nytt trinn uten v2.
statusLabelstringJaStatusen med appens ord: Forespørsel, Mottatt, I arbeid, Klar, Levert/Hentet, Fakturert, Betalt, Avbrutt/Avvist.
statusChangedAtstringJaTidspunkt, ISO 8601 i UTC
customerobject | nullJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
contactobject | nullJaBare så lenge ordren ikke har en kunde (en forespørsel).
contact.namestringJa
contact.companystring | nullJa
contact.orgNrstring | nullJa
contact.emailstring | nullJa
contact.mobilestring | nullJa
projectNostring | nullJa
ordererstring | nullJa
customerPostring | nullJa
titlestring | nullJa
notestring | nullJa
agreementobject | nullJa
agreement.idstringJaUUID
deliveryobjectJa
delivery.mode"henting" | "levering" | nullJa
delivery.requestedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.deliveryDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullJa
linesOrderLine[]Ja
totalsobjectJa
totals.netOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.vatOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.grossOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.currency"NOK"Ja
totals.priceStatus"priced" | "partial" | "in_kalkyle" | "hidden"Japriced: alle linjer har pris; partial: noen linjer venter på pris; in_kalkyle: prisen står i kalkylen; hidden: skjult for en kundenøkkel. Beløpene er null når de ikke er kjent.
hasKalkyleboolean | nullJaOm ordren er priset i en kalkyle; null for en kundenøkkel.
stickerNumbersinteger[]JaLappnumrene som er knyttet til ordren.
readyWithoutReceiptbooleanJa«Klar uten mottak».
readySmsobject | nullJaKlar-SMS-en: status og tider, aldri nummer eller tekst. Null for en kundenøkkel.
readySms.status"queued" | "cancelled" | "sending" | "sent" | "delivered" | "failed"Ja
readySms.sendAfterstring | nullJaTidspunkt, ISO 8601 i UTC
readySms.sentAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoiceobject | nullJa
invoice.idstringJaUUID
invoice.kind"invoice" | "credit_note" | "erp_mark"Ja
invoice.numberstring | nullJa
invoice.issuedAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoice.erpNostring | nullJa
attachmentsAttachment[]Ja
externalRefstring | nullJaDin egen id for ordren, unik per nøkkel.
createdAtstringJaTidspunkt, ISO 8601 i UTC
receivedAtstring | nullJaTidspunkt, ISO 8601 i UTC
inWorkAtstring | nullJaTidspunkt, ISO 8601 i UTC
readyAtstring | nullJaTidspunkt, ISO 8601 i UTC
deliveredAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoicedAtstring | nullJaTidspunkt, ISO 8601 i UTC
paidAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelledAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelReasonstring | nullJa
updatedAtstringJaTidspunkt, ISO 8601 i UTC
versionintegerJaØker ved hver endring. Send den tilbake i If-Match: "v<version>".
productionOrderProduction | nullNeiBøyearkene på ordren, når verkstedet har Produksjon; null uten Produksjon og for en kundenøkkel. Med i svarene fra ordreoperasjonene, ikke i webhooks og GET /events. Et bøyd ark endrer ikke version, så når production ikke er null, svarer If-None-Match aldri 304.

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • test_key_not_allowed · En testnøkkel kan ikke dette: den endrer aldri kunderegisteret, og et avrop er alltid en ekte ordre.
  • not_found · Fant ikke dette.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • key_owner_missing · Brukeren som laget nøkkelen finnes ikke lenger. Lag en ny nøkkel.
  • stale_version · Ordren er endret siden du leste den. Hent den på nytt og send med ny versjon.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • customer_invalid · Noe i kundefeltene er feil. fields sier hva.
  • customer_required · Ordren må ha en kunde. Send customer, eller contact med createCustomer: true.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Avbryt en ordre

Virker
POST /api/v1/orders/{number}/cancel

Med en grunn. En kundenøkkel kan bare trekke tilbake sine egne forespørsler: alt annet kan være i arbeid, og da må kunden ringe.

Rettigheterorders:write
KundenøkkelJa, for sine egne
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key (valgfri), If-Match (valgfri)

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.
If-Match (header)stringNeiVersjonen du så, som "v3" (fra version eller ETag).

Det du sender

FeltTypeMå medBeskrivelse
reasonstringJa

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberintegerJaOrdrenummeret i verkstedets serie (testordre har sin egen serie).
numberDisplaystringJa«004711», eller «T-000012» for en testordre.
isTestbooleanJa
source"lapp" | "manuell" | "tilbud" | "avrop" | "nettbutikk" | "api" | "import" | "portal" | "nettverk"JaHvor ordren kom fra (lapp, manuell, tilbud, avrop, nettbutikk, api, import). Kan få nye verdier: les en ukjent verdi som «annet».
channelstring | nullJaNavnet på nøkkelen eller butikkens «kilde»: der ordren kom fra.
status"forespurt" | "mottatt" | "i_arbeid" | "klar" | "levert" | "fakturert" | "betalt" | "avbrutt"JaLagret status: forespurt, mottatt, i_arbeid, klar, levert, fakturert, betalt, avbrutt. Stigen får aldri et nytt trinn uten v2.
statusLabelstringJaStatusen med appens ord: Forespørsel, Mottatt, I arbeid, Klar, Levert/Hentet, Fakturert, Betalt, Avbrutt/Avvist.
statusChangedAtstringJaTidspunkt, ISO 8601 i UTC
customerobject | nullJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
contactobject | nullJaBare så lenge ordren ikke har en kunde (en forespørsel).
contact.namestringJa
contact.companystring | nullJa
contact.orgNrstring | nullJa
contact.emailstring | nullJa
contact.mobilestring | nullJa
projectNostring | nullJa
ordererstring | nullJa
customerPostring | nullJa
titlestring | nullJa
notestring | nullJa
agreementobject | nullJa
agreement.idstringJaUUID
deliveryobjectJa
delivery.mode"henting" | "levering" | nullJa
delivery.requestedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.deliveryDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
delivery.addressobject | nullJa
linesOrderLine[]Ja
totalsobjectJa
totals.netOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.vatOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.grossOreinteger | nullJaHele øre (1 kr = 100 øre)
totals.currency"NOK"Ja
totals.priceStatus"priced" | "partial" | "in_kalkyle" | "hidden"Japriced: alle linjer har pris; partial: noen linjer venter på pris; in_kalkyle: prisen står i kalkylen; hidden: skjult for en kundenøkkel. Beløpene er null når de ikke er kjent.
hasKalkyleboolean | nullJaOm ordren er priset i en kalkyle; null for en kundenøkkel.
stickerNumbersinteger[]JaLappnumrene som er knyttet til ordren.
readyWithoutReceiptbooleanJa«Klar uten mottak».
readySmsobject | nullJaKlar-SMS-en: status og tider, aldri nummer eller tekst. Null for en kundenøkkel.
readySms.status"queued" | "cancelled" | "sending" | "sent" | "delivered" | "failed"Ja
readySms.sendAfterstring | nullJaTidspunkt, ISO 8601 i UTC
readySms.sentAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoiceobject | nullJa
invoice.idstringJaUUID
invoice.kind"invoice" | "credit_note" | "erp_mark"Ja
invoice.numberstring | nullJa
invoice.issuedAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoice.erpNostring | nullJa
attachmentsAttachment[]Ja
externalRefstring | nullJaDin egen id for ordren, unik per nøkkel.
createdAtstringJaTidspunkt, ISO 8601 i UTC
receivedAtstring | nullJaTidspunkt, ISO 8601 i UTC
inWorkAtstring | nullJaTidspunkt, ISO 8601 i UTC
readyAtstring | nullJaTidspunkt, ISO 8601 i UTC
deliveredAtstring | nullJaTidspunkt, ISO 8601 i UTC
invoicedAtstring | nullJaTidspunkt, ISO 8601 i UTC
paidAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelledAtstring | nullJaTidspunkt, ISO 8601 i UTC
cancelReasonstring | nullJa
updatedAtstringJaTidspunkt, ISO 8601 i UTC
versionintegerJaØker ved hver endring. Send den tilbake i If-Match: "v<version>".
productionOrderProduction | nullNeiBøyearkene på ordren, når verkstedet har Produksjon; null uten Produksjon og for en kundenøkkel. Med i svarene fra ordreoperasjonene, ikke i webhooks og GET /events. Et bøyd ark endrer ikke version, så når production ikke er null, svarer If-None-Match aldri 304.

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • already_invoiced · Ordren er fakturert og kan ikke endres.
  • cancel_not_allowed · Ordren kan ikke avbrytes nå. Ring verkstedet: arbeidet kan være i gang.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • stale_version · Ordren er endret siden du leste den. Hent den på nytt og send med ny versjon.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

I arbeid, Klar, Levert eller Angre

Virker
POST /api/v1/orders/{number}/status

Klar sender kunden SMS etter verkstedets angrefrist (eller ingen med "sms": "skip"); svaret har den nøyaktige teksten. En ny Klar på en klar ordre endrer ingenting og sender ingen ny SMS. mottatt fra Klar eller Levert er «Angre».

Rettigheterorders:status
KundenøkkelNei
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key (valgfri), If-Match (valgfri)

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.
If-Match (header)stringNeiVersjonen du så, som "v3" (fra version eller ETag).

Det du sender

FeltTypeMå medBeskrivelse
to"i_arbeid" | "klar" | "levert" | "mottatt"Jamottatt fra klar eller levert er «Angre» (en SMS som ennå venter, stoppes).
sms"auto" | "skip"NeiVed klar: auto (standard) sender SMS etter angrefristen; skip sender ingen.
deliveryDatestring | nullNeiDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
deliveryMode"henting" | "levering" | nullNei

Svaret (200)

FeltTypeMå medBeskrivelse
orderOrderJa
smsobject | nullJa
sms.willSendbooleanJa
sms.reasonstring | nullJaHvorfor ingen SMS går, når ingen går.
sms.textstringJaDen nøyaktige teksten, sendt eller ikke.
sms.sendAfterstring | nullJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • already_invoiced · Ordren er fakturert og kan ikke endres.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • not_ready · Ordren er ikke klar.
  • stale_version · Ordren er endret siden du leste den. Hent den på nytt og send med ny versjon.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • date_invalid · Datoen er ikke en gyldig dag (ÅÅÅÅ-MM-DD).
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Legg ved et bilde, en tegning eller en PDF

Virker
POST /api/v1/orders/{number}/attachments

multipart/form-data med fil og type. Typen leses fra filens første byte, ikke fra navnet.

Rettigheterorders:write
KundenøkkelJa, for sine egne
Grensefiler, 10 i minuttet
OverskrifterIdempotency-Key (valgfri)

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.

Det du sender

FeltTypeMå medBeskrivelse
filstringJaFilen: JPEG, PNG, WebP, HEIC eller PDF, høyst 15 MB. Typen leses fra filens første byte.
type"foto" | "tegning" | "pdf"Jafoto, tegning eller pdf

Svaret (201)

FeltTypeMå medBeskrivelse
idstringJaUUID
kind"foto" | "tegning" | "pdf"Ja
contentTypestringJa
bytesintegerJa
createdAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • payload_too_large · Filen er for stor.
  • unsupported_media_type · Filtypen tas ikke imot. Send JPEG, PNG, WebP, HEIC eller PDF.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • too_many_attachments · Ordren har allerede så mange filer som den kan ha.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hent en fil

Virker
GET /api/v1/orders/{number}/attachments/{id}

Svarer 302 til en lenke som lever i fem minutter.

Rettigheterorders:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.
id (path)stringJaUUID

Svaret: 302 · Videre til filen (lenken lever i fem minutter)

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Ordrens tidslinje

Virker
GET /api/v1/orders/{number}/events

Hvert steg med fra- og til-status, hvem (som type, aldri navn) og når.

Rettigheterorders:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.

Svaret (200)

FeltTypeMå medBeskrivelse
dataOrderEvent[]Ja

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Kunder

List kunder

Virker
GET /api/v1/customers

Etter kundenummer, eller etter endring for å synkronisere. Søk med q.

Rettighetercustomers:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
q (query)stringNeiSøk i navn, org.nr. eller telefon.
updatedSince (query)stringNeiTidspunkt, ISO 8601 i UTC
includeArchived (query)booleanNei
sort (query)"number" | "updatedAt"NeiEtter kundenummer (number, standard) eller etter endring (updatedAt).
limit (query)integerNeiAntall per side, 1–100 (25 når den mangler).
cursor (query)stringNeinextCursor fra forrige side.

Svaret (200)

FeltTypeMå medBeskrivelse
dataCustomer[]Ja
nextCursorstring | nullJaGi denne som cursor for neste side; null når det ikke er flere.

Feilkoder

  • invalid_cursor · Markøren (cursor) er ikke en vi har gitt ut.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hent en kunde

Virker
GET /api/v1/customers/{id}

Med kontakt, adresser og innstillingene ordrene leser (SMS, prosjektnr, faste dager).

Rettighetercustomers:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberinteger | nullJaKundenummeret i registeret (1, 2, 3 …).
kind"firma" | "privat"Ja
namestringJa
orgNrstring | nullJa
contactPersonstring | nullJa
emailstring | nullJa
mobilestring | nullJaNummeret Klar-SMS går til, +47…
phonestring | nullJa
invoiceAddressobject | nullJa
invoiceAddress.linestring | nullJa
invoiceAddress.postalCodestring | nullJa
invoiceAddress.citystring | nullJa
invoiceAddress.countrystring | nullJa
deliveryAddressobject | nullJa
deliveryAddress.linestring | nullJa
deliveryAddress.postalCodestring | nullJa
deliveryAddress.citystring | nullJa
deliveryAddress.countrystring | nullJa
invoicingMode"per_ordre" | "per_prosjekt" | "prosjekt_mnd"Ja
requiresProjectNobooleanJa«Krever prosjektnr»: en ordre uten prosjektnummer blir avvist.
requiresOrdererbooleanJa«Krever bestiller».
smsOnReadybooleanJa
deliveryWeekdaysinteger[] | nullJaFaste leveringsdager, 1 = mandag … 7 = søndag.
erpRefsobject[]JaKunden i regnskapet. Da eier regnskapet navn og org.nr.
archivedbooleanJa
createdAtstringJaTidspunkt, ISO 8601 i UTC
updatedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Legg til en kunde

Virker
POST /api/v1/customers

Org.nr. sjekkes; samme org.nr. to ganger gir 409 med den første kundens id. Ikke med en testnøkkel.

Rettighetercustomers:write
KundenøkkelNei
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key

Parametre

FeltTypeMå medBeskrivelse
Idempotency-Key (header)stringJa8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.

Det du sender

FeltTypeMå medBeskrivelse
namestringJa
kind"firma" | "privat"Nei
orgNrstring | nullNei
contactPersonstring | nullNei
emailstring | nullNei
mobilestring | nullNei
phonestring | nullNei
invoiceAddressobject | nullNei
invoiceAddress.linestring | nullNei
invoiceAddress.postalCodestring | nullNei
invoiceAddress.citystring | nullNei
invoiceAddress.countrystring | nullNei
deliveryAddressobject | nullNei
deliveryAddress.linestring | nullNei
deliveryAddress.postalCodestring | nullNei
deliveryAddress.citystring | nullNei
deliveryAddress.countrystring | nullNei
smsOnReadybooleanNei
invoicingMode"per_ordre" | "per_prosjekt" | "prosjekt_mnd"Nei
requiresProjectNobooleanNei
requiresOrdererbooleanNei
deliveryWeekdaysinteger[] | nullNei

Svaret (201)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberinteger | nullJaKundenummeret i registeret (1, 2, 3 …).
kind"firma" | "privat"Ja
namestringJa
orgNrstring | nullJa
contactPersonstring | nullJa
emailstring | nullJa
mobilestring | nullJaNummeret Klar-SMS går til, +47…
phonestring | nullJa
invoiceAddressobject | nullJa
invoiceAddress.linestring | nullJa
invoiceAddress.postalCodestring | nullJa
invoiceAddress.citystring | nullJa
invoiceAddress.countrystring | nullJa
deliveryAddressobject | nullJa
deliveryAddress.linestring | nullJa
deliveryAddress.postalCodestring | nullJa
deliveryAddress.citystring | nullJa
deliveryAddress.countrystring | nullJa
invoicingMode"per_ordre" | "per_prosjekt" | "prosjekt_mnd"Ja
requiresProjectNobooleanJa«Krever prosjektnr»: en ordre uten prosjektnummer blir avvist.
requiresOrdererbooleanJa«Krever bestiller».
smsOnReadybooleanJa
deliveryWeekdaysinteger[] | nullJaFaste leveringsdager, 1 = mandag … 7 = søndag.
erpRefsobject[]JaKunden i regnskapet. Da eier regnskapet navn og org.nr.
archivedbooleanJa
createdAtstringJaTidspunkt, ISO 8601 i UTC
updatedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • test_key_not_allowed · En testnøkkel kan ikke dette: den endrer aldri kunderegisteret, og et avrop er alltid en ekte ordre.
  • customer_exists · En kunde med dette org.nr. finnes allerede. id er kunden.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • key_owner_missing · Brukeren som laget nøkkelen finnes ikke lenger. Lag en ny nøkkel.
  • customer_invalid · Noe i kundefeltene er feil. fields sier hva.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • idempotency_key_required · Send Idempotency-Key med denne forespørselen.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Endre en kunde

Virker
PATCH /api/v1/customers/{id}

Navn og org.nr. eies av regnskapet når kunden finnes der.

Rettighetercustomers:write
KundenøkkelNei
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key (valgfri)

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.

Det du sender

FeltTypeMå medBeskrivelse
namestringNei
kind"firma" | "privat"Nei
orgNrstring | nullNei
contactPersonstring | nullNei
emailstring | nullNei
mobilestring | nullNei
phonestring | nullNei
invoiceAddressobject | nullNei
invoiceAddress.linestring | nullNei
invoiceAddress.postalCodestring | nullNei
invoiceAddress.citystring | nullNei
invoiceAddress.countrystring | nullNei
deliveryAddressobject | nullNei
deliveryAddress.linestring | nullNei
deliveryAddress.postalCodestring | nullNei
deliveryAddress.citystring | nullNei
deliveryAddress.countrystring | nullNei
smsOnReadybooleanNei
invoicingMode"per_ordre" | "per_prosjekt" | "prosjekt_mnd"Nei
requiresProjectNobooleanNei
requiresOrdererbooleanNei
deliveryWeekdaysinteger[] | nullNei

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
numberinteger | nullJaKundenummeret i registeret (1, 2, 3 …).
kind"firma" | "privat"Ja
namestringJa
orgNrstring | nullJa
contactPersonstring | nullJa
emailstring | nullJa
mobilestring | nullJaNummeret Klar-SMS går til, +47…
phonestring | nullJa
invoiceAddressobject | nullJa
invoiceAddress.linestring | nullJa
invoiceAddress.postalCodestring | nullJa
invoiceAddress.citystring | nullJa
invoiceAddress.countrystring | nullJa
deliveryAddressobject | nullJa
deliveryAddress.linestring | nullJa
deliveryAddress.postalCodestring | nullJa
deliveryAddress.citystring | nullJa
deliveryAddress.countrystring | nullJa
invoicingMode"per_ordre" | "per_prosjekt" | "prosjekt_mnd"Ja
requiresProjectNobooleanJa«Krever prosjektnr»: en ordre uten prosjektnummer blir avvist.
requiresOrdererbooleanJa«Krever bestiller».
smsOnReadybooleanJa
deliveryWeekdaysinteger[] | nullJaFaste leveringsdager, 1 = mandag … 7 = søndag.
erpRefsobject[]JaKunden i regnskapet. Da eier regnskapet navn og org.nr.
archivedbooleanJa
createdAtstringJaTidspunkt, ISO 8601 i UTC
updatedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • test_key_not_allowed · En testnøkkel kan ikke dette: den endrer aldri kunderegisteret, og et avrop er alltid en ekte ordre.
  • not_found · Fant ikke dette.
  • customer_exists · En kunde med dette org.nr. finnes allerede. id er kunden.
  • erp_owned_field · Navn og org.nr. eies av regnskapet for denne kunden. Endre dem der.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • customer_invalid · Noe i kundefeltene er feil. fields sier hva.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Kundens prosjekter

Virker
GET /api/v1/customers/{id}/projects

Prosjektnummer, navn, byggeplass og fast bestiller.

Rettighetercustomers:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret (200)

FeltTypeMå medBeskrivelse
dataProject[]Ja

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hendelser

Hendelser du kan ha gått glipp av

Virker
GET /api/v1/events

De samme konvoluttene som webhooks sender, 30 dager tilbake, eldste først etter after. For en mottaker som var nede, eller for den som heller spør.

Rettigheterorders:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
after (query)stringNeiId-en til den siste hendelsen du har.
types (query)stringNeiTyper med komma: order.ready,order.delivered.
limit (query)integerNei

Svaret (200)

FeltTypeMå medBeskrivelse
dataobject[]Ja
nextCursorstring | nullJaGi denne som after for neste side.

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Katalog og priser

Beslagsbiblioteket verkstedet kan selge

Virker
GET /api/v1/catalog/library

Familiene i vbeslag-biblioteket som verkstedet kan selge nå.

Rettighetercatalog:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Svaret (200)

FeltTypeMå medBeskrivelse
dataLibraryEntry[]Ja

Feilkoder

  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Beslagene i nettbutikken

Virker
GET /api/v1/catalog/products

Butikkens publiserte beslag, i samme form som butikken viser dem.

Rettighetercatalog:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
limit (query)integerNeiAntall per side, 1–100 (25 når den mangler).
cursor (query)stringNeinextCursor fra forrige side.

Svaret (200)

FeltTypeMå medBeskrivelse
dataProduct[]Ja
nextCursorstring | nullJa

Feilkoder

  • invalid_cursor · Markøren (cursor) er ikke en vi har gitt ut.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Ett beslag

Virker
GET /api/v1/catalog/products/{id}

Ett publisert beslag med mål, materialer og bilder. Tegningen og 3D-modellen kommer: til nettbutikken har en offentlig adresse for dem, er drawingUrl alltid null og media bare bilder.

Rettighetercatalog:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
slugstringJa
titlestringJa
descriptionstring | nullJa
categorystring | nullJa
kind"profil" | "sektor" | "kuttliste"Ja
fieldsobject[]Ja
fixedobjectJa
materialsobject[]Ja
mediaobject[]JaBildene av beslaget. 3D-modellen (model) kommer: til nettbutikken har en offentlig adresse for den, er listen bare bilder.
drawingUrlstring | nullJaKommer: alltid null til nettbutikken har en offentlig adresse for tegningen.
priceFromOreinteger | nullJanull når butikken skjuler prisene og nøkkelen er en kundenøkkel
priceShownbooleanJa
updatedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Regn ut en pris

Virker
POST /api/v1/prices

Pris fra den samme prismotoren som butikken og kalkylen. Med discountCode og deliveryOptionId regnes rabatten og frakten som i kassen, så summen blir den samme som på en bestilling i butikken. Ingenting lagres.

Rettigheterprices:read
KundenøkkelJa, for sine egne
Grensepriser, 60 i minuttet

Det du sender

FeltTypeMå medBeskrivelse
linesProductPriceLine | PositionPriceLine[]Ja
discountCodestringNeiEn rabattkode fra nettbutikken. Den gjelder beslagene fra butikken, ikke avtalelinjene.
deliveryOptionIdstringNeiEt leveringsvalg fra GET /shop, priset som i kassen (shippingOre).

Svaret (200)

FeltTypeMå medBeskrivelse
linesPricedLine[]Ja
totalsobjectJa
totals.netOreintegerJaHele øre (1 kr = 100 øre)
totals.smallOrderFeeOreintegerJaHele øre (1 kr = 100 øre)
totals.packagingOreintegerJaHele øre (1 kr = 100 øre)
totals.shippingOreintegerJaHele øre (1 kr = 100 øre)
totals.discountOreintegerJaRabatten fra discountCode, eks. mva., trukket fra i grossOre
totals.vatOreintegerJaHele øre (1 kr = 100 øre)
totals.grossOreintegerJaHele øre (1 kr = 100 øre)
totals.currency"NOK"Ja
enginestringJaPrismotorens versjon, som UB_HARD_V0
pricedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • prices_hidden · Butikken viser ikke prisene sine, så en kundenøkkel får ingen pris på beslagene. En verkstedsnøkkel får alltid prisen.
  • not_found · Fant ikke dette.
  • material_not_offered · Beslaget selges ikke i dette materialet. Materialene står på beslaget (GET /catalog/products/{id}).
  • params_impossible · Beslaget kan ikke lages med disse målene. fields sier hvilken linje.
  • params_invalid · Et mål mangler eller er utenfor det beslaget tillater. fields sier hvilken linje.
  • price_unavailable · Linjen har ingen pris nå, for eksempel fordi avtalen ikke er godtatt eller har gått ut. fields sier hvilken linje.
  • too_many_lines · Ordren kan ha høyst 100 linjer.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Nettbutikk

Nettbutikken: adresse, kassen og levering

Virker
GET /api/v1/shop

Navnet, adressen, om prisene vises, hvem butikken spør først, måtene denne nøkkelen kan bestille på, leveringsvalgene (navn, type, dager; aldri sonene) og adressene til vilkårene.

Rettighetercatalog:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Svaret (200)

FeltTypeMå medBeskrivelse
namestringJa
hoststringJaAdressen butikken svarer på, uten https://
priceShownbooleanJafalse: butikken viser ikke priser til kundene.
buyerDefault"privat" | "bedrift"JaHvem butikken spør først: privat eller bedrift.
checkoutModes"foresporsel" | "betal_etter_bekreft" | "betal_naa"[]JaMåtene denne nøkkelen kan bestille på: foresporsel alltid; betal_etter_bekreft og betal_naa når verkstedet kan ta betalt.
deliveryOptionsShopDeliveryOption[]Ja
legalobjectJaAdressene til butikkens godkjente vilkår. null til verkstedet har godkjent dem.
legal.kjopsvilkarstring | nullJa
legal.angrerettstring | nullJa
legal.personvernstring | nullJa

Feilkoder

  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Regn ut leveringen

Virker
POST /api/v1/delivery-quotes

Hvert leveringsvalg med pris for disse lengdene og dette postnummeret, regnet av den samme regelen som kassen. Ingenting lagres.

Rettigheterprices:read
KundenøkkelJa, for sine egne
Grensepriser, 60 i minuttet

Det du sender

FeltTypeMå medBeskrivelse
linesobject[]JaLengden på hvert beslag i handlekurven, i millimeter.
postcodestringJaNorsk postnummer, fire siffer
optionIdstringNeiBare dette valget.
subtotalOreintegerNeiSummen av varene i handlekurven, i øre med mva., slik kassen regner den. Et valg som er gratis fra en sum, blir gratis over den. Uten: 0.

Svaret (200)

FeltTypeMå medBeskrivelse
optionsobject[]Ja

Feilkoder

  • invalid_json · Innholdet er ikke gyldig JSON.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • too_many_lines · Ordren kan ha høyst 100 linjer.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Eksempel

Eksempel: POST /delivery-quotes
{
  "lines": [
    {
      "lengthMm": 2000
    },
    {
      "lengthMm": 1000
    }
  ],
  "postcode": "7010"
}

Ordrens betalinger

Virker
GET /api/v1/orders/{number}/payments

Status, beløp, metode og hva som er betalt tilbake. Aldri en id hos Stripe, bare de fire siste tegnene. En kundenøkkel ser sine egne ordre.

Rettigheterorders:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.

Svaret (200)

FeltTypeMå medBeskrivelse
dataOrderPayment[]Ja

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Avtaler

List avtaler

Virker
GET /api/v1/agreements

Godtatte og sendte avtaler med posisjoner og pristabell, nyeste nummer først. Aldri et utkast. En kundenøkkel ser bare sin egen kundes avtaler som er sendt, sett eller godtatt. Utløpte avtaler med includeExpired=true, erstattede med status=erstattet. Et avrop er en ordre: send det med POST /orders.

Rettigheteragreements:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
status (query)"sendt" | "sett" | "godtatt" | "avvist" | "erstattet" | "utlopt"Nei
customerId (query)stringNeiUUID
includeExpired (query)"true" | "false"Nei
limit (query)integerNeiAntall per side, 1–100 (25 når den mangler).
cursor (query)stringNeinextCursor fra forrige side.

Svaret (200)

FeltTypeMå medBeskrivelse
dataAgreement[]Ja
nextCursorstring | nullJa

Feilkoder

  • invalid_cursor · Markøren (cursor) er ikke en vi har gitt ut.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hent en avtale

Virker
GET /api/v1/agreements/{number}

En avtale med posisjoner, leveringsdager og pristabell: den gjeldende versjonen, eller den version peker på (slik når du en avtale som er erstattet). Prisen per stykk er eks. mva.; vatBp står ved siden av.

Rettigheteragreements:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJaAvtalenummeret, som «12»
version (query)stringNei

Svaret (200)

FeltTypeMå medBeskrivelse
numberintegerJa
versionintegerJa
status"sendt" | "sett" | "godtatt" | "avvist" | "erstattet" | "utlopt"Ja
expiredbooleanJa
customerobjectJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
projectobject | nullJa
project.projectNostringJa
project.namestring | nullJa
titlestringJa
validUntilstring | nullJa
deliveryWeekdaysinteger[]Ja
leadDaysinteger | nullJa
freightFreeFromOreinteger | nullJaHele øre (1 kr = 100 øre)
maxLengthMminteger | nullJa
termsWestring | nullJa
termsYoustring | nullJa
positionsAgreementPosition[]Ja
sentAtstring | nullJaTidspunkt, ISO 8601 i UTC
decidedAtstring | nullJaTidspunkt, ISO 8601 i UTC
decidedByNamestring | nullJa

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Fakturaer

List fakturaer

Virker
GET /api/v1/invoices

Sendte fakturaer, kreditnotaer og «Fakturert i regnskapet», nyeste først. Utkast kommer bare med includeDrafts=true. Filtrer på status, customerId, issuedSince (fakturadato, Oslo) og updatedSince. En kundenøkkel ser bare sin egen kundes sendte fakturaer, aldri et utkast.

Rettigheterinvoices:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
status (query)"utkast" | "sendt" | "forfalt" | "betalt" | "kansellert" | "kreditert"Nei
customerId (query)stringNeiUUID
issuedSince (query)stringNeiDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
updatedSince (query)stringNeiTidspunkt, ISO 8601 i UTC
includeDrafts (query)"true" | "false"Nei
limit (query)integerNeiAntall per side, 1–100 (25 når den mangler).
cursor (query)stringNeinextCursor fra forrige side.

Svaret (200)

FeltTypeMå medBeskrivelse
dataInvoice[]Ja
nextCursorstring | nullJa

Feilkoder

  • invalid_cursor · Markøren (cursor) er ikke en vi har gitt ut.
  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hent en faktura

Virker
GET /api/v1/invoices/{id}

Med linjer, KID og ordrene den dekker. En kundenøkkel får bare sin egen kundes; en annen kundes faktura og et utkast svarer 404.

Rettigheterinvoices:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
kind"invoice" | "credit_note" | "erp_mark"Ja
numberstring | nullJa
status"utkast" | "sendt" | "forfalt" | "betalt" | "kansellert" | "kreditert"Ja
issueDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
dueDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
kidstring | nullJa
customerobject | nullJa
customer.idstringJaUUID
customer.numberinteger | nullJa
customer.namestringJa
orderReferencestring | nullJa
customerReferencestring | nullJa
orderNumbersinteger[]Ja
currency"NOK"Ja
netOreinteger | nullJaHele øre (1 kr = 100 øre)
vatOreinteger | nullJaHele øre (1 kr = 100 øre)
grossOreinteger | nullJaHele øre (1 kr = 100 øre)
linesInvoiceLine[]Ja
erpobject | nullJa
erp.vendor"poweroffice" | "tripletex" | "fiken"Ja
erp.invoiceNostring | nullJa
paidAtstring | nullJaTidspunkt, ISO 8601 i UTC
createdAtstringJaTidspunkt, ISO 8601 i UTC
updatedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Fakturaen som PDF

Virker
GET /api/v1/invoices/{id}/pdf

PDF-en slik kunden fikk den, laget på serveren av den utstedte fakturaen (nummer og KID). Et utkast og «Fakturert i regnskapet» har ingen PDF her: svaret er 404. En kundenøkkel får bare sin egen kundes.

Rettigheterinvoices:read
KundenøkkelJa, for sine egne
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret: 200 · PDF-en

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Produksjon

Bøyearkene på en ordre

Virker
GET /api/v1/orders/{number}/bending-sheets

Gjeldende versjon av hvert ark på ordren, etter arknummer. Krever Produksjon.

Rettigheterproduction:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
number (path)stringJa«4711», «004711», «T-000012» (testnøkler), eller et lappnummer som er blitt ordrens.

Svaret (200)

FeltTypeMå medBeskrivelse
dataBendingSheet[]Ja

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Hent ett bøyeark

Virker
GET /api/v1/bending-sheets/{id}

En versjon av ett ark: profilen (mål og vinkler i tegningens rekkefølge), materialet, utbrettet med fradragene, kantbenken, dagen det er planlagt og godkjenningen. superseded er true når en nyere versjon har erstattet det. Krever Produksjon.

Rettigheterproduction:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
orderNumberstringJa«004711», eller «T-000012» for en testordre.
sheetNointegerJaArket på ordren: «004711-1» er ark 1.
versionintegerJaVersjonen av arket. En endring etter utkast lagrer en ny versjon.
supersededbooleanJatrue når en nyere versjon har erstattet denne.
status"utkast" | "venter_kunde" | "endring" | "godkjent" | "til_pressen" | "boyd" | "avbrutt"JaLagret status: utkast, venter_kunde, endring, godkjent, til_pressen, boyd, avbrutt. Kan få nye verdier: les en ukjent verdi som «annet».
statusLabelstringJaOrdet verkstedet ser («Til pressen», «Bøyd»).
profileobjectJa
profile.legsobject[]Ja
profile.bendsobject[]Ja
profile.colourSide"ut" | "inn" | nullJa
profile.bendOrderinteger[] | nullJaBukkene i den rekkefølgen de bøyes (1-basert); null = i tegningens rekkefølge.
materialLabelstringJa
thicknessMmnumberJa
colourstring | nullJa
lengthMmnumberJa
quantityintegerJa
developedWidthMmnumber | nullJaUtbrett: summen av målene minus fradragene; null før arket er regnet ut.
deductionsobject[]Ja
pressobject | nullJa
press.idstringJaUUID
press.namestringJa
plannedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
approvalobject | nullJa
approval.basisstringJalenke, portal, nettbutikk, api, avtale, tidligere, telefon eller overstyrt. Kan få nye verdier.
approval.decidedAtstring | nullJaTidspunkt, ISO 8601 i UTC
approval.decidedByNamestring | nullJa
bentAtstring | nullJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Bøyearket som PDF

Virker
GET /api/v1/bending-sheets/{id}/pdf

Svarer 302 til PDF-en verkstedet skriver ut, med QR-koden pressen leser. Lenken lever i fem minutter. Et utkast har ingen PDF ennå: 409 med reason: pdf_not_made.

Rettigheterproduction:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret: 302 · Videre til PDF-en (lenken lever i fem minutter)

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Platen som DXF

Virker
GET /api/v1/bending-sheets/{id}/dxf

Den flate platen (utbrett × lengde) med bukkelinjene, som DXF R12. For klippebord, kappemaskiner og programmer som leser en flat plate. Et ark som ikke er regnet ut ennå gir 409 med reason: not_developed.

Rettigheterproduction:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID

Svaret: 200 · DXF-filen (`application/dxf`)

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.
  • unavailable · Tjenesten er midlertidig nede. Prøv igjen senere.

Dagens bøyeliste

Virker
GET /api/v1/production/queue

Arkene som er planlagt en dag, i den rekkefølgen de skal bøyes, for alle kantbenker eller en (press). Med Accept: text/csv kommer lista som CSV med semikolon og UTF-8, slik at den åpnes i Excel. Ark som venter på kunden er med, men merket. Krever Produksjon.

Rettigheterproduction:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
date (query)stringNeiDagen, ÅÅÅÅ-MM-DD. I dag (Oslo) når den mangler.
press (query)stringNeiBare denne kantbenken (id fra GET /presses).

Svaret (200)

FeltTypeMå medBeskrivelse
datestringJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
pressobject | nullJa
press.idstringJaUUID
press.namestringJa
summaryobjectJa«I dag: 14 bøyeark · 52 bukk · 3 materialer»
summary.bendingSheetsintegerJa
summary.bendsintegerJa
summary.materialsintegerJa
dataProductionQueueRow[]Ja

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • date_invalid · Datoen er ikke en gyldig dag (ÅÅÅÅ-MM-DD).
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Kantbenkene

Virker
GET /api/v1/presses

Verkstedets kantbenker i den rekkefølgen verkstedet har satt. Bruk id som press i dagens bøyeliste. Krever Produksjon.

Rettigheterproduction:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Svaret (200)

FeltTypeMå medBeskrivelse
dataPress[]Ja

Feilkoder

  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Merk et bøyeark som bøyd

Virker
POST /api/v1/bending-sheets/{id}/bent

Det samme som «Bøyd» på pressen: bare fra «Til pressen». Avvist med 409 når arket venter på kunden (reason: waits_for_customer), når en nyere versjon har erstattet det (superseded) og når ordren er lukket (order_closed). Et ark som allerede er bøyd svarer som det er, uten en ny hendelse. Krever Produksjon.

Rettigheterproduction:status
KundenøkkelNei
Grenseskriving, 30 i minuttet
OverskrifterIdempotency-Key (valgfri)

Parametre

FeltTypeMå medBeskrivelse
id (path)stringJaUUID
Idempotency-Key (header)stringNei8–255 tegn. Bruk en UUID per forsøk på en handling; samme nøkkel og samme innhold gir samme svar igjen.

Svaret (200)

FeltTypeMå medBeskrivelse
idstringJaUUID
orderNumberstringJa«004711», eller «T-000012» for en testordre.
sheetNointegerJaArket på ordren: «004711-1» er ark 1.
versionintegerJaVersjonen av arket. En endring etter utkast lagrer en ny versjon.
supersededbooleanJatrue når en nyere versjon har erstattet denne.
status"utkast" | "venter_kunde" | "endring" | "godkjent" | "til_pressen" | "boyd" | "avbrutt"JaLagret status: utkast, venter_kunde, endring, godkjent, til_pressen, boyd, avbrutt. Kan få nye verdier: les en ukjent verdi som «annet».
statusLabelstringJaOrdet verkstedet ser («Til pressen», «Bøyd»).
profileobjectJa
profile.legsobject[]Ja
profile.bendsobject[]Ja
profile.colourSide"ut" | "inn" | nullJa
profile.bendOrderinteger[] | nullJaBukkene i den rekkefølgen de bøyes (1-basert); null = i tegningens rekkefølge.
materialLabelstringJa
thicknessMmnumberJa
colourstring | nullJa
lengthMmnumberJa
quantityintegerJa
developedWidthMmnumber | nullJaUtbrett: summen av målene minus fradragene; null før arket er regnet ut.
deductionsobject[]Ja
pressobject | nullJa
press.idstringJaUUID
press.namestringJa
plannedDatestring | nullJaDato på Oslo-kalenderen, ÅÅÅÅ-MM-DD
approvalobject | nullJa
approval.basisstringJalenke, portal, nettbutikk, api, avtale, tidligere, telefon eller overstyrt. Kan få nye verdier.
approval.decidedAtstring | nullJaTidspunkt, ISO 8601 i UTC
approval.decidedByNamestring | nullJa
bentAtstring | nullJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • idempotency_in_progress · En forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
  • stale_version · Ordren er endret siden du leste den. Hent den på nytt og send med ny versjon.
  • status_conflict · Ordren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
  • idempotency_key_reused · Denne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Rapporter

Tallene for en måned

Virker
GET /api/v1/reports/months/{month}

Tallene fra Tall for en måned: bare summer, aldri kundenavn. Hvert tall teller det som skjedde i måneden (norsk tid). Inneværende måned gir tallene så langt; en måned fram i tid avvises. Bare verkstedets egne nøkler.

Rettigheterreports:read
KundenøkkelNei
Grenselesing, 120 i minuttet

Parametre

FeltTypeMå medBeskrivelse
month (path)stringJaMåneden, ÅÅÅÅ-MM

Svaret (200)

FeltTypeMå medBeskrivelse
monthstringJa
currency"NOK"Ja
ordersobjectJa
orders.receivedintegerJa
orders.readyintegerJa
orders.deliveredintegerJa
orders.bySourceobjectJa
invoicedobjectJa
invoiced.countintegerJa
invoiced.netOreintegerJaHele øre (1 kr = 100 øre)
invoiced.grossOreintegerJaHele øre (1 kr = 100 øre)
paidobjectJa
paid.countintegerJa
paid.grossOreintegerJaHele øre (1 kr = 100 øre)
outstandingobjectJa
outstanding.countintegerJa
outstanding.grossOreintegerJaHele øre (1 kr = 100 øre)
outstanding.overdueCountintegerJa
outstanding.overdueGrossOreintegerJaHele øre (1 kr = 100 øre)
generatedAtstringJaTidspunkt, ISO 8601 i UTC

Feilkoder

  • invalid_request · Noe i forespørselen er feil eller ukjent. fields sier hva.
  • unauthorized · Nøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
  • account_closed · Verkstedet er stengt.
  • customer_key_not_allowed · En kundenøkkel kan ikke gjøre dette.
  • dpa_required · Verkstedet må godta databehandleravtalen før koblinger kan brukes.
  • feature_not_in_plan · Verkstedet har ikke slått på delen dette trenger. feature sier hvilken.
  • insufficient_scope · Nøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
  • not_found · Fant ikke dette.
  • date_invalid · Datoen er ikke en gyldig dag (ÅÅÅÅ-MM-DD).
  • rate_limited · For mange kall. Vent retryAfterSeconds sekunder.
  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Dokumentet

OpenAPI-dokumentet

Virker
GET /api/v1/openapi.json

Hele API-et som OpenAPI 3.1. Uten nøkkel, og kan hentes fra en nettleser (Postman, Insomnia, Swagger UI).

RettigheterBare en nøkkel
KundenøkkelJa, for sine egne
Grenseingen nøkkel

Svaret: 200 · Dokumentet

Feilkoder

  • internal · Noe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.

Feilkoder

400invalid_cursorMarkøren (cursor) er ikke en vi har gitt ut.
400invalid_jsonInnholdet er ikke gyldig JSON.
400invalid_requestNoe i forespørselen er feil eller ukjent. fields sier hva.
401unauthorizedNøkkelen mangler, er feil, er slått av eller har gått ut. En nøkkel som slås av, slutter å virke innen 1 minutt.
403account_closedVerkstedet er stengt.
403customer_key_not_allowedEn kundenøkkel kan ikke gjøre dette.
403dpa_requiredVerkstedet må godta databehandleravtalen før koblinger kan brukes.
403feature_not_in_planVerkstedet har ikke slått på delen dette trenger. feature sier hvilken.
403insufficient_scopeNøkkelen har ikke lov til dette. requiredScope sier hvilken rett som mangler.
403prices_hiddenButikken viser ikke prisene sine, så en kundenøkkel får ingen pris på beslagene. En verkstedsnøkkel får alltid prisen.
403test_key_not_allowedEn testnøkkel kan ikke dette: den endrer aldri kunderegisteret, og et avrop er alltid en ekte ordre.
404not_foundFant ikke dette.
405method_not_allowedDenne adressen tar ikke imot denne metoden.
409already_invoicedOrdren er fakturert og kan ikke endres.
409cancel_not_allowedOrdren kan ikke avbrytes nå. Ring verkstedet: arbeidet kan være i gang.
409customer_existsEn kunde med dette org.nr. finnes allerede. id er kunden.
409duplicate_external_refDu har allerede sendt en ordre med denne externalRef. existingNumber er ordrenummeret.
409erp_owned_fieldNavn og org.nr. eies av regnskapet for denne kunden. Endre dem der.
409idempotency_in_progressEn forespørsel med samme Idempotency-Key holder på. Prøv igjen om litt.
409key_owner_missingBrukeren som laget nøkkelen finnes ikke lenger. Lag en ny nøkkel.
409not_readyOrdren er ikke klar.
409stale_versionOrdren er endret siden du leste den. Hent den på nytt og send med ny versjon.
409status_conflictOrdren kan ikke flyttes dit fra statusen den har nå. reason sier hvorfor.
413payload_too_largeFilen er for stor.
415unsupported_media_typeFiltypen tas ikke imot. Send JPEG, PNG, WebP, HEIC eller PDF.
422agreement_not_activeAvtalen tar ikke imot avrop: den er ikke godtatt, er utløpt eller erstattet, eller finnes ikke for denne nøkkelen. reason sier hvorfor.
422contact_invalidKontakten trenger et navn og en e-post eller et norsk mobilnummer.
422content_requiredOrdren må ha minst en linje eller en merknad (note) på minst 3 tegn.
422customer_fixed_by_keyDenne nøkkelen hører til en kunde, og ordren må være for den kunden.
422customer_invalidNoe i kundefeltene er feil. fields sier hva.
422customer_requiredOrdren må ha en kunde. Send customer, eller contact med createCustomer: true.
422date_invalidDatoen er ikke en gyldig dag (ÅÅÅÅ-MM-DD).
422delivery_date_not_allowedAvtalen leverer ikke den dagen. nextPossibleDate er den første dagen som går.
422idempotency_key_reusedDenne Idempotency-Key ble brukt på en annen forespørsel. Bruk en ny nøkkel for ny handling.
422intent_not_allowedEn kundenøkkel sender forespørsler ("intent": "request"), eller avrop på en godtatt avtale (agreementNumber).
422length_over_maxLengden er over det avtalen tillater (maxLengthMm). fields sier hvilken linje.
422material_not_offeredBeslaget selges ikke i dette materialet. Materialene står på beslaget (GET /catalog/products/{id}).
422orderer_requiredDenne kunden krever bestiller (orderer).
422params_impossibleBeslaget kan ikke lages med disse målene. fields sier hvilken linje.
422params_invalidEt mål mangler eller er utenfor det beslaget tillater. fields sier hvilken linje.
422position_not_in_agreementPosisjonen hører ikke til denne avtalen. Hent posisjonene med GET /agreements/{number}. fields sier hvilken linje.
422price_unavailableLinjen har ingen pris nå, for eksempel fordi avtalen ikke er godtatt eller har gått ut. fields sier hvilken linje.
422project_no_requiredDenne kunden krever prosjektnummer (projectNo).
422quantity_invalidAntallet må være mellom 1 og 500.
422too_many_attachmentsOrdren har allerede så mange filer som den kan ha.
422too_many_linesOrdren kan ha høyst 100 linjer.
428idempotency_key_requiredSend Idempotency-Key med denne forespørselen.
428precondition_requiredSend If-Match med versjonen du så, for eksempel "v3".
429rate_limitedFor mange kall. Vent retryAfterSeconds sekunder.
500internalNoe gikk galt hos oss. Feilen er meldt. Oppgi requestId hvis du spør.
503unavailableTjenesten er midlertidig nede. Prøv igjen senere.