Shell B2B Mobility API voor toltransactiegegevens – Snelstartgids
API-versie: 1.0.0 | Authenticatie: OAuth 2.0 | Status: Productie
Overzicht
De Shell B2B Mobility API voor toltransactiegegevens is een op REST gebaseerde API die uitgebreide toegang biedt tot toltransactiegegevens en gerelateerde gegevens voor mobiliteitsklanten van Shell. Met deze API kunnen ontwikkelaars, filteren en analyseren van toltransactiegegevens via programmeerwegen voor het afstemmen van rekeningen, het controleren van facturen, onkostenbeheer en naleving van regelgeving.
Belangrijkste functies
- Toltransactiegegevens ophalen op basis van accountnummer
- Transacties filteren op datumbereik (van- en tot-datum)
- Zoeken op factuurstatus en VRN (voertuigregistratienummer)
- Geavanceerde sorteermogelijkheden op meerdere velden
- Ondersteuning voor paginering bij grote datasets
- Flexibele veldfiltering om de responsgrootte te optimaliseren
- Uitgebreide tolgegevens, inclusief op- en afritpunten
- Ondersteuning voor meerdere tolnetwerken en exploitanten
Authenticatie
OAuth 2.0 (standaard authenticatiemethode)
De Shell Toll Transaction Data API maakt gebruik van de OAuth 2.0 Client Credentials-stroom voor veilige authenticatie.
OAuth 2.0-stroom
Stap 1: Verkrijg een toegangstoken
Vraag een toegangstoken aan bij het OAuth-token-eindpunt:
POST /oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=je-client-id&client_secret=je-client-secret
Stap 2: Gebruik het toegangstoken in API-verzoeken
Authorization: Bearer Content-Type: application/json RequestId: eb621f45-a543-4d9a-a934-2f223b263c42
Tokenbeheer
Best practices voor tokenbeheer:
- Toegangstokens hebben een beperkte geldigheidsduur (meestal 15 minuten)
- Implementeer token-caching om onnodige tokenverzoeken te voorkomen
- Vernieuw tokens vóór het verstrijken van de geldigheidsduur om een ononderbroken dienstverlening te garanderen
- Deel nooit je client_secret en verwerk deze niet in client-side code
Omgevingen
De API is beschikbaar in twee omgevingen:
| Omgeving | Basis-URL | Doel |
|---|---|---|
| Productie | https://api.shell.com/toll-data/v1 | Live productieomgeving |
| Test (UAT) | https://api-test.shell.com/toll-data/v1 | Test- en ontwikkelomgeving |
OAuth-token-URL's:
| Omgeving | Token-URL |
|---|---|
| Productie | https://api.shell.com/v2/oauth/token |
| Test (UAT) | https://api-test.shell.com/v2/oauth/token |
Tip: Test uw integratie altijd in de Testomgeving voordat u naar productie overgaat.
Snel aan de slag
1. Verkrijg uw OAuth-inloggegevens
- Neem contact op met de technische ondersteuning van Shell
- Vraag OAuth 2.0-inloggegevens aan (client_id en client_secret)
- Bekijk servicevoorwaarden
2. Verkrijg een toegangstoken
Verkrijg eerst je OAuth-toegangstoken:
cURL-voorbeeld:
curl -X POST https://api-test.shell.com/v2/oauth/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=je-client-id&client_secret=je-client-secret"
Antwoord:
{
"access_token": "eyJhbGciOi*******5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 899
}3. Doe je eerste API-verzoek
Voorbeeld: Zoek toltransacties
cURL-voorbeeld:
curl -X POST https://api-test.shell.com/toll-data/v1/transactions/search \
-H "Authorization: Bearer eyJhbGci******NiIsInR5cCI6IkpXVCJ9..." \
-H "Content-Type: application/json" \
-H "RequestId: eb621f45-a543-4d9a-a934-2f223b263c42" \
-d '{
"Filters": {
"ColCoCode": 86,
"PayerNumber": "NL20016398",
"AccountNumber": "NL20027701",
"Filter": "All",
"FromDate": "2026-01-01",
"ToDate": "2026-01-31"
},
"Page": 1,
"PageSize": 10
}'Voorbeeld van een antwoord:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 150,
"TotalPages": 15,
"PageSize": 10,
"Data": [
{
"NetworkDescription": "Societa Autostradali",
"TollChargerCode": "410|610",
"DelcoCode": "714",
"DelcoName": "Shell Fleet Solutions Consorzio",
"NetworkCode": "TLI",
"Network": "euroShell Consortio",
"Aankoopland": "Italië",
"Aankooplandcode": "IT",
"Kaartnummer": "707737*******334272",
"CardId": 123456789,
"CardGroupName": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "KN 00000",
"CostCenter": "100",
"Systeeminvoerdatum": "20260123",
"Systeeminvoertijd": "13:14:25",
"Transactiedatum": "20260120",
"Transactietijd": "10:30:00",
"Boekingsdatum": "20260123",
"Boekings tijd": "00:00:00",
"Betalingsnummer": "NL20016398",
"Rekeningnummer": "NL20027701",
"Rekeningnaam": "Testrekeningnaam",
"Startdatum": "20260120",
"StartTime": "06:47:41",
"EndDate": "20260120",
"Eindtijd": "07:30:15",
"Toegang tolstation": "ROMA NORD",
"Uitgang tolstation": "BRENNERO",
"Afgelegde afstand": "71,6",
"Routebeschrijving": "ROMA NORD - BRENNERO",
"Transactietype": "Wegbelasting",
"Productcode": "14",
"Productbeschrijving": "Wegbelasting",
"NettobedragTransactie": "127,1",
"BelastingTransactie": "0,0",
"BrutoBedragTransactie": "127,1",
"TransactionCurrencyCode": "EUR",
"TransactionStatus": "Rapportage",
"Factuurnummer": "8600397548",
"Factuurdatum": "20260125",
"Factuurstatus": "Gefactureerd",
"Betaalmethode": "Achteraf betalen",
"OBUSerialNumber": "00049000000836932426",
"EmissionClass": "Euro 6",
"ContractID": "fb75eb53-46eb-450b-862e-6045002c3fa8",
"ShellTransactionID": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
"TollOperator": "Toll4Europe",
"TollDomain": "Toll4Europe",
"TariffRelevantInformation": "Voertuigklasse: 2, Aantal assen: 2, Wegcategorie: Snelweg",
"AdditionalTransactionInfo": "Locatie:1",
"TCInvoiceNumber": "12343343",
"TCInvoiceDate": "20260123"
}
]
}Referentie API-eindpunten
Toltransacties
| Eindpunt | Methode | Beschrijving |
|---|---|---|
| /toll-data/v1/transactions/search | POST | Toltransactiegegevens ophalen met flexibele filteropties en paginering |
Veelvoorkomende gebruiksscenario’s:
- Toltransacties ophalen op basis van een datumbereik
- Filteren op factuurstatus (Gefactureerd, Niet-gefactureerd, Alles)
- Zoeken op kenteken (VRN)
- Filteren op kaartgroep
- Transacties sorteren op meerdere criteria
- Selecteer specifieke velden om de responsgrootte te optimaliseren
Veelvoorkomende gebruiksscenario’s
In dit gedeelte worden veelvoorkomende bedrijfsscenario’s gekoppeld aan API-gebruikspatronen, zodat u snel kunt zien hoe u de API voor uw specifieke behoeften kunt inzetten.
Gebruiksscenario 1: Dagelijkse afstemming van toltransacties
Scenario: U moet dagelijks alle toltransacties van uw wagenpark afstemmen voor boekhoudkundige doeleinden.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: Dit eindpunt biedt uitgebreide details over toltransacties met flexibele datumfiltering, ondersteunt zowel gefactureerde als niet-gefactureerde transacties en bevat paginering voor grote datasets. Perfect voor dagelijkse afstemmingsworkflows.
Belangrijkste parameters:
FromDateenToDate– Stel in op de datum van gisteren voor dagelijkse afstemmingSearch.InvoiceStatus- Gebruik „All“ om zowel gefactureerde als nog niet-gefactureerde transacties mee te nemenPageSize- Stel in op 100 voor efficiënte gegevensopvragingFilter- Gebruik "Alles" om volledige transactiegegevens op te halen
Gebruiksscenario 2: Factuurvalidatie en -verificatie
Scenario: U hebt een factuur ontvangen en moet alle toltransactiegegevens en kosten verifiëren.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: De API biedt gedetailleerde informatie over toltransacties, waaronder factuurnummers, datums, bedragen en details over het tolnetwerk. Ideaal voor factuurvalidatie, aangezien deze overeenkomt met de factuurstructuur.
Belangrijkste parameters:
Search.InvoiceStatus- Stel in op "Invoiced" om alleen gefactureerde transacties op te halenFromDateenToDate- Stel in op de datums van de factuurperiodeFilter- Specificeer velden zoals "InvoiceNumber, InvoiceDate, TransactionGrossAmount" voor gerichte validatie
Gebruiksscenario 3: Analyse van het tolgebruik van voertuigen in het wagenpark
Scenario: U moet de tolgebruikspatronen voor specifieke voertuigen in uw wagenpark analyseren om routes te optimaliseren en tolkosten te verlagen.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: Met deze API kunt u filteren op voertuigregistratienummer (VRN) en biedt gedetailleerde route-informatie, waaronder op- en afritpunten, afgelegde afstand en tolheffingen. Perfect voor analyse op voertuigniveau.
Belangrijkste parameters:
Search.VehicleRegistrationNumber- Geef het te analyseren VRN opFromDateenToDate- Stel de analyseperiode in (bijv. de afgelopen 30 dagen)Sorteeroptie- Gebruik 1 (transactiedatum oplopend) voor chronologische analyseFilter- Neem velden op zoals "RouteDescription, DistanceDriven, TollGateEntry, TollGateExit, TransactionGrossAmount"
Gebruiksscenario 4: Kosten bijhouden per kaartgroep
Scenario: U beheert meerdere kaartgroepen en moet de tolkosten per kaartgroep bijhouden voor budgettoewijzing en rapportage per kostenplaats.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: De API ondersteunt het filteren op kaartgroep en bevat informatie over kostenplaatsen, waardoor deze ideaal is voor het bijhouden van uitgaven en rapportage op kaartgroepniveau.
Belangrijkste parameters:
Search.CardGroup- Geef de naam van de kaartgroep op of gebruik "All" voor alle groepenFromDateenToDate- Stel in op de rapportageperiodeFilter- Neem "CardGroupName, CostCenter, TransactionGrossAmount, TransactionNetAmount, TransactionTax"Sorteeroptie- Gebruik 3 (transactiebedrag oplopend) voor onkostenanalyse
Gebruiksscenario 5: Tolrapportage voor meerdere rekeningen
Scenario: U beheert meerdere rekeningen en moet geconsolideerde tolopgaven genereren voor alle rekeningen.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: De API ondersteunt het opvragen van meerdere rekeningen (2-5 aanbevolen) in één verzoek, waardoor het aantal API-aanroepen wordt verminderd en de prestaties bij scenario’s met meerdere rekeningen worden verbeterd.
Belangrijkste parameters:
AccountNumber- Geef rekeningnummers op, gescheiden door komma’s (max. 2–5 voor optimale prestaties)FromDateenToDate- Stel in op de rapportageperiodePageSize- Gebruik grotere paginagroottes (bijv. 100-500) voor betere prestaties
Gebruiksscenario 6: Monitoring van nog niet gefactureerde transacties
Scenario: U wilt nog niet gefactureerde toltransacties monitoren om toekomstige facturen te voorspellen en de cashflow te beheren.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: Met deze API kun je filteren op factuurstatus, waardoor je gemakkelijk nog niet gefactureerde transacties kunt identificeren en toekomstige kosten kunt inschatten.
Belangrijkste parameters:
Search.InvoiceStatus- Stel in op "Uninvoiced" voor nog te factureren kostenFromDateenToDate- Stel in op de huidige factureringsperiodeFilter- Neem "TransactionDate, TransactionGrossAmount, AccountNumber, VehicleRegistration"
Gebruiksscenario 7: Analyse van het gebruik van tolnetwerken
Scenario: U moet analyseren welke tolnetwerken en exploitanten uw wagenpark het vaakst gebruikt om betere tarieven te bedingen of routes te optimaliseren.
Aanbevolen API: /toll-data/v1/transactions/search
Waarom deze API: De API biedt gedetailleerde informatie over tolnetwerken, waaronder een netwerkbeschrijving, de tolexploitant, de tolheffingscode en de netwerkcode, ideaal voor het analyseren van het netwerkgebruik.
Belangrijkste parameters:
FromDateenToDate- Stel in op de analyseperiode (bijv. per kwartaal)Filter- Neem "NetworkDescription, TollOperator, TollChargerCode, Network, TransactionGrossAmount"PageSize- Gebruik een grotere paginagrootte voor uitgebreide gegevensextractie
Gebruiksvoorbeelden
Voorbeeld 1: Toltransacties zoeken op rekening en datumbereik
Verzoek:
POST /toll-data/v1/transactions/search
{
"Filters": {
"ColCoCode": 86,
"PayerNumber": "NL20016398",
"AccountNumber": "NL20027701",
"Filter": "All",
"FromDate": "2026-01-01",
"ToDate": "2026-01-31"
},
"Page": 1,
"PageSize": 10
}Antwoord:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Pagina": 1,
"Totaal aantal records": 150,
"Totaal aantal pagina's": 15,
"PageSize": 10,
"Data": [
{
"NetworkDescription": "Societa Autostradali",
"TollChargerCode": "410|610",
"DelcoCode": "714",
"DelcoName": "Shell Fleet Solutions Consorzio",
"NetworkCode": "TLI",
"Network": "euroShell Consortio",
"Aankoopland": "Italië",
"Aankooplandcode": "IT",
"Kaartnummer": "707737*******334272",
"CardId": 123456789,
"CardGroupName": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "KN 00000",
"Kostenplaats": "100",
"Datum invoer in systeem": "20260123",
"Tijdstip invoer in systeem": "13:14:25",
"Transactiedatum": "20260120",
"Transactietijd": "10:30:00",
"Boekingsdatum": "20260123",
"Boekingstijd": "00:00:00",
"Betalingsnummer": "NL20016398",
"Rekeningnummer": "NL20027701",
"AccountName": "Test Account Name",
"StartDate": "20260120",
"StartTime": "06:47:41",
"EndDate": "20260120",
"EndTime": "07:30:15",
"TollGateEntry": "ROMA NORD",
"TollGateExit": "BRENNERO",
"Afgelegde afstand": "71,6",
"Routebeschrijving": "ROMA NORD - BRENNERO",
"Transactietype": "Wegbelasting",
"Productcode": "14",
"Productbeschrijving": "Wegbelasting",
"Nettobedrag transactie": "127,1",
"Belasting transactie": "0,0",
"TransactionGrossAmount": "127,1",
"TransactionCurrencyCode": "EUR",
"TransactionStatus": "Rapportage",
"InvoiceNumber": "8600397548",
"InvoiceDate": "20260125",
"Factuurstatus": "Gefactureerd",
"Betaalmethode": "Achteraf betalen",
"OBU-serienummer": "00049000000836932426",
"Emissieklasse": "Euro 6",
"ContractID": "fb75eb53-46eb-450b-862e-6045002c3fa8",
"ShellTransactionID": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
"TollOperator": "Toll4Europe",
"TollDomain": "Toll4Europe",
"TariffRelevantInformation": "Voertuigklasse: 2, Aantal assen: 2, Wegcategorie: Snelweg",
"AdditionalTransactionInfo": "Locatie:1",
"TCInvoiceNumber": "12343343",
"TCInvoiceDate": "20260123"
}
]
}Voorbeeld 2: Transacties filteren op kenteken (VRN)
Verzoek:
POST /toll-data/v1/transactions/search
{
"Filters": {
"ColCoCode": 86,
"PayerNumber": "NL20016398",
"AccountNumber": "NL20027701",
"Filter": "VehicleRegistration, RouteDescription, TransactionGrossAmount, TransactionDate",
"FromDate": "2026-01-01",
"ToDate": "2026-03-31",
"Search": {
"VehicleRegistrationNumber": "KN 00000",
"InvoiceStatus": "All"
}
},
"Pagina": 1,
"Paginagrootte": 50
}Antwoord:
{
"RequestId": "9d2dee33-7803-485a-a2b1-2c7538e597ee",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 45,
"TotalPages": 1,
"PageSize": 50,
"Data": [
{
"VehicleRegistration": "KN 00000",
"Routebeschrijving": "ROMA NORD - BRENNERO",
"Bruto transactiebedrag": "127,1",
"Transactiedatum": "20260120"
},
{
"VehicleRegistration": "KN 00000",
"RouteDescription": "MILANO EST - VERONA SUD",
"TransactionGrossAmount": "85,4",
"TransactionDate": "20260125"
}
]
}Voorbeeld 3: Zoeken op kaartgroep
Verzoek:
POST /toll-data/v1/transactions/search
{
"Filters": {
"ColCoCode": 86,
"PayerNumber": "NL20016398",
"AccountNumber": "NL20027701",
"Filter": "CardGroupName, VehicleRegistration, TransactionGrossAmount, TransactionDate",
"FromDate": "2026-01-01",
"ToDate": "2026-01-31",
"Search": {
"CardGroup": "Shell Fleet Solutions Consorzio",
"InvoiceStatus": "All"
}
},
"Page": 1,
"PageSize": 30
}Antwoord:
{
"RequestId": "5f1bded6-416d-4478-ab7f-33905d7b5d4b",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 87,
"TotalPages": 3,
"PageSize": 30,
"Data": [
{
"CardGroupName": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "KN 00000",
"TransactionGrossAmount": "127,1",
"TransactionDate": "20260120"
},
{
"CardGroupName": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "LM 11111",
"TransactionGrossAmount": "95,8",
"TransactionDate": "20260122"
}
]
}Voorbeeld 4: Meerdere accounts met specifieke velden
Verzoek:
POST /toll-data/v1/transactions/search
{
"Filters": {
"ColCoCode": 86,
"PayerNumber": "NL20016398",
"AccountNumber": "NL20027701, NL20027702",
"Filter": "AccountNumber, AccountName, TransactionDate, TransactionGrossAmount, VehicleRegistration",
"FromDate": "2026-01-01",
"ToDate": "2026-01-31"
},
"Page": 1,
"PageSize": 100
}Antwoord:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 245,
"TotalPages": 3,
"PageSize": 100,
"Data": [
{
"AccountNumber": "NL20027701",
"AccountName": "Test Account Name",
"TransactionDate": "20260120",
"TransactionGrossAmount": "127,1",
"Voertuigregistratie": "KN 00000"
},
{
"Rekeningnummer": "NL20027702",
"Rekeningnaam": "Tweede rekeningnaam",
"TransactionDate": "20260121",
"TransactionGrossAmount": "98,5",
"VehicleRegistration": "PQ 22222"
}
]
}Foutafhandeling
Veelvoorkomende foutcodes
| HTTP-status | Foutcode | Beschrijving | Oplossing |
|---|---|---|---|
| 200 | N.v.t. | Status: GESLAAGD | N.v.t. |
| 400 | E0001 | Validatiefout | Controleer de verzoekparameters, zorg ervoor dat verplichte velden zijn ingevuld en geldig zijn |
| 401 | E0003 | Geen toestemming | Controleer of het OAuth-token geldig is en niet is verlopen |
| 404 | E0005 | Niet gevonden | Controleer of de URL van het eindpunt en de bron bestaan |
| 500 | E0002 | Onbekende fout / Interne serverfout | Neem contact op met de ondersteuning met het RequestId |
| 503 | E0012 | Service niet beschikbaar / Verbindingsfout | Probeer het na enige tijd opnieuw; neem contact op met de ondersteuning als het probleem aanhoudt |
Voorbeeld van een foutmelding
Validatiefout (E0001):
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "FAILED",
"Errors": [
{
"Code": "E0001",
"Title": "Validatiefout",
"Detail": "Ontbrekende / ongeldige waarde(n) voor: ColCoCode",
"AdditionalInfo": null
}
]
}Fout wegens onbevoegdheid (E0003):
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "MISLUKT",
"Fouten": [
{
"Code": "E0003",
"Title": "Niet geautoriseerd",
"Detail": "De opgegeven inloggegevens zijn ongeldig of de gebruiker heeft geen toegang tot de bewerking",
"AdditionalInfo": null
}
]
}Aanbevolen werkwijzen
1. Gebruik OAuth 2.0-authenticatie
BELANGRIJK: Gebruik altijd OAuth 2.0-authenticatie. Implementeer goed tokenbeheer:
- Sla toegangstokens op in de cache en hergebruik ze totdat ze verlopen zijn
- Vernieuw tokens voordat ze verlopen (aanbevolen: 60 seconden van tevoren)
- Sla clientgegevens veilig op (gebruik omgevingsvariabelen of een geheimenbeheerder)
- Log nooit toegangstokens in en maak ze nooit openbaar in client-side code
2. Vermeld altijd een RequestId
Vermeld altijd een uniek RequestId (in UUID-formaat) in de header voor traceerbaarheid van begin tot eind. Dit is cruciaal voor probleemoplossing en ondersteuning.
3. Implementeer foutafhandeling
Implementeer robuuste foutafhandeling:
- Controleer het Status-veld in elk antwoord
- Log de RequestId voor het oplossen van problemen
- Implementeer herhalingslogica voor tijdelijke fouten (503)
- Verwerk validatiefouten (E0001) door invoerparameters te controleren
Ondersteuning & bronnen
Technische ondersteuning
- Ondersteuning: Technische ondersteuning voor Shell
- E-mail: api@shell.com
Documentatie
Hulp krijgen
Geef het volgende op wanneer u contact opneemt met de ondersteuning:
- Uw client_id (deel nooit uw client_secret of toegangstokens)
- RequestId uit het API-antwoord
- Tijdstempel van het verzoek
- Omgeving (Productie/Test)
- Ontvangen foutcodes en foutmeldingen
Laatst bijgewerkt: 4 augustus 2026
Documentversie: 1.0
API-versie: 1.0.0
