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
Per event type een voorbeeld en toelichting op het model. Ieder event heeft één vast veld: ResourceReference. Dit veld geeft een verwijzing naar de gedetailleerde weergave van de resource die dit event getriggert heeft. Voor OrderStatusChanged is dat dus de locatie van orderdetails.
ao.order.statuschanged
Status mutaties van een dossier in AO:
{ "resourceReference": "/tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa", "orderNumber": "O-2387923", "previousStatus": "New", "newStatus": "Accepted" }
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
resourceReference | String | Referentie naar het resource voor het opvragen van meer details | /tenants/1/orders/fc9036ec-eb4a-496c-8c77-e972e3e800aa |
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 | Zie RelationReference |
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 | Zie LocationReference |
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 | Zie RelationReference |
customer | RelationReference | Referentie naar relatiedetails van opdrachtgever | Zie RelationReference |
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 | Zie RelationReference |
customer | RelationReference | Referentie naar relatiedetails van opdrachtgever | Zie RelationReference |
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 |
RelationResource
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
Overige data
Address
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
Coordinates
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
LocationReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
MainRoad
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
OrderReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
RelationReference
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
StatusReport
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
VehicleProperties
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|
VehicleState
Veld | Type | Omschrijving | Voorbeeld |
---|---|---|---|