Dit document is nog work in progress.
Webhook Events
Overzicht van de verschillende webhook events waarop ingehaakt kan worden.
OrderStatusChanged
Gaat af bij iedere mutatie van de dossierstatus. De huidige statussen die in AO voorkomen:
New (Nieuw)
Accepted (Geaccepteerd)
Assigned (Toegewezen)
Arrived (Ter plaatse)
Loaded (Opgeladen)
InterimLocation (Op tussen bestemming)
Plannable (Planbaar voor doortransport, tweede behandeling aangemaakt)
TransportAfterFirstService (Doortransport toegewezen)
Destination (Eindbestemming, auto gelost op eindbestemming en opdracht gereed)
Invoiced (Gefactureerd)
Empty (Loze rit)
Canceled (Vervallen)
Credited (Gecrediteerd)
Definities
Hieronder wordt kort toegelicht hoe responses van de webhooks eruit komen te zien. De basis bestaat uit een CloudEvent met daarin één Event en optioneel een aantal Resources.
CloudEvents
Webhooks maken gebruik van CloudEvents v1.0 spec als basis. Dit ziet er in JSON als volgt uit:
{ "id": "01759dc3-5d38-405b-9b1c-5a36b0373cc3", "type": "ao.order.statuschanged", "specversion": "1.0", "time": "2020-11-06T14:36:00.000+02:00", "source": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa", "subject": "O-2387923 | T942855", "datacontenttype":"application/json", "data": { "event": { // Zie Event data ... }, "resources": { "<resourceReference-1>": { // Zie Resource data }, "<resourceReference-2>": { // Zie Resource data }, ... } } }
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
id | Guid | Uniek nummer voor dit event | 01759dc3-5d38-405b-9b1c-5a36b0373cc3 |
type | String | Type indicatie van het event | ao.order.statuschanged |
specversion | String | Versienummer van het response | 1.0 |
time | DateTimeOffset | Tijdstip waarop dit event plaats heeft gevonden | 2020-11-06T14:36:00.000+02:00 |
source | String | Locatie van de entiteit binnen AO die dit event getriggert heeft. | /tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa |
subject | String | Titel van het event | O-2387923 | T942855 |
datacontenttype | String | Content type van het data veld | application/json |
data | Object | Event (object) en Dictionary (met resourceReference als key). Het aantal teruggegeven resources is afhankelijk van de webhook instellingen. | Zie Event data en Resource data |
Event data
Ieder event heeft twee vaste velden, de overige velden zijn afhankelijk van het type event.
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
resourceReference | String | Referentie naar het resource voor het opvragen van meer details | /tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa |
eventType | String | Event type | ao.order.statuschanged |
ao.order.statuschanged
Status mutaties van een dossier in AO:
{ "resourceReference": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa", "eventType": "ao.order.statuschanged", "orderNumber": "O-2387923", "previousStatus": "New", "newStatus": "Accepted" }
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
orderNumber | String | Ordernummer zoals bekend in AO Let op: Dit veld is leeg bij nog niet geaccepteerde opdrachten | O-2387923 |
previousStatus | String | Vorige opdrachtstatus (zie OrderStatusChanged voor events) Let op: Dit veld is leeg bij opdrachten met de status ‘New’ | New |
newStatus | String | Nieuwe opdrachtstatus | Accepted |
Resource data
Iedere resource bevat twee standaard velden:
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
resourceReference | String | Referentie naar het resource voor het opvragen van meer details | /tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa |
resourceType | String | Typering van de resource. B.v. Order, Job, Location, etc. | Order |
JobBillingResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
type | String | Soort doorbelasting:
| Automatic |
customerOrderNumber | String | Inkoopopdrachtnummer | S1234235 |
debtor | RelationReference | Referentie naar debiteurinformatie | |
invoice | InvoiceReference | Referentie naar factuurinformatie | Zie InvoiceReference |
JobResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
type | String | Behandelingstype:
| BreakDownAssistance |
solution | String | Tekstuele toelichting van uitgevoerde werkzaamheden | Band gepropt en garage advies gegeven |
executeAfterDateTime | DateTimeOffset | Optioneel opgegeven tijdstip vanaf wanneer de opdracht uitgevoerd mag worden | 2020-11-06T14:36:00.000+02:00 |
executeBeforeDateTime | DateTimeOffset | Leadtijd, uiterste tijd om ter plaatse te zijn | 2020-11-06T14:36:00.000+02:00 |
jobAssignmentStatus | String | Huidige status van de behandeling
Let op: Niet alle behandelingen hebben twee activiteiten. In dat geval zal de activiteit bij ‘FirstActivityDone’ naar ‘Completed’ gaan. | Assigned |
result | String | Behandelingsresultaat. Dit is afhankelijk van het type behandeling. Pechhulp specifiek:
Berging specifiek:
Overige uitkomsten:
| BreakdownAssistanceOk |
locations | LocationReference[] | Lijst met locatiereferenties | |
statusReports | StatusReports[] | Lijst met statusupdates | Zie StatusReport |
IMOrderDetailsResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
imNumber | String | IM-nummer | LCM20123456-IM |
llNumber | String | LL-nummer | LCM20123456-1 |
receivedAt | DateTimeOffset | Datum en tijd van waarop de melding is ontvangen | 2020-11-06T14:36:00.000+02:00 |
orders | OrderReference[] | Referenties naar opdrachtdossiers die zijn aangemaakt naar aanleiding van deze melding Let op: Bij nieuwe IM-melding is het mogelijk dat er nog geen opdrachten zijn aangemaakt. | Zie OrderReference |
company | RelationReference | Referentie naar relatiedetails van de uitvoerende berger | |
customer | RelationReference | Referentie naar relatiedetails van opdrachtgever | |
description | String | Tekstuele toelichting | WIS aanrijdend;Pa:1 Vluchtstrook rechts lekke band verkeerszijde |
district | String | Rayon van deze melding | NH131 |
status | String | Voortgang van de melding
Let op: Een IM-melding is klaar als de berger ter plaatse is en gaat dan verder in het gerelateerde opdrachtdossier of als de rit loosgemeld is. | Assigned |
LocationResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
type | String | Locatie type
| Address |
name | String | Naam van het adres | RGB+ Automatisering B.V. |
address | Address | Adresdetails Let op: Dit veld is alleen gevuld als type ‘Address’ is | Zie Address |
mainRoad | MainRoad | Hoofdwegdetails Let op: Dit veld is alleen gevuld als type ‘MainRoad’ is | Zie MainRoad |
coordinates | Coordinates | Coordinaten van deze locatie | Zie Coordinates |
remark | String | Adres toelichting | Melden bij receptie |
OrderResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
orderNumber | String | Opdrachtnummer binnen AO | O-2387923 |
type | String | Opdrachttype
| ErrorParked |
company | RelationReference | Referentie naar relatiedetails van de uitvoerende berger | |
customer | RelationReference | Referentie naar relatiedetails van opdrachtgever | |
description | String | Toelichting op het dossier | SPOED, 5 min vtv bellen Lekke band, RA, Oorzaak onbekend. In de ondergrondse pkg Verwisselen ging niet. Reserveband is ook lek. |
externalReference | String | Kenmerk van de opdrachtgever | T123456 |
orderDateTime | DateTimeOffset | Moment van aanmaken van de opdracht | 2020-11-06T14:36:00.000+02:00 |
district | String | Rayon van de incidentlocatie | NH131 |
cause | String | Toelichting van de oorzaak | Lege accu |
status | String | Orderstatus
| Accepted |
isOnHold | Boolean | Wanneer het dossier op OnHold staat, is de berger tegen iets blokkerend aangelopen. | false |
RelationResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
name | String | Relatienaam | RGB+ Automatisering B.V. |
debtorNumber | String | Debiteurnummer, zoals deze relatie bekend staat in de boekhouding van de berger | 1000032 |
VehicleResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
licensePlate | String | Kenteken | AB123C |
chassisNumber | String | Chassisnummer | ZFFXA20A4J0076551 |
state | VehicleState | Staat van het voertuig | Zie VehicleState |
properties | VehicleProperties | Eigenschappen van het voertuig |
Overige data
Aanvullende data objecten waarmee resources verrijkt kunnen zijn.
Address
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
streetName | String | Straatnaam | Spitsstraat |
houseNumber | String | Huisnummer en eventuele toevoegingen | 17a |
city | String | Plaats | Raalte |
postalCode | String | Postcode | 8102 HW |
countryIso2 | String | ISO2 Landcode | NL |
Coordinates
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
latitude | Double | Breedtegraad (Geodecimaal) | 52.380205 |
longitude | Double | Lengtegraad (Geodecimaal) | 6.2958919 |
InvoiceReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
invoiceNumber | String | Factuurnummer | 202000001 |
resourceReference | String | Referentie naar de details van deze factuur | /tenants/1/invoices/fc9036ec-eb4a-496c-8c77-e972e3e800aa |
LocationReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
type | String | Rol van deze locatie:
| LoadLocation |
resourceReference | String | Referentie naar de details van deze locatie | /tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa/locations/0175acdc-6c37-4de1-a96c-f21a1a15d517 |
MainRoad
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
mileMarker | Double | Hectometerpaaltje | 123.4 |
mileMarkerAddition | String | Optioneel Toevoeging | d |
direction | String | Linker of rechter rijstrook
| Li |
roadName | String | Wegnaam | A2 |
countryIso2 | String | ISO2 Landcode | NL |
OrderReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
orderNumber | String | Opdrachtnummer binnen AO | O-2387923 |
resourceReference | String | Referentie naar de details van deze opdracht | /tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa |
RelationReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
name | String | Relatienaam | RGB+ Automatisering B.V. |
resourceReference | String | Referentie naar de details van deze opdracht | /tenants/1/relations/0167cc22-9511-4562-b51a-224142084fc1 |
StatusReport
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
jobStatus | String | Status historie van de behandeling
| Assigned |
timestamp | DateTimeOffset | Tijdstip van statusovergang | 2020-11-06T14:36:00.000+02:00 |
VehicleProperties
Let op: Alle kenmerken van een voertuig zijn optioneel. Deze komen indien mogelijk uit het RDW en kunnen door de berger aangevuld worden.
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
type | String | Soort voertuig
| Light |
make | String | Merk van het voertuig | Spyker |
model | String | Model van het merk | C8 Preliator |
color | String | Kleur | Oranje |
weightKg | Integer | Gewicht in kilogrammen | 1390 |
loadCapacityKg | Integer | Laadvermogen in kilogrammen | 180 |
lengthCm | Integer | Lengte van het voertuig in centimeters | 463 |
heightCm | Integer | Hoogte van het voertuig in centimeters | 127 |
widthCm | Integer | Breedte van het voertuig in centimeters | 273 |
fuelTypes | String | Brandstoftypes, comma gescheiden lijst indien dit er meerdere zijn. Zoals bij hybriede voertuigen | benzine, elektriciteit |
isManualGear | Boolean | Kenmerk of het voertuig handgeschakeld is (true), automaat heeft (false) of onbekend / niet van toepassing (null) | true |
is4x4 | Boolean | Kenmerk of het voertuig 4-wielaandrijving heeft | false |
isForeign | Boolean | Kenmerk of het een buitenlandsvoertuig betreft | false |
isElectric | Boolean | Kenmerk of het voertuig elektrisch aangedreven is Let op: Kan dus ook hybride zijn | false |
apkExpireDate | DateTimeOffset | APK vervaldatum | 2020-12-31T22:00:00.000Z |
hasInsurance | Boolean | Kenmerk of het voertuig verzekerd is | true |
VehicleState
Let op: De informatie m.b.t. de staat van een voertuig is optioneel. Deze kunnen door de berger ingevuld worden.
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
isLocatedInWater | Boolean | Kenmerk of de auto te water is geraakt | true |
metersToQuay | Integer | Afstand vanaf de kade in meters. Alleen van toepassing als de auto in het water ligt | 3 |
isRollable | Boolean | Kenmerk of het voertuig rolbaar is | true |
isSteeringWheelLocked | Boolean | Kenmerk of het stuurslot actief is (Bijvoorbeeld omdat de sleutel niet aanwezig is) | false |
Voorbeeld
Voorbeeld JSON response van een ao.order.statuschanged
event met de OrderResource en LocationResource als aanvullende data.
{ "id": "01759dc3-5d38-405b-9b1c-5a36b0373cc3", "type": "ao.order.statuschanged", "specversion": "1.0", "time": "2020-11-06T14:36:00.000+02:00", "source": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa", "subject": "O-2387923 | T942855", "datacontenttype":"application/json", "data": { // OrderStatusChangedDefinition "event": { "resourceReference": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa", "eventType": "ao.order.statuschanged", "orderNumber": "O-2387923", "previousStatus": "New", "newStatus": "Accepted" }, "resources": { "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa": { // OrderResource "resourceReference": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa", "resourceType": "Order", "orderNumber": "O-2387923", "type": "BreakdownAssistance", "company": { // RelationReference "resourceReference": "/tenants/1/relations/016c2dac-3870-4bd0-b0b5-60836e3503d2", "name": "RGB+ Automatisering" }, "customer": { // RelationReference "resourceReference": "/tenants/1/relations/016e7d90-5b88-4df8-8b06-60501c5406d7", "name": "VHD" }, "description": "SPOED, 5 min vtv bellen Lekke band, RA, Oorzaak onbekend. In de ondergrondse pkg Verwisselen ging niet. Reserveband is ook lek.", "externalReference": "T123456", "orderDateTime": "2020-11-06T14:36:00.000+02:00", "district": "NH131", "cause": "Lege accu", "status": "Accepted", "IsOnHold": false }, "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa/locations/0175ac5c-4aae-4524-a227-4e41c53f5ac9": { // LocationResource "resourceReference": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa/locations/0175ac5c-4aae-4524-a227-4e41c53f5ac9", "resourceType": "Location", "type": "Address", "address": { "streetName": "Spitsstraat", "houseNumber": "17a", "city": "Raalte", "postalCode": "8102 HW", "countryIso2": "NL" }, "coordinates": { "latitude": 52.380205, "longitude": 6.2958919 }, "remark": "Melden bij receptie" } } } }