Inloggen Demo aanvragen

Ontwikkelaars

API’s voor voertuigdata. Gebouwd op 35 jaar autoinspecties.

Het B.U.S.-platform biedt API’s voor taxaties, conditierapporten en AI-gestuurde voertuigintelligentie. Open sandbox met testdata en OpenAPI-documentatie voor de REST-endpoints. Neem contact op, dan sturen we je inloggegevens. Begin binnen minuten met bouwen, niet na weken.

Ontwikkeling bij B.U.S.

Begin in drie stappen

  1. Bekijk wat er beschikbaar is

    De API-catalogus toont de beschikbare endpoints met documentatie, schema’s en werkende voorbeelden.

  2. Bouw in de sandbox

    Open sandbox-omgeving met echte testdata. Neem contact op, dan sturen we je een gebruikersnaam, wachtwoord en API-sleutel om mee te testen. Het kost niets.

  3. Ga naar productie

    Als je er klaar voor bent, mail je support@bus.no met je bedrijfsgegevens, waarvoor je de API gaat gebruiken en het verwachte volume. Goedkeuring duurt twee werkdagen. Wij valideren de opzet en overhandigen de productiesleutels.

API-catalogus

GraphQL. Voorspelde gebreken voor een voertuig

Oscar Inspector, de snelste manier om te starten

Voorspelde gebreken en onderhoudsbehoeften op basis van merk, model en kilometerstand. Gebouwd op meer dan 20 miljoen echte inspecties. Eén query, één antwoord, en je hebt AI-gestuurde voertuigintelligentie in je product. Dit is de API waarmee de meeste partners beginnen. Gebruikt door verzekeraars voor risicobeoordeling, marktplaatsen voor het verrijken van advertenties, leasemaatschappijen voor onderhoud van het wagenpark en garagesystemen voor informatie vóór het bezoek.

PKK. Periodieke voertuigkeuring

Keuringsresultaten, foutcodes, historie en status van de herkeuring. De dataset dekt 75 % van de Noorse markt.

Test. Taxatie- en conditiedata

Schadebeoordelingen, reparatiekosten, prijzen van onderdelen en volledige conditierapporten. Gebruik het voor integratie met verkoopondersteuning, garantiebeoordeling, prijsmodellen of overal waar je gestructureerde data over de staat van een voertuig nodig hebt.

Bekijk alle methoden in de Test-API

Kwaliteitsborging

Interne controle, afhandeling van afwijkingen, apparatuurcontrole en kalibraties. Relevant voor compliance en audit.

Meer API’s

De catalogus groeit.

Oscar Inspector API

AI-gestuurde foutvoorspellingen voor een voertuig. Dezelfde authenticatie als de Test-API: gebruik applicationId 5 wanneer je een token ophaalt met token_ApplyToken2. Oscar Inspector heeft een eigen endpoint en een eigen schema, los van de Test-API. De voorbeelden tonen de query; het antwoord hangt af van het voertuig.

Authenticatie

Elke aanroep stuurt twee headers: Authorization: Bearer <accessToken> en x-api-key: <apiKey>. De API-sleutel is een aparte, langlevende sleutel die je van ons krijgt. Sandbox-sleutels krijg je door contact op te nemen. Hier haal je tokens op en vernieuw je ze.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/SecurityPortal/BUS.APIs.GraphQLServer.P3.SecurityPortal.Endpoint1
Productie https://bus2.bus.no/BUSPlatform3/SecurityPortal/BUS.APIs.GraphQLServer.P3.SecurityPortal.Endpoint1
Query token_ApplyToken2 Haalt een id-token, access-token en refresh-token op voor een gebruiker en een applicatie.

Parameters

username: String!
password: String!
apiKey: String!
applicationId: Int!

Antwoord

idToken: String
accessToken: String
refreshToken: String

Opmerkingen

  • Oscar Inspector vereist applicationId 5. De Test-API gebruikt een andere applicationId.
  • accessToken is 60 minuten geldig. refreshToken is 90 dagen geldig.
  • Om te vernieuwen: gebruik token_RefreshToken met refreshToken. Roep token_ApplyToken2 niet opnieuw aan bij elke afloop.
  • Is refreshToken verlopen, dan moet je een volledig nieuwe set ophalen met token_ApplyToken2.

Voorbeeld

query {
  token_ApplyToken2(
    username: ""
    password: ""
    apiKey: ""
    applicationId: 5
  ) {
    idToken
    accessToken
    refreshToken
  }
}

Voorbeeldantwoord

{
  "data": {
    "token_ApplyToken2": {
      "idToken": "",
      "accessToken": "",
      "refreshToken": ""
    }
  }
}
Query token_RefreshToken Vernieuwt de tokens met een refresh-token, zonder opnieuw in te loggen.

Parameters

apiKey: String!
applicationId: Int!
refreshToken: String!

Antwoord

idToken: String
accessToken: String
refreshToken: String

Opmerkingen

  • accessToken is 60 minuten geldig. refreshToken is 90 dagen geldig.
  • Is refreshToken verlopen, dan moet je een volledig nieuwe set ophalen met token_ApplyToken2.

Voorbeeld

query {
  token_RefreshToken(
    apiKey: "",
    applicationId: 5,
    refreshToken: ""
    ){
      idToken
      accessToken
      refreshToken
    }
}

Voorbeeldantwoord

{
  "data": {
    "token_RefreshToken": {
      "idToken": "",
      "accessToken": "",
      "refreshToken": ""
    }
  }
}

Foutvoorspelling

Voorspelde fouten en onderhoudsbehoefte op basis van kenteken en kilometerstand.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/BUSDataPortal/BUS.APIs.GraphQLServer.P3.BUSDataPortal.ExternalEndpoint1
Productie https://bus2.bus.no/BUSPlatform3/BUSDataPortal/BUS.APIs.GraphQLServer.P3.BUSDataPortal.ExternalEndpoint1
Query busData_GetDefectPredictions Geeft voorspelde fouten voor een voertuig, met waarschijnlijkheid en uitleg per fout.

Parameters

requestId: String?
regNo: String
mileage: Int!
valuationId: Int?
inspectionId: Int?
language: String?
isMileageSuggestion: Boolean!
windowSize: Int!
refNo: String?

Antwoord

result: DefectPredictionOutput

Opmerkingen

  • De requestId uit het antwoord wordt gebruikt als originalRequestId in busData_RecordUserFeedback.

Voorbeeld

query {
  busData_GetDefectPredictions(
    requestId: "8ef2a2d7-4373-4f93-b57e-d151a192edad"
    regNo: "CF66983"
    mileage: 50000
  ) {
    requestId
    noOfPredictions
    defectPredictions {
      checkpointTypeGroupId
      checkpointTypeGroup
      probability
    }
    errorCodes
  }
}

Voorbeeldantwoord

{
  "data": {
    "busData_GetDefectPredictions": {
      "requestId": "8ef2a2d7-4373-4f93-b57e-d151a192edad",
      "noOfPredictions": 10,
      "defectPredictions": [
        {
          "checkpointTypeGroupId": 1061,
          "checkpointTypeGroup": "Bremsetromler, bremseskiver: Trommel eller skive har for stor slitasje, med synlige-/for store riper eller sprekker, ikke tilstrekkelig festet eller brukket",
          "probability": 11.320754716981131
        }
      ],
      "errorCodes": null
    }
  }
}

Terugkoppeling

Geef aan of de voorspelling klopte en haal de beschikbare redenen op.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/BUSDataPortal/BUS.APIs.GraphQLServer.P3.BUSDataPortal.ExternalEndpoint1
Productie https://bus2.bus.no/BUSPlatform3/BUSDataPortal/BUS.APIs.GraphQLServer.P3.BUSDataPortal.ExternalEndpoint1
Query busData_GetUserFeedbackReasons Geeft de redenen die een gebruiker kan opgeven wanneer een voorspelling niet klopte.

Parameters

requestId: String?

Antwoord

result: UserFeedbackReasonOutput

Opmerkingen

  • userFeedbackReasonId wordt gebruikt als waarde in userFeedbackReasons bij busData_RecordUserFeedback.

Voorbeeld

query {
  busData_GetUserFeedbackReasons(requestId: "4c84c8db-3f1f-427c-b2ad-f00725f430b9") {
    requestId
    userFeedbackReasons {
      userFeedbackReasonId
      displayString
      userFeedbackReasonType
    }
    errorCodes
  }
}

Voorbeeldantwoord

{
  "data": {
    "busData_GetUserFeedbackReasons": {
      "requestId": "4c84c8db-3f1f-427c-b2ad-f00725f430b9",
      "userFeedbackReasons": [
        {
          "userFeedbackReasonId": 2000,
          "displayString": "Tidsbesparende",
          "userFeedbackReasonType": 1
        },
        {
          "userFeedbackReasonId": 2001,
          "displayString": "Høy treffsikkerhet",
          "userFeedbackReasonType": 1
        }
      ],
      "errorCodes": null
    }
  }
}
Mutation busData_RecordUserFeedback Registreert terugkoppeling op een eerdere voorspelling.

Parameters

requestId: String?
originalRequestId: String?
isSatisfied: Boolean!
timeTakenForFeedback: Int!
userId: Int!
username: String?
organizationId: Int!
organizationName: String?
userFeedbackReasons: [Int]
time: DateTime?

Antwoord

result: RecordUserFeedbackOutput

Voorbeeld

mutation {
  busData_RecordUserFeedback(
    requestId: "1e692aa0-5a9b-400f-beef-7a53e27d26a2"
    originalRequestId: "8ef2a2d7-4373-4f93-b57e-d151a192edad"
    isSatisfied: true
    organizationId: 1
    organizationName: "unit 1"
    timeTakenForFeedback: 3000
    userId: 2
    username: "Nuwan"
    userFeedbackReasons: [2, 3]
  ) {
    requestId
    errorCodes
  }
}

Voorbeeldantwoord

{
  "data": {
    "busData_RecordUserFeedback": {
      "requestId": "1e692aa0-5a9b-400f-beef-7a53e27d26a2",
      "errorCodes": null
    }
  }
}

Datamodellen

De typen die in parameters en antwoorden worden gebruikt.

DefectPredictionOutput
RequestId: String
NoOfPredictions: Int
DefectPredictions: [DefectPrediction]
MileageSuggestions: [Int]
ErrorCodes: [Int]
TimeElapsed: Decimal
DefectPrediction
CheckpointTypeGroupId: Int
CheckpointTypeGroup: String?
CheckPointTypeGroupDescription: String?
Probability: Decimal
Explanation: String?
ConfidenceThreshold: Decimal
Function: String?
WindowSize: Int
UserFeedbackReasonOutput
RequestId: String
UserFeedbackReasons: [UserFeedbackReason]
ErrorCodes: [Int]
UserFeedbackReason
UserFeedbackReasonId: Int
DisplayString: String?
UserFeedbackReasonType: Int
RecordUserFeedbackOutput
RequestId: String
ErrorCodes: [Int]

API-referentie. Test, taxatie en conditierapport

Alle methoden in de Test-API, gegroepeerd per gebruiksdoel. Open een methode om de parameters, het antwoord en een voorbeeld te zien dat je kunt uitvoeren.

Authenticatie

Elke aanroep stuurt twee headers: Authorization: Bearer <accessToken> en x-api-key: <apiKey>. De API-sleutel is een aparte, langlevende sleutel die je van ons krijgt. Sandbox-sleutels krijg je door contact op te nemen. Hier haal je tokens op en vernieuw je ze.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/SecurityPortal/BUS.APIs.GraphQLServer.P3.SecurityPortal.Endpoint1
Productie https://bus2.bus.no/BUSPlatform3/SecurityPortal/BUS.APIs.GraphQLServer.P3.SecurityPortal.Endpoint1
Query token_ApplyToken2 Haalt een id-token, access-token en refresh-token op voor een gebruiker en een applicatie.

Parameters

username: String!
password: String!
apiKey: String!
applicationId: Int!

Antwoord

idToken: String
accessToken: String
refreshToken: String

Opmerkingen

  • accessToken is 60 minuten geldig. refreshToken is 90 dagen geldig.
  • Om te vernieuwen: gebruik token_RefreshToken met refreshToken. Roep token_ApplyToken2 niet opnieuw aan bij elke afloop.
  • Is refreshToken verlopen, dan moet je een volledig nieuwe set ophalen met token_ApplyToken2.

Voorbeeld

query {
  token_ApplyToken2(
    username: ""
    password: ""
    apiKey: ""
    applicationId: 13
  ) {
    idToken
    accessToken
    refreshToken
  }
}

Voorbeeldantwoord

{
  "data": {
    "token_ApplyToken2": {
      "idToken": "",
      "accessToken": "",
      "refreshToken": ""
    }
  }
}
Query token_RefreshToken Vernieuwt de tokens met een refresh-token, zonder opnieuw in te loggen.

Parameters

apiKey: String!
applicationId: Int!
refreshToken: String!

Antwoord

idToken: String
accessToken: String
refreshToken: String

Opmerkingen

  • accessToken is 60 minuten geldig. refreshToken is 90 dagen geldig.
  • Is refreshToken verlopen, dan moet je een volledig nieuwe set ophalen met token_ApplyToken2.

Voorbeeld

query {
  token_RefreshToken(
    apiKey: "",
    applicationId: 13,
    refreshToken: ""
    ){
      idToken
      accessToken
      refreshToken
    }
}

Voorbeeldantwoord

{
  "data": {
    "token_RefreshToken": {
      "idToken": "",
      "accessToken": "",
      "refreshToken": ""
    }
  }
}

Taxaties

Maak, lees, werk bij en toon taxaties, met voertuiggegevens, leasegegevens en rapporten. De voorbeelden hieronder gebruiken kentekens en ID's die in de testomgeving bestaan. Neem contact op wanneer je testtoegang aanvraagt en je krijgt testgegevens die bij je account passen.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Productie https://bus2.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Mutation Test_CreateTest Maakt een nieuwe taxatie aan voor een voertuig. Geeft de taxatie-id terug.

Parameters

vehicleDataModel: VehicleDataModel!
testDataModel: TestDataModel!

Vereist

  • testTypeIds
  • unitId
  • regNo / vin

Antwoord

result: Int

Voorbeeld

mutation{
  test_CreateTest(testDataModel:  {
    testTypeIds: [ 3 ],
    unitId: 1,
    externalReferenceId: "454532",
    mileage: 45000,
    testAnnotations: ["Fleet"]
    serviceData: [ {
       mileage: 2000,
       date: "2022-04-05"
    },
    {
       mileage: 10000,
       date: "2023-06-23"
    }],
    testComments: ["This is comment 1", "This is comment 2"],
    testOrderedBy: "FirstName LastName"
  },
  vehicleDataModel:  {
    regNo: "",
    vin: "YV1DZARCDH2231635",
    trimLevel: "M Sport",
    vehiclePackages: [ {
       packageName: "Comfort package",
       vehicleOptions: [ {
          optionName: "Dragkrok, elektrisk",
          includedItems: "Stabilitetsprogram släp\nVikter: totalvikt (kg): 3 500"
       }]
    }],
    vehicleOptions: [ {
        optionName: "Adaptiva LED strålkastare",
        includedItems: "Kurvljus\nLED-detaljljus"
    }]
  }
  )
}

Voorbeeldantwoord

{
  "data": {
    "test_CreateTest": 54
  }
}
Mutation testData_CreateLeaseData Voegt leasedata toe aan een taxatie: producttype, aankoopprijs, contractreferentie en meer.

Parameters

testId: Int!
leaseDataModel: LeaseDataModel!

Antwoord

result: Boolean

Voorbeeld

mutation{
  testData_CreateLeaseData(testId: 21, leaseDataModel:  {
     productType: "Full Service Leasing (FSL-SE)",
     purchasePrice: 23.50,
     quotationTemplate: "Release plus commercial",
     repairMaintenance: "Included",
     transportDate: "2025-01-21",
     winterTyres: "Not Included",
     contractReference: "777777"
  }
  )
}

Voorbeeldantwoord

{
  "data": {
    "testData_CreateLeaseData": true
  }
}
Mutation testData_CreateLeaseUserData Voegt de leaseklant en contactpersonen toe aan een taxatie: wagenparkbeheerder, bestuurder en meer.

Parameters

testId: Int!
leaseUserDataModel: LeaseUserDataModel!

Antwoord

result: Boolean

Voorbeeld

mutation{
  testData_CreateLeaseUserData(testId: 21, leaseUserDataModel:  {
    customerId: "500000",
    customerName: "customer",
    fleetManagerName: "fleet manager",
    fleetManagerEmail: "fleetManager@test.com",
    installationRecipientEmail: "installationRecipient@test.com",
    kamName: "KAM Name",
    kamEmail: "kam@test.com",
    driverName: "driver",
    driverPhone: "944998989",
    driverEmail: "driver@test.com"
  }
  )
}

Voorbeeldantwoord

{
  "data": {
    "testData_CreateLeaseUserData": true
  }
}
Query Test_GetTest Haalt een taxatie op met status, kilometerstand en onderhoudshistorie.

Parameters

testId: Int!

Antwoord

result: TestDataModel

Opmerkingen

  • Gelokaliseerde tekstvelden zoals testStatus en namen van controlepunten worden teruggegeven in de cultuur van de aanroeper. De cultuur komt uit de culture-claim van het token, met terugval op Accept-Language. Het voorbeeld is vastgelegd met de Zweedse cultuur.

Voorbeeld

query{
  test_GetTest(testId: 32685)
  {
    testId,
    externalReferenceId,
    mileage,
    serviceData {
      date,
      mileage,
      comment
    },
    unitId,
    testTypeIds,
    testStatus,
    testComments
  }
}

Voorbeeldantwoord

{
  "data": {
    "test_GetTest": {
      "testId": 59,
      "externalReferenceId": "45678",
      "mileage": 45000,
      "serviceData": [
        {
          "date": "2022-04-04T18:30:00.000Z",
          "mileage": 2000,
          "comment": null
        },
        {
          "date": "2023-06-22T18:30:00.000Z",
          "mileage": 10000,
          "comment": null
        }
      ],
      "unitId": 1,
      "testTypeIds": [
        2
      ],
      "testStatus": "Test påbörjad",
      "testComments": []
    }
  }
}
Query Test_GetTestFiles Haalt de afbeeldingen en bestanden op die bij een taxatie horen.

Parameters

testId: Int!

Antwoord

result: [TestFileModel]

Voorbeeld

query{
  test_GetTestFiles(testId: 32685)
  {
    fileUrl,
    fileName,
    testSectionId,
    mediaId
  }
}

Voorbeeldantwoord

{
  "data": {
    "test_GetTestFiles": [
      {
        "fileUrl": "https://…/fil.jpg?sv=…&sig=…",
        "fileName": "image (9).jpg",
        "testSectionId": 6,
        "mediaId": "CD......"
      },
      {
        "fileUrl": "https://…/fil.jpg?sv=…&sig=…",
        "fileName": "image (10).jpg",
        "testSectionId": 6,
        "mediaId": "CD......"
      },
      {
        "fileUrl": "https://…/fil.jpg?sv=…&sig=…",
        "fileName": "image (17).jpg",
        "testSectionId": 1,
        "mediaId": "CD......"
      }
    ]
  }
}
Query TestData_GetVehicleData Haalt de voertuigdata op: kenteken, VIN, opties en pakketten.

Parameters

testId: Int!

Antwoord

result: VehicleDataModel

Voorbeeld

query{
  testData_GetVehicleData(testId: 59)
  {
    regNo,
    vin,
    trimLevel,
    vehicleOptions {
      optionName,
      includedItems,
      isSelected
    },
    vehiclePackages {
      packageName,
      isSelected,
      vehicleOptions {
        optionName,
        includedItems,
        isSelected
      }
    }
    color,
    model,
    make,
    gearBox,
    engine,
    inspectionDueDate,
    lastInspectedDate
  }
}

Voorbeeldantwoord

{
  "data": {
    "testData_GetVehicleData": {
      "regNo": "YSA053",
      "vin": "YV1DZARCDH2231635",
      "trimLevel": "M Sport",
      "vehicleOptions": [
        {
          "optionName": "Adaptiva LED strålkastare",
          "includedItems": "Kurvljus\nLED-detaljljus",
          "isSelected": false
        }
      ],
      "vehiclePackages": [
        {
          "packageName": "Comfort package",
          "isSelected": false,
          "vehicleOptions": [
            {
              "optionName": "Dragkrok, elektrisk",
              "includedItems": "Stabilitetsprogram släp\nVikter: totalvikt (kg): 3 500",
              "isSelected": false
            }
          ]
        }
      ],
      "color": "Svart",
      "model": "XC60",
      "make": "Volvo",
      "gearBox": "Automat",
      "engine": "2.0 D3 D4204T9 (110 kW)",
      "inspectionDueDate": "2027-07-30T22:00:00.000Z",
      "lastInspectedDate": "2025-07-21T22:00:00.000Z"
    }
  }
}
Query testData_GetLeaseData Haalt de leasedata voor een taxatie op.

Parameters

testId: Int!

Antwoord

result: LeaseDataModel

Voorbeeld

query{
  testData_GetLeaseData(testId: 21) {
     productType
     purchasePrice
     quotationTemplate
     repairMaintenance
     transportDate
     winterTyres
  }
}

Voorbeeldantwoord

{
  "data": {
    "testData_GetLeaseData": {
      "productType": null,
      "purchasePrice": null,
      "quotationTemplate": null,
      "repairMaintenance": null,
      "transportDate": null,
      "winterTires": null
    }
  }
}
Query testData_GetLeaseUserData Haalt de leaseklant en contactpersonen voor een taxatie op.

Parameters

testId: Int!

Antwoord

result: LeaseUserDataModel

Voorbeeld

query{
  testData_GetLeaseUserData(testId: 21) {
    customerId
    customerName
    fleetManagerName
    fleetManagerEmail
    installationRecipientEmail
    kamName
    kamEmail
    driverName
    driverPhone
    driverEmail
  }
}

Voorbeeldantwoord

{
  "data": {
    "testData_GetLeaseUserData": {
      "customerId": null,
      "customerName": null,
      "fleetManagerName": null,
      "fleetManagerEmail": null,
      "installationRecipientEmail": null,
      "kamName": null,
      "kamEmail": null,
      "driverName": null,
      "driverPhone": null,
      "driverEmail": null
    }
  }
}
Query Unit_GetAccessibleUnits Toont de units waartoe je toegang hebt.

Antwoord

result: [UnitModel]

Voorbeeld

query{
  unit_GetAccessibleUnits
  {
    unitId
    unitName
  }
}

Voorbeeldantwoord

{
  "data": {
    "unit_GetAccessibleUnits": [
      {
        "unitId": 1,
        "unitName": "Test unit"
      }
    ]
  }
}
Query TestType_GetTestTypes Toont de taxatietypen die beschikbaar zijn voor een unit.

Parameters

unitId: Int!
vin: String

Antwoord

result: [TestTypeModel]

Voorbeeld

query{
  testType_GetTestTypes(unitId: 1)
  {
    testTypeId,
    testTypeName,
    isActive
  }
}

Voorbeeldantwoord

{
  "data": {
    "testType_GetTestTypes": [
      {
        "testTypeId": 1,
        "testTypeName": "Test med kostnader",
        "isActive": true
      },
      {
        "testTypeId": 2,
        "testTypeName": "Test utan kostnader",
        "isActive": true
      },
      {
        "testTypeId": 3,
        "testTypeName": "Värdering av onormal slitage",
        "isActive": true
      },
      {
        "testTypeId": 770,
        "testTypeName": "Custom 1",
        "isActive": false
      }
    ]
  }
}
Mutation test_UpdateTest Werkt een bestaande taxatie bij.

Parameters

testDataModel: TestDataModel!

Vereist

  • testDataModel.testId

Antwoord

result: TestDataModel

Voorbeeld

mutation {
  test_UpdateTest(testDataModel:  {
    testId: 625,
    mileage: 60000
  }) {
    testId,
    mileage
  }
}

Voorbeeldantwoord

SalesReport_CreateSalesReportFromSource
Query Test_GetAllTests Een doorzoekbare, sorteerbare lijst van alle taxaties, met filters en paginering.

Parameters

searchTerm: String
sortBy: GridSort
filters: TestFilterModel
skip: Int?
take: Int?
timeZoneOffset: Int?

Antwoord

result: TestListModel

Opmerkingen

  • De pagina wordt gepagineerd met skip en take. De standaard take is 50 en de standaard skip is 0. Er is geen bovengrens.
  • Sorteerbare velden: regno, vehicleMake, vehicleModel, vin, completedDate, createdDate, performedDate, performedBy, testTypes, isObdPerformed, testStatus, testAnnotations.
  • searchTerm komt alleen overeen als de tekst begint met RegNo of TestAnnotations.
  • timeZoneOffset wordt in minuten verstuurd en is het verschil tussen UTC-tijd en clienttijd (UTC − clienttijd). Is de Zweedse tijd +1 GMT, stuur dan -1 om de juiste dag te raken.

Voorbeeld

query {
  test_GetAllTests(searchTerm: "YSA053") {
            tests {
                testId
                regno
                vehicleMake
                vehicleModel
                vin
                createdDate
                performedDate
                completedDate
                performedBy
                testTypes
                isObdPerformed
                testStatus
                testAnnotations
                unitId
                unitName
            }
            totalTests
        }
    }
Query Test_GetActiveTests Hetzelfde als hierboven, maar alleen taxaties die in behandeling zijn.

Parameters

searchTerm: String
sortBy: GridSort
filters: TestFilterModel
skip: Int?
take: Int?
timeZoneOffset: Int?

Antwoord

result: TestListModel

Opmerkingen

  • De pagina wordt gepagineerd met skip en take. De standaard take is 50 en de standaard skip is 0. Er is geen bovengrens.
  • Sorteerbare velden: regno, vehicleMake, vehicleModel, vin, completedDate, createdDate, performedDate, performedBy, testTypes, isObdPerformed, testStatus, testAnnotations.
  • searchTerm komt alleen overeen als de tekst begint met RegNo of TestAnnotations.
  • timeZoneOffset wordt in minuten verstuurd en is het verschil tussen UTC-tijd en clienttijd (UTC − clienttijd). Is de Zweedse tijd +1 GMT, stuur dan -1 om de juiste dag te raken.

Voorbeeld

query {
  test_GetActiveTests(searchTerm: "YSA053") {
            tests {
                testId
                regno
                vehicleMake
                vehicleModel
                vin
                createdDate
                performedDate
                completedDate
                performedBy
                testTypes
                isObdPerformed
                testStatus
                testAnnotations
                unitId
                unitName
            }
            totalTests
        }
    }
Query Test_GetTestReports Haalt de links naar de conditierapporten van een taxatie op, inclusief pdf.

Parameters

testId: Int!

Vereist

  • int testId

Antwoord

result: [ReportModel]

Voorbeeld

query {
        test_GetTestReports(testId: 33081) {
            testTypeId
            testType
            shortenedReportURL
            shortenedPdfReportURL
        }
    }

Voorbeeldantwoord

{
  "data": {
    "test_GetTestReports": [
      {
        "testTypeId": 2,
        "testType": "Test utan kostnader",
        "shortenedReportURL": "https://lnkt.bus.no/8049d5ll2"
        "shortenedPdfReportURL": "https://lnkt.bus.no/41181Ruhpp"
      }
    ]
  }
}
Query test_GetGeneralInfo Haalt algemene informatie over het voertuig op: sleutels, laadkabel, eerder gebruik en meer.

Parameters

testId: Int!

Antwoord

result: GeneralInfoModel

Opmerkingen

  • Lees de huidige waarden voordat je bijwerkt. test_GetGeneralInfoMetaData geeft de vooraf gedefinieerde sleutelwaarden.

Voorbeeld

query {
  test_GetGeneralInfo(testId: 46324) {
    masterKeyCount
    chargingCableCount
    previousUseId
    hasPreviousDamage
    vehicleKeyTypes { key value }
    chargingCableTypes { key value }
  }
}

Voorbeeldantwoord

{ "data": { "test_GetGeneralInfo": { "masterKeyCount": 2, "chargingCableCount": 1, "previousUseId": 3, "hasPreviousDamage": false, "vehicleKeyTypes": [ { "key": 1, "value": "Remote key" } ], "chargingCableTypes": [] } } }
Mutation test_UpdateGeneralInfo Werkt de algemene informatie over het voertuig bij.

Parameters

testId: Int!
generalInfoModel: GeneralInfoModel!

Antwoord

result: Boolean

Opmerkingen

  • Lezen, wijzigen, schrijven: stuur het volledige model. Lege lijsten voor vehicleKeyTypes of chargingCableTypes worden geweigerd; een lege lijst verwijdert de bestaande typen.

Voorbeeld

mutation {
  test_UpdateGeneralInfo(testId: 46324, generalInfoModel: {
    masterKeyCount: 2,
    chargingCableCount: 1,
    previousUseId: 3,
    hasPreviousDamage: false,
    vehicleKeyTypes: [{ key: 1, value: "Remote key" }],
    chargingCableTypes: [{ key: 1, value: "Type 2" }]
  })
}

Voorbeeldantwoord

{ 
"data": 
    { 
        "test_UpdateGeneralInfo": true
    }
 }

Verkooprapporten

Verkooprapporten op basis van de taxaties, met deellinks en afronding.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Productie https://bus2.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Mutation SalesReport_CreateSalesReportFromSource Maakt een verkooprapport aan op basis van een bestaande taxatie of een voertuig.

Parameters

regNo: String!
testRunId: Int?
unitId: Int?

Vereist

  • string regNo
  • int testRunId or int unitId

Antwoord

result: Int

Voorbeeld

mutation {
      salesReport_CreateSalesReportFromSource(regNo: "ØSXXR01", unitId: 5147)
  }

Voorbeeldantwoord

{
  "data": {
    "salesReport_CreateSalesReportFromSource": 764
  }
}
Query SalesReport_GetSalesReportShareMetaData Haalt de deellinks voor het verkooprapport en het VDN-rapport op, plus de pdf-download.

Parameters

salesReportId: Int!

Vereist

  • int salesReportId

Opmerkingen

  • salesReportPdfDownloadSasUrl is alleen beschikbaar voor externe partners.

Voorbeeld

query {
  salesReport_GetSalesReportShareMetaData(salesReportId: 764) {
    shortenedSalesReportLinkURL
    shortenedVDNReportLinkURL
    shortenedSalesReportPdfURL
    salesReportPdfDownloadSasUrl
  }
}

Voorbeeldantwoord

{
  "data": {
    "salesReport_GetSalesReportShareMetaData": {
      "shortenedSalesReportLinkURL": "https://lnkt.bus.no/47430y13WA",
      "shortenedVDNReportLinkURL": "https://lnkt.bus.no/47431z3f1_",
      "shortenedSalesReportPdfURL": "https://lnkt.bus.no/47432iCS5k",
      "salesReportPdfDownloadSasUrl": "https://…/fil.jpg?sv=…&sig=…"
    }
  }
}
Query SalesReport_GetAllSalesReports Een doorzoekbare, sorteerbare lijst van alle verkooprapporten.

Parameters

searchTerm: String
sortBy: GridSort
filters: SalesReportFilterModel
skip: Int?
take: Int?
timeZoneOffset: Int?

Antwoord

result: SalesReportListModel

Opmerkingen

  • De pagina wordt gepagineerd met skip en take. De standaard take is 50 en de standaard skip is 0. Er is geen bovengrens.
  • Sorteerbare velden: regno, vehicleMake, vehicleModel, vin, completedDate, salesReportStatus, createdDate, performedBy
  • searchTerm komt alleen overeen als de tekst begint met RegNo.
  • timeZoneOffset wordt in minuten verstuurd en is het verschil tussen UTC-tijd en clienttijd (UTC − clienttijd). Is de Zweedse tijd +1 GMT, stuur dan -1 om de juiste dag te raken.

Voorbeeld

query {
  salesReport_GetAllSalesReports(searchTerm: "WBS99A") {
            salesReports {
                salesReportId
                salesReportStatus
                salesReportStatusId
                regno
                vehicleMake
                vehicleModel
                vin
                createdDate
                completedDate
            }
            totalSalesReports
        }
    }
Query SalesReport_GetActiveSalesReports Hetzelfde als hierboven, maar alleen actieve verkooprapporten.

Parameters

searchTerm: String
sortBy: GridSort
filters: SalesReportFilterModel
skip: Int?
take: Int?
timeZoneOffset: Int?

Antwoord

result: SalesReportListModel

Opmerkingen

  • De pagina wordt gepagineerd met skip en take. De standaard take is 50 en de standaard skip is 0. Er is geen bovengrens.
  • Sorteerbare velden: regno, vehicleMake, vehicleModel, vin, completedDate, salesReportStatus, createdDate, performedBy
  • searchTerm komt alleen overeen als de tekst begint met RegNo.
  • timeZoneOffset wordt in minuten verstuurd en is het verschil tussen UTC-tijd en clienttijd (UTC − clienttijd). Is de Zweedse tijd +1 GMT, stuur dan -1 om de juiste dag te raken.

Voorbeeld

query {
  salesReport_GetActiveSalesReports(searchTerm: "WBS99A") {
            salesReports {
                salesReportId
                salesReportStatus
                salesReportStatusId
                regno
                vehicleMake
                vehicleModel
                vin
                createdDate
                completedDate
            }
            totalSalesReports
        }
    }
Mutation SalesReport_UpdateSalesReport Werkt een verkooprapport bij.

Parameters

salesReportData: SalesReportDataModel!

Vereist

  • salesReportData.SalesReportId
  • salesReportData.TestId
  • salesReportData.UnitId

Antwoord

result: SalesReportDataModel

Voorbeeld

mutation UpdateSalesReport($salesReportData: SalesReportDataModelInput!) {
  updatedSalesReport: salesReport_UpdateSalesReport(
    salesReportData: $salesReportData
  ) {
    testId
    mileage
    createdDate
    completedDate
    salesReportTypeIds
    deviationNotes
    hasBatteryReading
    testStatusId
    unitId
    __typename
  }
}

Voorbeeldantwoord

{
  "data": {
    "updatedSalesReport": {
      "testId": 45068,
      "mileage": 12345,
      "createdDate": "2026-07-08T07:55:42.303Z",
      "completedDate": null,
      "salesReportTypeIds": [
        1,
        2,
        3
      ],
      "deviationNotes": null,
      "hasBatteryReading": false,
      "testStatusId": 8,
      "unitId": 5161,
      "__typename": "SalesReportDataModel"
    }
  }
}
Mutation salesReport_ConcludeSalesReport Rondt een verkooprapport af en verstuurt het per e-mail of sms.

Parameters

salesReportConcludeModel: SalesReportConcludeModel!

Vereist

  • salesReportConcludeModel.salesReportId
  • salesReportConcludeModel.sendSalesReportEmailSMSModel

Antwoord

result: Boolean

Opmerkingen

  • sendSalesReportEmailSMSModel is verplicht en de gegenereerde deellinks worden daarop opgeslagen. Lege lijsten voor e-mail, nummers en rapporttypen versturen niets. Op eenheid geconfigureerde ontvangers worden bij het afsluiten toegevoegd. Open afwijkingen blokkeren het afsluiten niet.

Voorbeeld

mutation {
  salesReport_ConcludeSalesReport(salesReportConcludeModel: {
    salesReportId: 3180,
    sendSalesReportEmailSMSModel: {
      salesReportId: 3180,
      emails: [],
      numbers: [],
      salesReportTypes: []
    }
  })
}

Voorbeeldantwoord

{ 
"data": 
           { 
                "salesReport_ConcludeSalesReport": true 
           }
 }
Mutation salesReport_AddSalesReportImages Voegt afbeeldingen toe aan een verkooprapport, met een optionele omslagafbeelding.

Parameters

salesReportId: Int!
images: [SalesReportImageInputModel]!

Antwoord

result: [SalesReportImageResultModel]

Voorbeeld

mutation {
  salesReport_AddSalesReportImages (salesReportId: 3416,
  images: [ {
    isCover: false
    fileName: "354.jpg"
     url: "https://fastly.picsum.photos/id/471/536/354.jpg?hmac=ep1BMOqUf1L7RJA-pgAlrJFeXxAbxj7srUVwGoTiJGE"

  }])
  {
    fileName
    isSuccess
    reason
  }
}

Gebreken en schade

Gebreken en schade die bij een taxatie zijn vastgelegd, met afbeeldingen.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Productie https://bus2.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Query Defect_GetTestDefects Haalt de gebreken en schade op die bij een taxatie zijn vastgelegd.

Parameters

testId: Int!

Antwoord

result: [TestDefectModel]

Opmerkingen

  • TotalCost is exclusief btw. De interface kan het bedrag inclusief btw tonen.

Voorbeeld

query{
  defect_GetTestDefects(testId: 54)
  {
    testDefectId,
    checkpoint {
      key
      value
    }
    checkpointComment {
      key
      value
    }
    commonCost,
    workCost,
    partsCost,
    totalCost
  }
}

Voorbeeldantwoord

{
  "data": {
    "defect_GetTestDefects": [
      {
        "testDefectId": 3444,
        "checkpoint": {
          "key": 2,
          "value": "Dokumentation utrustning - SW"
        },
        "checkpointComment": {
          "key": 9,
          "value": "testpunkten"
        },
        "commonCost": 100,
        "workCost": 60,
        "partsCost": 40,
        "totalCost": 200
      },
      {
        "checkpoint": {
          "key": 5,
          "value": "Registreringsskylt - SW"
        },
        "checkpointComment": {
          "key": 6,
          "value": "oläsbar"
        },
        "commonCost": 300,
        "workCost": 40,
        "partsCost": 30,
        "totalCost": 370
      }
    ]
  }
}
Query Defect_GetTestDefectFiles Haalt de afbeeldingen en bestanden op die aan de gebreken van een taxatie zijn gekoppeld.

Parameters

testId: Int!

Antwoord

result: [TestDefectFileModel]

Voorbeeld

query{
  defect_GetTestDefectFiles(testId: 54)
  {
    testDefectId,
    testDefectFiles
    {
      fileUrl,
      fileName,
      mediaId
    }
  }
}

Voorbeeldantwoord

{
  "data": {
    "defect_GetTestDefectFiles": [
      {
        "testDefectId": 320,
        "testDefectFiles": [
          {
            "fileUrl": https://dev.bus.no/busplatform3/RestAPIServers.FileServerCustom2/api/v1/File/GetFile?fileReference=CfDJ8EsheyHuiV5NuNJhGGxi8IXoncPhEgkimEBPt93Wv0WX_3ToA1zBeCaMvNsEJzD2-3CvE_hVeiyHpI4xg6ptP1jhDuKXHfBLQLcshyiaCEAJurCO5Grs5aCGN9RoQR38vX4jMsALbkHdcBWNhAaMKP1h7-I0l3pdRBmxOdrqYqdoQUyqExcUkS3z-vUsGTYqRH0 ,
            "fileName": "pexels_mike_bird_100653.jpg",
             "mediaId": "CD......"
          },
          {
            "fileUrl": https://dev.bus.no/busplatform3/RestAPIServers.FileServerCustom2/api/v1/File/GetFile?fileReference=CfDJ8EsheyHuiV5NuNJhGGxi8IVhMC9lQU7CYN_0177q1-fn1HgYQJnGAMqkLl9hBQurMaT4Ej6W45btBdwW0z-QEMIupfHvwSbixIiNJInMS4g4PmtVpvGw0MYIoH-hS_PRgcwUV6dEE1HmSFcNkydDbAKzgueyxbwBMMFnV6y0TG4tW2JGvK-fV1mvWQu7xdHaXx8 ,
            "fileName": "pexels_joshua_koller_757185.jpg",
            "mediaId": "CD......"
          }
        ]
      },
      {
        "testDefectId": 321,
        "testDefectFiles": []
      }
    ]
  }
}
Mutation Defect_UpdateTestDefect Werkt een gebrek bij op een taxatie en op het bijbehorende verkooprapport.

Parameters

testId: Int!
defectFormData: TestDefectModel!

Antwoord

result: TestDefectModel

Voorbeeld

mutation updateTestDefect($testId: Int!, $defectFormData: TestDefectModelInput!) {
  updatedDefect: defect_UpdateTestDefect(
    testId: $testId
    defectFormData: $defectFormData
  ) {
    testDefectId
    checkpointInstanceId
    checkpointGroup {
      key
      value
      __typename
    }
    checkpoint {
      key
      value
      __typename
    }
    checkpointComment {
      key
      value
      __typename
    }
    actionsList {
      actionId
      name
      __typename
    }
    positionsList {
      positionId
      name
      __typename
    }
    totalCost
    isTaxIncluded
    testDefectComment
    salesReportDefectId
    swedishStateReportLetterReferenceId
    stateGradeId
    __typename
  }
}

Voorbeeldantwoord

{
  "data": {
    "updatedDefect": {
      "testDefectId": 14276,
      "checkpointInstanceId": 285,
      "checkpointGroup": {
        "key": 1,
        "value": "Identifikation",
        "__typename": "KeyValueWithAdditionalItemOfNullableOfInt32"
      },
      "checkpoint": {
        "key": 59,
        "value": "Registreringsskylt",
        "__typename": "KeyValueModel"
      },
      "checkpointComment": {
        "key": 1,
        "value": "Skyltfäste",
        "__typename": "KeyValueModel"
      },
      "actionsList": [
        {
          "actionId": 6,
          "name": "Kontrollera",
          "__typename": "ActionModel"
        }
      ],
      "positionsList": [
        {
          "positionId": 2,
          "name": "Bak",
          "__typename": "PositionModel"
        }
      ],
      "totalCost": 66,
      "isTaxIncluded": true,
      "testDefectComment": "TEessserer",
      "salesReportDefectId": null,
      "swedishStateReportLetterReferenceId": null,
      "stateGradeId": 3,
      "__typename": "TestDefectModel"
    }
  }
}

Werkorders

Werkorders en taken voor het garageproces.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Productie https://bus2.bus.no/BUSPlatform3/BUSTest.Server/BUS.APIs.GraphQLServer.P3.BUSTest.ExternalEndpoint1
Mutation workOrder_CreateWorkOrder Maakt een werkorder aan voor een voertuig, met of zonder gekoppelde taxatie.

Parameters

regNo: String!
testRunId: Int?!
unitId: Int!

Vereist

  • testRunId (optional for standalone work order)

Antwoord

result: Int

Opmerkingen

  • Met testRunId moet de taxatie zijn afgesloten en wordt er één taak per afwijking gemaakt. Zonder testRunId wordt een zelfstandige werkorder gemaakt.

Voorbeeld

mutation {
  workOrder_CreateWorkOrder(regNo: "PHP526", testRunId: 45988, unitId: 5147)
}

Voorbeeldantwoord

{ 
"data": 
     {
          "workOrder_CreateWorkOrder": 1773
     }
 }
Mutation workOrder_CreateWorkOrderJob Voegt een taak toe aan een werkorder.

Parameters

workOrderJobModel: WorkOrderJobModel!

Vereist

  • workOrderJobModel (workOrderId and job details)

Antwoord

result: WorkOrderJobModel

Voorbeeld

mutation {
  workOrder_CreateWorkOrderJob(workOrderJobModel: {
    workOrderId: 1773,
    jobName: "Replace wiper blades",
    comment: "Added by partner"
  }) {
    workOrderJobId
    jobName
  }
}

Voorbeeldantwoord

{ 
"data":
         { "workOrder_CreateWorkOrderJob": { 
                           "workOrderJobId": 28584, "jobName": "Replace wiper blades"
                   }
          }
 }
Mutation workOrder_AddStandardJobsToWorkOrderCycle Voegt standaardtaken toe aan een werkorder.

Parameters

workOrderId: Int!
standardJobIds: [Int]!

Antwoord

result: [WorkOrderJobModel]

Voorbeeld

mutation {
  workOrder_AddStandardJobsToWorkOrderCycle(workOrderId: 1773, standardJobIds: [101, 205]) {
    workOrderJobId
    jobName
  }
}

Voorbeeldantwoord

{ 
"data": 
            { "workOrder_AddStandardJobsToWorkOrderCycle":
                            [ { "workOrderJobId": 28585, "jobName": "Standard service" } ] 
            }
 }
Query workOrder_GetWorkOrderJobList Haalt alle taken van een werkorder op.

Parameters

workOrderId: Int!

Antwoord

result: WorkOrderJobListModel

Opmerkingen

  • workOrderJobStatus is een genest object. Gebruik de taak-ID's die je hier krijgt bij het instellen van de status.

Voorbeeld

query {
  workOrder_GetWorkOrderJobList(workOrderId: 1773) {
    count
    workOrderJobs {
      workOrderJobId
      jobName
      workOrderJobStatus {
        workOrderJobStatusId
        workOrderJobStatusName
      }
      testDefect {
        testDefectId
      }
    }
  }
}

Voorbeeldantwoord

{ 
"data":
                { "workOrder_GetWorkOrderJobList":
                                              { "count": 2, "workOrderJobs": [ 
                                                                  { "workOrderJobId": 28581, "jobName": "Defect job", "workOrderJobStatus": { "workOrderJobStatusId": 3,                             "workOrderJobStatusName": "Done" }, "testDefect": { "testDefectId": 3444 } } 
                                                             ]
                                                }
                  }
 }
Mutation workOrder_UpdateWorkOrderJobStatus Zet een nieuwe status op een of meer taken.

Parameters

workOrderId: Int!
workOrderJobIds: [Int]!
workOrderJobStatusId: Int!

Antwoord

result: WorkOrderStatusUpdateResult

Opmerkingen

  • Done verschijnt als hersteld op het verkooprapport, Open als nog open afwijking. De status van de werkorder blijft synchroon.

Voorbeeld

mutation {
  workOrder_UpdateWorkOrderJobStatus(
    workOrderId: 1773,
    workOrderJobIds: [28581, 28582],
    workOrderJobStatusId: 3
  ) {
    workOrderStatusId
    workOrderStatusName
    updatedJobs {
      workOrderJobId
      workOrderJobStatusId
      workOrderJobStatusName
    }
  }
}

Voorbeeldantwoord

{ "data": { "workOrder_UpdateWorkOrderJobStatus": { "workOrderStatusId": 2, "workOrderStatusName": "InProgress", "updatedJobs": [ { "workOrderJobId": 28581, "workOrderJobStatusId": 3, "workOrderJobStatusName": "Done" } ] } } }
Query workOrder_GetStandardJobsForWorkOrder Toont de standaardtaken die aan een werkorder kunnen worden gekoppeld.

Parameters

workOrderId: Int!

Antwoord

result: [StandardJobModel]

Voorbeeld

query{
  workOrder_GetStandardJobsForWorkOrder(
    workOrderId: 1832)
  {
    standardJobId
    jobName
    cost
    isTaxInclude
  }
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_GetStandardJobsForWorkOrder": [
      {
        "standardJobId": 723,
        "jobName": "Shenal standard - job",
        "cost": 800,
        "isTaxInclude": false
      }
    ]
  }
}
Query workOrderSettings_GetStandardJobsListForUnit Toont de eigen standaardtaken van de unit, met kosten.

Parameters

unitId: Int!

Antwoord

result: StandardJobsGridModel

Voorbeeld

query{
  workOrderSettings_GetStandardJobsListForUnit(unitId: 5208)
  {
    totalStandardJobs
    standardJobs {
      standardJobId
      jobName
      cost
    }
  }
}

Voorbeeldantwoord

{
  "data": {
    "workOrderSettings_GetStandardJobsListForUnit": {
      "totalStandardJobs": 6,
      "standardJobs": [
        {
          "standardJobId": 775,
          "jobName": "DT",
          "cost": 434
        },
        {
          "standardJobId": 737,
          "jobName": "Group 2 only LT",
          "cost": 0
        },
        {
          "standardJobId": 736,
          "jobName": "Group 1,2 only LT",
          "cost": 0
        },
        {
          "standardJobId": 734,
          "jobName": "Group 2 only CT",
          "cost": 0
        },
        {
          "standardJobId": 732,
          "jobName": "Group 1,2 CT",
          "cost": 0
        },
        {
          "standardJobId": 456,
          "jobName": "Group 1,2,3",
          "cost": 0
        }
      ]
    }
  }
}
Query workOrder_GetTestRunsForWorkOrderCreation Toont de testruns die in aanmerking komen om een werkorder voor een kenteken te worden.

Parameters

regNo: String!
unitId: Int!

Voorbeeld

query{
  workOrder_GetTestRunsForWorkOrderCreation(
    regNo: "AOL449"
    , unitId: 5147
    )
  {
    isRegNoValid
    items {
      testId
      testRunId
      mileage
    }
  }
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_GetTestRunsForWorkOrderCreation": {
      "isRegNoValid": true,
      "items": [
        {
          "testId": 3456,
          "testRunId": 46664,
          "mileage": 45000
        },
        {
          "testId": 3457,
          "testRunId": 46663,
          "mileage": 45000
        },
        {
          "testId": 3458,
          "testRunId": 39591,
          "mileage": 45000
        },
        {
          "testId": 3459,
          "testRunId": 41191,
          "mileage": 45000
        },
        {
          "testId": 3460,
          "testRunId": 41223,
          "mileage": 66666
        },
        {
          "testId": 3461,
          "testRunId": 2358,
          "mileage": 100001
        },
        {
          "testId": 3462,
          "testRunId": 39356,
          "mileage": 1500
        },
        {
          "testId": 3463,
          "testRunId": 39363,
          "mileage": 33000
        },
        {
          "testId": 3464,
          "testRunId": 39264,
          "mileage": 45009
        },
        {
          "testId": 3465,
          "testRunId": 2887,
          "mileage": 222222
        }
      ]
    }
  }
}
Query workOrder_GetAllWorkOrders Toont alle werkorders. Doorzoekbaar, sorteerbaar en gepagineerd.

Parameters

searchTerm: String
sortBy: GridSort
filters: WorkOrderFilterModel
skip: Int?
take: Int?
timeZoneOffset: Int

Antwoord

result: WorkOrderListModel

Opmerkingen

  • De pagina wordt gepagineerd met skip en take. De standaard take is 50 en de standaard skip is 0. Er is geen bovengrens.
  • timeZoneOffset wordt in minuten verstuurd en is het verschil tussen UTC-tijd en clienttijd (UTC − clienttijd). Is de Zweedse tijd +1 GMT, stuur dan -1 om de juiste dag te raken.

Voorbeeld

query{
  workOrder_GetAllWorkOrders(
    searchTerm: "AOL449"
    timeZoneOffset: 0
    )
    {
      totalWorkOrders
      workOrders
      {
        testId
        workOrderId
        vehicleMake
        vehicleModel
      }
    }
  }
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_GetAllWorkOrders": {
      "totalWorkOrders": 8,
      "workOrders": [
        {
          "testId": 47186,
          "workOrderId": 1832,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 45523,
          "workOrderId": 1698,
          "vehicleMake": "",
          "vehicleModel": ""
        },
        {
          "testId": 41141,
          "workOrderId": 1419,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 40793,
          "workOrderId": 1376,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 40709,
          "workOrderId": 1362,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 38984,
          "workOrderId": 1016,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 38976,
          "workOrderId": 1015,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 38904,
          "workOrderId": 994,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        }
      ]
    }
  }
}
Query workOrder_GetActiveWorkOrders Toont werkorders die nog niet zijn afgerond.

Parameters

searchTerm: String
sortBy: GridSort
filters: WorkOrderFilterModel
skip: Int?
take: Int?
timeZoneOffset: Int

Antwoord

result: WorkOrderListModel

Opmerkingen

  • De pagina wordt gepagineerd met skip en take. De standaard take is 50 en de standaard skip is 0. Er is geen bovengrens.
  • timeZoneOffset wordt in minuten verstuurd en is het verschil tussen UTC-tijd en clienttijd (UTC − clienttijd). Is de Zweedse tijd +1 GMT, stuur dan -1 om de juiste dag te raken.

Voorbeeld

query{
  workOrder_GetActiveWorkOrders(
    searchTerm: "AOL449"
    timeZoneOffset: 0
    )
    {
      totalWorkOrders
      workOrders
      {
        testId
        workOrderId
        vehicleMake
        vehicleModel
      }
    }
  }
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_GetActiveWorkOrders": {
      "totalWorkOrders": 7,
      "workOrders": [
        {
          "testId": 47186,
          "workOrderId": 1832,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 45523,
          "workOrderId": 1698,
          "vehicleMake": "",
          "vehicleModel": ""
        },
        {
          "testId": 41141,
          "workOrderId": 1419,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 40793,
          "workOrderId": 1376,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 40709,
          "workOrderId": 1362,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 38984,
          "workOrderId": 1016,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        },
        {
          "testId": 38904,
          "workOrderId": 994,
          "vehicleMake": "Ford",
          "vehicleModel": "Transit Connect 230 LWB"
        }
      ]
    }
  }
}
Mutation workOrder_ConcludeWorkOrder Rondt een werkorder af.

Parameters

workOrderId: Int!

Antwoord

result: Boolean

Voorbeeld

mutation{
  workOrder_ConcludeWorkOrder(workOrderId: 1832)
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_ConcludeWorkOrder": true
  }
}
Mutation workOrder_ReopenWorkOrder Heropent een afgeronde werkorder.

Parameters

workOrderId: Int!

Antwoord

result: Boolean

Voorbeeld

mutation{
  workOrder_ReopenWorkOrder(workOrderId: 1832)
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_ReopenWorkOrder": true
  }
}
Mutation workOrder_DeleteWorkOrder Verwijdert een werkorder.

Parameters

workOrderId: Int!

Antwoord

result: Boolean

Voorbeeld

mutation{
  workOrder_DeleteWorkOrder(workOrderId: 1824)
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_DeleteWorkOrder": true
  }
}
Query workOrder_GetWorkOrder Haalt één werkorder op.

Parameters

workOrderId: Int!

Antwoord

result: WorkOrderDataModel

Voorbeeld

query{
  workOrder_GetWorkOrder(workOrderId: 1832)
  {
    workOrderId
    regNo
    mileage
    workOrderStatusId
  }
}

Voorbeeldantwoord

{
  "data": {
    "workOrder_GetWorkOrder": {
      "workOrderId": 1832,
      "regNo": "AOL449",
      "mileage": 45000,
      "workOrderStatusId": 5
    }
  }
}

Bestanden

REST-endpoints voor het ophalen van afbeeldingen en documenten.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type REST
Staging https://test.bus.no/BUSPlatform3/RestAPIServers.FileServer/api
Productie https://bus2.bus.no/busplatform3/RestAPIServers.FileServer/api
REST Media/GetMedia Henter selve filen fra en media-ID. Med useRedirect hentes filen direkte fra lagring, som er raskest.

Parameters

mediaId: String!
useRedirect: Boolean

Antwoord

Actual file

Voorbeeld

curl -X 'GET' \
  'https://test.bus.no/BUSPlatform3/RestAPIServers.FileServer/api/Media/GetMedia?api-version=1&mediaId=xxxx' \
  -H 'accept: */*' \
  -H 'x-api-version: 1' \
  -H 'x-access-token: eyJhb...'
REST Media/GetMediaSas Henter en midlertidig nedlastingslenke (SAS) for en media-ID, med utløpstidspunkt.

Parameters

mediaId: String!

Antwoord

sasUrl expiresOn

Voorbeeld

curl -X 'GET' \
  'https://test.bus.no/BUSPlatform3/RestAPIServers.FileServer/api/Media/GetMediaSas?api-version=1&mediaId=xxxx' \
  -H 'accept: application/json' \
  -H 'x-api-version: 1' \
  -H 'x-access-token: eyJhb...'

Realtime

Abonneer je op realtime gebeurtenissen wanneer een taxatie wordt afgesloten.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging wss://test.bus.no/BUSPlatform3/MessagingPortal/BUS.APIs.GraphQLServer.P3.MessagingPortal.ExternalEndpoint1
Productie wss://bus2.bus.no/BUSPlatform3/MessagingPortal/BUS.APIs.GraphQLServer.P3.MessagingPortal.ExternalEndpoint1
Subscription Test_OnTestConclude Meldt je in realtime wanneer een taxatie is afgerond.

Parameters

testId: Int!

Antwoord

result: TestDataModel

Opmerkingen

  • Gelokaliseerde tekstvelden zoals testStatus en namen van controlepunten worden teruggegeven in de cultuur van de aanroeper. De cultuur komt uit de culture-claim van het token, met terugval op Accept-Language. Het voorbeeld is vastgelegd met de Zweedse cultuur.

Voorbeeld

subscription{
  test_OnTestConclude(testId: 54)
  {
    testId,
    mileage,
    serviceData {
      date,
      mileage,
      comment
    },
    unitId,
    testTypeIds,
    testStatus
  }
}

Voorbeeldantwoord

{
  "data": {
    "test_GetTest": {
      "testId": 54,
      "mileage": 45000,
      "serviceData": [
        {
          "date": "2022-04-04T18:30:00.000Z",
          "mileage": 2000,
          "comment": null
        },
        {
          "date": "2023-06-22T18:30:00.000Z",
          "mileage": 10000,
          "comment": null
        }
      ],
      "unitId": 1,
      "testTypeIds": [
        2
      ],
      "testStatus": "Test färdigställd"
    }
  }
}

Webhooks

Registreer een webhook en ontvang gebeurtenissen op je eigen URL. B.U.S. stuurt één JSON-POST per gebeurtenis en accepteert elke 2xx als bevestiging.

De sandbox vereist inloggen. Neem contact op voor testinhoud.

API-type GraphQL
Staging https://test.bus.no/BUSPlatform3/MessagingPortal/BUS.APIs.GraphQLServer.P3.MessagingPortal.InternalApp
Productie https://bus2.bus.no/BUSPlatform3/MessagingPortal/BUS.APIs.GraphQLServer.P3.MessagingPortal.InternalApp
Mutation notification_SubscribeWebhook Registreert een webhook, algemeen of voor één eenheid. Geeft een secret terug dat B.U.S. in elke notificatiepayload plaatst, zodat je kunt bevestigen dat de notificatie van ons komt.

Parameters

webhookRegisterModel: WebhookRegisterModel (url, eventTypeId, unitId?)

Vereist

  • url
  • eventTypeId

Antwoord

secret: String

Opmerkingen

  • Elke levering is één JSON-POST. Bij 2xx geldt de melding als geleverd; elk ander antwoord wordt als fout gelogd en niet opnieuw verstuurd.

Voorbeeld

mutation{
  notification_SubscribeWebhook(webhookRegisterModel:  {
    url: "https://example.com/webhook",
    eventTypeId: 1,
    unitId: null
  }
  ){
    secret
  }
}

Voorbeeldantwoord

{
  "data": {
    "notification_SubscribeWebhook": {
      "secret": "…"
    }
  }
}
Mutation notification_UnsubscribeWebhook Verwijdert een geregistreerde webhook.

Parameters

eventTypeId: Int!
unitId: Int?

Antwoord

result: Boolean

Voorbeeld

mutation{
  notification_UnsubscribeWebhook(eventTypeId:  1, unitId: 5147)
}
Webhook TestConcluded De melding die B.U.S. naar je webhook stuurt wanneer een taxatie is afgerond.

Antwoord

EventName, Data (TestDataModel), Secret

Opmerkingen

  • Elke levering is één JSON-POST. Bij 2xx geldt de melding als geleverd; elk ander antwoord wordt als fout gelogd en niet opnieuw verstuurd.

Voorbeeld

{
  "EventName": "TestConcluded",
  "Data": { "TestId": 34626, "UnitId": 5147, "Mileage": 3234, "…": "…" },
  "Secret": "…"
}
Webhook TestDeleted De melding die B.U.S. naar je webhook stuurt wanneer een taxatie wordt verwijderd.

Antwoord

EventName, Data (TestDataModel), Secret

Opmerkingen

  • Elke levering is één JSON-POST. Bij 2xx geldt de melding als geleverd; elk ander antwoord wordt als fout gelogd en niet opnieuw verstuurd.

Voorbeeld

{
  "EventName": "TestDeleted",
  "Data": {
    "TestId": 34626,
    "TestRunId": 34927,
    "UnitId": 5147,
    "UnitName": null,
    "Mileage": 3234,
    "ExpectedArrivalDate": null,
    "ExpectedArrivalKM": null,
    "RequestedCompletionDate": null,
    "ParkingLocation": null,
    "KeyLocation": null,
    "IsMVASelected": false,
    "TestStatus": "Test: Klar",
    "PerformedUserId": null,
    "PerformedBy": "",
    "PerformedDate": "2025-10-24T09:36:46.217Z",
    "TestTypeIds": [
      2133
    ],
    "IsPublic": false,
    "TestTypeEmails": null,
    "TestTypeDescription": null,
    "ServiceData": [],
    "TestPersonId": 163,
    "TestComments": [],
    "TestOrderedBy": null,
    "TestCoverImage": null,
    "ExternalReferenceId": null,
    "TestAnnotations": [],
    "TestStatusId": 3,
    "IsDeleted": false,
    "CreatedDate": "2025-10-24T09:36:46.217Z",
    "HasValidBatteryReading": null,
    "IsValidTestDrive": null,
    "IsTestTypeVersionUpdated": null,
    "LastUpdatedeDate": "2025-10-24T09:36:46.217Z",
    "CompletedDate": "2025-10-24T09:39:37.877Z",
    "TestDefects": null
  },
  "Secret": null
}
Webhook WorkOrderConcluded De melding die B.U.S. naar je webhook stuurt wanneer een werkorder is afgerond.

Antwoord

EventName, Data (WorkOrderDataModel), Secret

Opmerkingen

  • Elke levering is één JSON-POST. Bij 2xx geldt de melding als geleverd; elk ander antwoord wordt als fout gelogd en niet opnieuw verstuurd.

Voorbeeld

{
  "EventName": "WorkOrderConcluded",
  "Data": {
    "WorkOrderId": 1832,
    "TestId": 47186,
    "TestRunId": 46664,
    "UnitId": 5147,
    "IsShared": false,
    "Mileage": 45000,
    "JobsStartDate": null,
    "JobsCompletionDate": null,
    "WorkOrderStatusId": 6,
    "IsDeleted": false,
    "RegNo": "AOL449",
    "IsSalesReportCreated": true,
    "CreatedSalesReportId": 3416,
    "IsCreatedFromTest": true,
    "HasAllAccess": false
  },
  "Secret": null
}

Datamodellen

De typen die in parameters en antwoorden worden gebruikt.

TestDataModel
UnitId: Int?
Mileage: Int?
ParkingLocation: String?
KeyLocation: String
TestStatus: String
TestTypeIds: [Int]
ServiceData: [ServiceMileageModel]
TestComments: [String]
ExternalReferenceId: String
TestAnnotations: [String]
testOrderedBy: String
VehicleDataModel
RegNo: String
Vin: String
VehicleType: String
TrimLevel: String
VehicleOptions: [VehicleOptionModel]
VehiclePackages: [VehiclePackageModel]
Color: String
Model: String
Make: String
GearBox: String
Engine: String
ManufacturedYear: Int?
ManufacturedMonth: Int?
Co2Emissions: Decimal?
ServiceMileageModel
Date: DateTime?
Mileage: Int?
Comment: String?
TestDefectModel
TestDefectId: Int
Checkpoint: KeyValueModel
CheckpointComment: KeyValueModel
CommonCost: Decimal
WorkCost: Decimal
PartsCost: Decimal
TotalCost: Decimal
TestTypeModel
TestTypeId: Int
TestTypeName: String
TestFileModel
FileUrl: String
FileName: String
FileReference: String
mediaId: String
testSectionId: Int
TestDefectFileModel
TestDefectFiles: [TestFileModel]
TestDefectId: Int
KeyValueModel
Key: Int
Value: String
VehicleOptionModel
OptionName: String
IncludedItems: String
IsSelected: Boolean?
VehiclePackageModel
PackageName: String
VehicleOptions: [VehicleOptionModel]
IsSelected: Boolean?
LeaseDataModel
PurchasePrice: Decimal?
ProductType: String
RepairMaintenance: String
WinterTires: String
TransportDate: DateTime?
QuotationTemplate: String
LeaseUserDataModel
CustomerId: String
CustomerName: String
FleetManagerName: String
FleetManagerEmail: String
InstallationRecipientEmail: String
KamName: String
KamEmail: String
DriverName: String
DriverPhone: String
DriverEmail: String
UnitModel
unitId: Int
unitName: String
TestListModel
tests: [TestGridInformationModel]
totalTests: Int
TestGridInformationModel
TestId: Int?
TestStatus: String
Regno: String
VehicleMake: String
VehicleModel: String
Vin: String
TestTypes: String
TestPersonId: Int?
IsActiveTest: Boolean
IsTestConcluded: Boolean
IsObdPerformed: Boolean
PerformedBy: String
PerformedDate: DateTime?
CreatedDate: DateTime
CompletedDate: DateTime?
TestAnnotations: String
GridSort
Field: String
Dir: SortDirection
SortDirection
enum SortDirection{
Asc
Desc
}
TestFilterModel
OrderedBy: [KeyValueModel]
TestDate: KeyValueModel
TestType: [KeyValueModel]
Status: [KeyValueModel]
CompletedDate: KeyValueModel
ReportModel
TestTypeId: Int
TestType: String
ReportURL: String
ShortenedReportURL: String
ShortenedPdfReportURL: String
DownloadUrl: String
SalesReportShareMetaDataModel
ShortenedSalesReportLinkURL: String
ShortenedVDNReportLinkURL: String
ShortenedSalesReportPdfURL: String
SalesReportPdfDownloadSasUrl: String
SalesReportFilterModel
CompletedDate: KeyValueModel
Status: [KeyValueModel]
PerformedBy: [KeyValueModel]
CreatedDate: KeyValueModel
WorkOrderFilterModel
CreatedDate: KeyValueModel
CompletedDate: KeyValueModel
SharedStatus: KeyValueModel
Status: [KeyValueModel]
WorkOrderUnit: [KeyValueModel]
Unit: [Int]
SalesReportListModel
SalesReports: [SalesReportGridInformationModel]
TotalSalesReports: Int
SalesReportGridInformationModel
SalesReportId: Int
SalesReportStatus: String
SalesReportStatusId: Int?
Regno: String
VehicleMake: String
VehicleModel: String
Vin: String
CreatedDate: DateTime
CompletedDate: DateTime?
WorkOrderJobModel
WorkOrderJobId
WorkOrderId
WorkOrderJobTypeId
JobName
WorkOrderJobStatus: WorkOrderJobStatusModel
IsShared
IsSentToSupplier
ExternalCost
RepairCost
Supplier
TestDefect
Comment
StandardJob
StartDate
CompletionDate
WorkOrderJobListModel
Count
WorkOrderJobs: [WorkOrderJobModel]
WorkOrderStatusUpdateResult
WorkOrderStatusId
WorkOrderStatusName
UpdatedJobs: [WorkOrderJobStatusModel]
WorkOrderJobStatusModel
WorkOrderJobId
WorkOrderJobStatusId
IsSentToSupplier
WorkOrderJobStatusName
GeneralInfoModel
MasterKeyCount
ChargingCableCount
PreviousUseId
HasPreviousDamage
IsLuggageCoverAvailable
IsTemperatureMeasured
TemperatureInside
TemperatureOutside
ACTestSkipReasonId
LocknutsAvailabilityStatusId
NextServiceDate
VehicleKeyTypes
ChargingCableTypes
SalesReportConcludeModel
SendSalesReportEmailSMSModel
SalesReportId
SalesReportTypes
Emails
Numbers
Description
ShortenedSalesReportLinkURL
ShortenedVDNReportLinkURL
ShortenedSalesReportPdfURL
SalesReportPdfDownloadSasUrl
StandardJobModel
StandardJobId: Int
StandardJobStatusId: Int
ParentStandardJobId: Int?
JobName: String
Cost: Decimal?
IsTaxInclude: Boolean
IsIncludedInCycle: Boolean
SupplierName: String
WorkOrderCreationTestRunListModel
WorkOrderCreationTestRunModel
TestId: Int?
TestRunId: Int
WorkOrderId: Int?
TestTypeNames: [String]
TestRunStatuses: TestRunStatusesModel
Mileage: Int
Date: DateTime
UnitName: String
TestRunStatusesModel
TestStatus: KeyValuePair<Int, String>?
WorkOrderStatus: KeyValuePair<Int, String>?
SalesReportStatus: KeyValuePair<Int, String>?
PreTestStatus: KeyValuePair<Int, String>?
WorkOrderListModel
WorkOrders: [WorkOrderGridInformationModel]
TotalWorkOrders: Int
WorkOrderGridInformationModel
TestId: Int
WorkOrderId: Int
WorkOrderStatus: String
Regno: String
VehicleMake: String
VehicleModel: String
Vin: String
CreatedDate: DateTime
CompletedDate: DateTime?
UnitId: Int
UnitName: String
SalesReportImageResultModel
FileName: String
IsSuccess: Boolean
Reason: String
AttachmentOrder: Int?
SalesReportImageInputModel
Url: String
FileName: String
IsCover: Boolean
WorkOrderDataModel
WorkOrderId: Int
TestId: Int
TestRunId: Int?
UnitId: Int
Mileage: Int?
JobsStartDate: DateTime?
JobsCompletionDate: DateTime?
WorkOrderStatusId: Int?
RegNo: String?
StandardJobsGridModel
StandardJobs: [StandardJobModel]
TotalStandardJobs: Int

De B.U.S. Shop

Een integratie gebouwd die nuttig is voor garages of dealers? Maak hem beschikbaar in de B.U.S. Shop, de marktplaats waar B.U.S.-klanten integraties vinden en activeren. Je integratie bereikt drie van de vier garages in Noorwegen, zonder eigen verkooporganisatie.

Technisch

AuthenticatieBearer-token. Sandbox-inloggegevens op aanvraag, productie na goedkeuring.
FormaatGraphQL.
SnelheidslimietenOnbeperkt in sandbox. Vandaag geen vaste limiet in productie. Bij misbruik kan het account worden geblokkeerd en kan de dienst antwoorden met 429 (Too Many Requests).
WebhooksRealtime gebeurtenissen. Nieuwe inspectie, bijgewerkte taxatie, statuswijziging. Kies op welke gebeurtenissen je je abonneert.
WijzigingenWij introduceren geen breekbare wijzigingen. Nieuwe behoeften worden gedekt door nieuwe methoden, en bestaande methoden en velden worden niet gewijzigd zolang ze in gebruik zijn. Nieuwe methoden en optionele velden kunnen gaandeweg bijkomen. Wijzigingen worden per e-mail aan het technische contact gemeld.
SchemaIntrospectie staat aan. Je kunt het volledige schema ophalen met de introspectiequery op het endpoint, of het lezen in de GraphQL-sandbox. Elke API heeft een eigen schema: de Test-API en Oscar Inspector zijn aparte endpoints. Het schema wordt tijdens de build gegenereerd en loopt dus altijd synchroon met de dienst.

Veelgestelde vragen

Welke talen/SDK’s worden ondersteund?

Gebaseerd op GraphQL. Werkt met elke taal die HTTP-verzoeken kan versturen. Kies zelf welke velden je terugkrijgt.

Wat kost het?

De sandbox is gratis. De prijs voor productietoegang hangt af van het gebruik.

Klaar om te bouwen?

Bekijk de API-catalogus, of praat met een ontwikkelaar bij B.U.S.