API Shell B2B Mobility per i dati delle transazioni autostradali - Guida rapida
Versione API: 1.0.0 | Autenticazione: OAuth 2.0 | Stato: Produzione
Panoramica
L’API Shell B2B Mobility per i dati delle transazioni relative ai pedaggi è un’API basata su REST che fornisce un accesso completo ai registri delle transazioni relative ai pedaggi e ai dati correlati per i clienti della mobilità Shell. Questa API consente agli sviluppatori di recuperare, filtrare e analizzare i dati delle transazioni relative ai pedaggi a livello di programmazione per la riconciliazione dei conti, la verifica della fatturazione, la gestione delle spese e i requisiti di conformità.
Caratteristiche principali
- Recupero dei dati delle transazioni relative ai pedaggi in base al numero di conto
- Filtrare le transazioni per intervallo di date (date di inizio e fine)
- Ricerca in base allo stato della fattura e al VRN (numero di immatricolazione del veicolo)
- Funzionalità di ordinamento avanzate su più campi
- Supporto dell’impaginazione per set di dati di grandi dimensioni
- Filtraggio flessibile dei campi per ottimizzare il payload della risposta
- Dettagli completi sui pedaggi, compresi i punti di entrata/uscita
- Supporto per più reti e operatori di pedaggio
Autenticazione
OAuth 2.0 (metodo di autenticazione standard)
L’API Shell per i dati delle transazioni di pedaggio utilizza il flusso delle credenziali client OAuth 2.0 per un’autenticazione sicura.
Flusso OAuth 2.0
Passaggio 1: Ottenere il token di accesso
Richiedere un token di accesso dall’endpoint dei token OAuth:
POST /oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=il-tuo-id-client&client_secret=il-tuo-segreto-del-client
Passaggio 2: utilizzare il token di accesso nelle richieste API
Authorization: Bearer Content-Type: application/json RequestId: eb621f45-a543-4d9a-a934-2f223b263c42
Gestione dei token
Migliori pratiche per la gestione dei token:
- I token di accesso hanno una durata limitata (in genere 15 minuti)
- Implementare la memorizzazione dei token nella cache per evitare richieste di token non necessarie
- Aggiornare i token prima della scadenza per garantire un servizio ininterrotto
- Non condividere mai il proprio client_secret né incorporarlo nel codice lato client
Ambienti
L’API è disponibile in due ambienti:
| Ambiente | URL di base | Scopo |
|---|---|---|
| Produzione | https://api.shell.com/toll-data/v1 | Ambiente di produzione live |
| Test (UAT) | https://api-test.shell.com/toll-data/v1 | Ambiente di test e sviluppo |
URL dei token OAuth:
| Ambiente | URL del token |
|---|---|
| Produzione | https://api.shell.com/v2/oauth/token |
| Test (UAT) | https://api-test.shell.com/v2/oauth/token |
Suggerimento: Verifica sempre l’integrazione nell’ambiente di test prima di passare alla produzione.
Guida rapida
1. Ottieni le tue credenziali OAuth
- Contatta Supporto tecnico Shell
- Richiedi le credenziali OAuth 2.0 (client_id e client_secret)
- Consulta condizioni di servizio
2. Ottenere il token di accesso
Per prima cosa, ottieni il tuo token di accesso OAuth:
Esempio cURL:
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=il-tuo-id-cliente&client_secret=il-tuo-segreto-cliente"
Risposta:
{
"access_token": "eyJhbGciOi*******5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 899
}3. Effettua la tua prima richiesta API
Esempio: Ricerca delle transazioni relative ai pedaggi
Esempio con cURL:
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
}'Risposta di esempio:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 150,
"TotalPages": 15,
"PageSize": 10,
"Data": [
{
"NetworkDescription": "Società Autostradali",
"TollChargerCode": "410|610",
"DelcoCode": "714",
"NomeDelco": "Shell Fleet Solutions Consorzio",
"CodiceRete": "TLI",
"Rete": "euroShell Consortio",
"PaeseDiAcquisto": "Italia",
"CodicePaeseDiAcquisto": "IT",
"CardNumber": "707737*******334272",
"CardId": 123456789,
"CardGroupName": "Shell Fleet Solutions Consorzio",
"TargaVeicolo": "KN 00000",
"CentroDiCosto": "100",
"DataInserimentoSistema": "20260123",
"OraInserimentoSistema": "13:14:25",
"DataTransazione": "20260120",
"OraTransazione": "10:30:00",
"Data di registrazione": "20260123",
"Ora di registrazione": "00:00:00",
"Numero del pagatore": "NL20016398",
"AccountNumber": "NL20027701",
"AccountName": "Nome conto di prova",
"StartDate": "20260120",
"StartTime": "06:47:41",
"DataFine": "20260120",
"OraFine": "07:30:15",
"EntrataCasello": "ROMA NORD",
"TollGateExit": "BRENNERO",
"DistanceDriven": "71,6",
"RouteDescription": "ROMA NORD - BRENNERO",
"TransactionType": "Pedaggio",
"CodiceProdotto": "14",
"DescrizioneProdotto": "Pedaggio",
"ImportoNettoTransazione": "127,1",
"ImpostaTransazione": "0,0",
"ImportoLordoTransazione": "127,1",
"CodiceValutaTransazione": "EUR",
"StatoTransazione": "Segnalazione",
"NumeroFattura": "8600397548",
"DataFattura": "20260125",
"StatoFattura": "Fatturata",
"MetodoDiPagamento": "Pagamento posticipato",
"NumeroDiSerieOBU": "00049000000836932426",
"Classe di emissione": "Euro 6",
"ID contratto": "fb75eb53-46eb-450b-862e-6045002c3fa8",
"ID transazione Shell": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
"Gestore pedaggio": "Toll4Europe",
"TollDomain": "Toll4Europe",
"TariffRelevantInformation": "Classe del veicolo: 2, Numero di assi: 2, Categoria stradale: Autostrada",
"AdditionalTransactionInfo": "Posizione: 1",
"TCInvoiceNumber": "12343343",
"TCInvoiceDate": "20260123"
}
]
}Riferimento agli endpoint API
Transazioni di pedaggio
| Endpoint | Metodo | Descrizione |
|---|---|---|
| /toll-data/v1/transactions/search | POST | Recupera i dati delle transazioni di pedaggio con filtri e impaginazione flessibili |
Casi d’uso comuni:
- Recupero delle transazioni relative ai pedaggi per intervallo di date
- Filtro in base allo stato della fattura (Fatturate, Non fatturate, Tutte)
- Cerca per numero di immatricolazione del veicolo (VRN)
- Filtra per gruppo di carte
- Ordina le transazioni in base a più criteri
- Seleziona campi specifici per ottimizzare la dimensione della risposta
Casi d'uso comuni
Questa sezione mette in relazione scenari aziendali comuni con i modelli di utilizzo dell’API per aiutarti a identificare rapidamente come utilizzare l’API in base alle tue esigenze specifiche.
Caso d’uso 1: Riconciliazione giornaliera delle transazioni di pedaggio
Scenario: È necessario riconciliare quotidianamente tutte le transazioni relative ai pedaggi della propria flotta a fini contabili.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: Questo endpoint fornisce dettagli completi sulle transazioni relative ai pedaggi con filtri flessibili per data, supporta sia le transazioni fatturate che quelle non fatturate e include l’impaginazione per set di dati di grandi dimensioni. Perfetto per i flussi di lavoro di riconciliazione giornalieri.
Parametri chiave:
FromDateeToDate- Impostare sulla data di ieri per la riconciliazione giornalieraSearch.InvoiceStatus- Utilizzare "Tutto" per includere sia le transazioni fatturate che quelle non fatturatePageSize- Impostare su 100 per un recupero efficiente dei datiFiltro- Utilizzare "Tutto" per ottenere i dettagli completi della transazione
Caso d'uso 2: Convalida e verifica delle fatture
Scenario: Hai ricevuto una fattura e devi verificare tutti i dettagli e gli addebiti relativi alle transazioni di pedaggio.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: L’API fornisce informazioni dettagliate sulle transazioni relative al pedaggio, inclusi numeri di fattura, date, importi e dettagli sulla rete di pedaggio. Ideale per la convalida delle fatture poiché corrisponde alla struttura della fattura.
Parametri chiave:
Search.InvoiceStatus- Impostare su "Invoiced" per recuperare solo le transazioni fatturateFromDateeToDate- Impostare le date del periodo di fatturazioneFiltro- Specificare campi come "InvoiceNumber, InvoiceDate, TransactionGrossAmount" per una convalida mirata
Caso d’uso 3: Analisi dell’utilizzo dei pedaggi da parte dei veicoli della flotta
Scenario: È necessario analizzare i modelli di utilizzo dei pedaggi per veicoli specifici della propria flotta al fine di ottimizzare i percorsi e ridurre i costi dei pedaggi.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: L’API consente di filtrare in base al numero di immatricolazione del veicolo (VRN) e fornisce informazioni dettagliate sul percorso, inclusi i punti di entrata/uscita, la distanza percorsa e gli importi dei pedaggi. Perfetta per l’analisi a livello di veicolo.
Parametri chiave:
Search.VehicleRegistrationNumber- Specificare il VRN da analizzareFromDateeToDate- Imposta il periodo di analisi (ad es., ultimi 30 giorni)SortOption- Impostare 1 (Data transazione in ordine crescente) per un’analisi cronologicaFiltro- Includi campi come "RouteDescription, DistanceDriven, TollGateEntry, TollGateExit, TransactionGrossAmount"
Caso d'uso 4: Monitoraggio delle spese per gruppo di carte
Scenario: Gestisci più gruppi di carte e devi monitorare le spese relative ai pedaggi per ciascun gruppo di carte ai fini dell’allocazione del budget e della rendicontazione per centro di costo.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: L’API supporta il filtraggio per gruppo di carte e include informazioni sui centri di costo, rendendola ideale per il monitoraggio delle spese e la rendicontazione a livello di gruppo di carte.
Parametri chiave:
Search.CardGroup- Specificare il nome del gruppo di carte oppure utilizzare "All" per tutti i gruppiFromDateeToDate- Impostare sul periodo di rendicontazioneFiltro- Includi "CardGroupName, CostCenter, TransactionGrossAmount, TransactionNetAmount, TransactionTax"Opzione di ordinamento- Impostare 3 (Importo della transazione in ordine crescente) per l’analisi delle spese
Caso d’uso 5: Reportage sui pedaggi su più conti
Scenario: Gestisci più conti e devi generare report consolidati sui pedaggi relativi a tutti i conti.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: L’API supporta l’interrogazione di più conti (consigliati da 2 a 5) in un’unica richiesta, riducendo le chiamate API e migliorando le prestazioni negli scenari con più conti.
Parametri chiave:
AccountNumber- Fornire i numeri di conto separati da virgola (max 2-5 per prestazioni ottimali)FromDateeToDate- Impostare il periodo di rendicontazionePageSize- Utilizzare dimensioni di pagina maggiori (ad es. 100-500) per prestazioni migliori
Caso d’uso 6: Monitoraggio delle transazioni non fatturate
Scenario: Si desidera monitorare le transazioni di pedaggio non fatturate per prevedere le fatture imminenti e gestire il flusso di cassa.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: L’API consente di filtrare in base allo stato della fattura, rendendo facile identificare le transazioni non fatturate e stimare gli addebiti imminenti.
Parametri chiave:
Search.InvoiceStatus- Impostare su "Non fatturato" per gli addebiti in sospesoFromDateeToDate- Impostare sul periodo di fatturazione correnteFiltro- Includere "TransactionDate, TransactionGrossAmount, AccountNumber, VehicleRegistration"
Caso d’uso 7: Analisi dell’utilizzo della rete a pedaggio
Scenario: È necessario analizzare quali reti a pedaggio e quali gestori la propria flotta utilizza più frequentemente per negoziare tariffe migliori o ottimizzare i percorsi.
API consigliata: /toll-data/v1/transactions/search
Perché questa API: L’API fornisce informazioni dettagliate sulle reti a pedaggio, tra cui la descrizione della rete, l’operatore del pedaggio, il codice dell’ente di riscossione e il codice della rete, perfette per l’analisi dell’utilizzo della rete.
Parametri chiave:
FromDateeToDate- Impostare il periodo di analisi (ad es., trimestrale)Filtro- Includere "NetworkDescription, TollOperator, TollChargerCode, Network, TransactionGrossAmount"PageSize- Utilizzare una dimensione della pagina maggiore per un'estrazione completa dei dati
Esempi di utilizzo
Esempio 1: Ricerca delle transazioni di pedaggio per conto e intervallo di date
Richiesta:
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
}Risposta:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 150,
"TotalPages": 15,
"PageSize": 10,
"Data": [
{
"NetworkDescription": "Società Autostradali",
"TollChargerCode": "410|610",
"CodiceDelco": "714",
"NomeDelco": "Shell Fleet Solutions Consorzio",
"CodiceRete": "TLI",
"Rete": "euroShell Consortio",
"PaeseDiAcquisto": "Italia",
"PurchasedInCountryCode": "IT",
"CardNumber": "707737*******334272",
"ID della carta": 123456789,
"Nome del gruppo di carte": "Shell Fleet Solutions Consorzio",
"Targa del veicolo": "KN 00000",
"Centro di costo": "100",
"Data di inserimento nel sistema": "20260123",
"Ora di inserimento nel sistema": "13:14:25",
"Data della transazione": "20260120",
"OraTransazione": "10:30:00",
"DataRegistrazione": "20260123",
"OraRegistrazione": "00:00:00",
"NumeroPagatore": "NL20016398",
"AccountNumber": "NL20027701",
"AccountName": "Nome conto di prova",
"StartDate": "20260120",
"StartTime": "06:47:41",
"DataFine": "20260120",
"OraFine": "07:30:15",
"EntrataCasello": "ROMA NORD",
"UscitaCasello": "BRENNERO",
"Distanza percorsa": "71,6",
"Descrizione percorso": "ROMA NORD - BRENNERO",
"Tipo di transazione": "Pedaggio",
"Codice prodotto": "14",
"Descrizione del prodotto": "Pedaggio",
"Importo netto della transazione": "127,1",
"Imposta sulla transazione": "0,0",
"Importo lordo della transazione": "127,1",
"CodiceValutaTransazione": "EUR",
"StatoTransazione": "Rendicontazione",
"NumeroFattura": "8600397548",
"DataFattura": "20260125",
"Stato della fattura": "Fatturato",
"Metodo di pagamento": "Pagamento posticipato",
"Numero di serie OBU": "00049000000836932426",
"Classe di emissioni": "Euro 6",
"IDContratto": "fb75eb53-46eb-450b-862e-6045002c3fa8",
"IDTransazioneShell": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
"Gestore del pedaggio": "Toll4Europe",
"TollDomain": "Toll4Europe",
"TariffRelevantInformation": "Classe del veicolo: 2, Numero di assi: 2, Categoria stradale: Autostrada",
"AdditionalTransactionInfo": "Posizione: 1",
"TCInvoiceNumber": "12343343",
"TCInvoiceDate": "20260123"
}
]
}Esempio 2: Filtrare le transazioni in base al numero di immatricolazione del veicolo (VRN)
Richiesta:
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"
}
},
"Page": 1,
"PageSize": 50
}Risposta:
{
"RequestId": "9d2dee33-7803-485a-a2b1-2c7538e597ee",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 45,
"TotalPages": 1,
"PageSize": 50,
"Data": [
{
"VehicleRegistration": "KN 00000",
"RouteDescription": "ROMA NORD - BRENNERO",
"TransactionGrossAmount": "127.1",
"TransactionDate": "20260120"
},
{
"VehicleRegistration": "KN 00000",
"RouteDescription": "MILANO EST - VERONA SUD",
"TransactionGrossAmount": "85,4",
"TransactionDate": "20260125"
}
]
}Esempio 3: Ricerca per gruppo di carte
Richiesta:
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
}Risposta:
{
"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",
"DataTransazione": "20260120"
},
{
"NomeGruppoCarte": "Shell Fleet Solutions Consorzio",
"TargaVeicolo": "LM 11111",
"TransactionGrossAmount": "95,8",
"TransactionDate": "20260122"
}
]
}Esempio 4: più conti con campi specifici
Richiesta:
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"
},
"Pagina": 1,
"PageSize": 100
}Risposta:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 245,
"TotalPages": 3,
"PageSize": 100,
"Data": [
{
"AccountNumber": "NL20027701",
"AccountName": "Nome conto di prova",
"TransactionDate": "20260120",
"TransactionGrossAmount": "127,1",
"VehicleRegistration": "KN 00000"
},
{
"AccountNumber": "NL20027702",
"AccountName": "Nome secondo conto",
"TransactionDate": "20260121",
"TransactionGrossAmount": "98,5",
"VehicleRegistration": "PQ 22222"
}
]
}Gestione degli errori
Codici di errore comuni
| Stato HTTP | Codice di errore | Descrizione | Soluzione |
|---|---|---|---|
| 200 | N/A | Stato: SUCCESSO | N/A |
| 400 | E0001 | Errore di convalida | Verificare i parametri della richiesta, assicurarsi che i campi obbligatori siano compilati e validi |
| 401 | E0003 | Non autorizzato | Verificare che il token OAuth sia valido e non sia scaduto |
| 404 | E0005 | Non trovato | Verificare l’URL dell’endpoint e che la risorsa esista |
| 500 | E0002 | Errore sconosciuto / Errore interno del server | Contattare l’assistenza fornendo l’ID richiesta |
| 503 | E0012 | Servizio non disponibile / Errore di connettività | Riprovare dopo un po’ di tempo; se il problema persiste, contattare l’assistenza |
Esempio di risposta di errore
Errore di convalida (E0001):
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "FAILED",
"Errors": [
{
"Code": "E0001",
"Title": "Errore di convalida",
"Detail": "Valori mancanti o non validi per: ColCoCode",
"AdditionalInfo": null
}
]
}Errore di autorizzazione (E0003):
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "FAILED",
"Errors": [
{
"Code": "E0003",
"Title": "Non autorizzato",
"Detail": "Le credenziali fornite non sono valide oppure l'utente non ha accesso all'operazione",
"AdditionalInfo": null
}
]
}Migliori pratiche
1. Utilizzare l'autenticazione OAuth 2.0
IMPORTANTE: Utilizzare sempre l'autenticazione OAuth 2.0. Implementare una corretta gestione dei token:
- Memorizzare i token di accesso nella cache e riutilizzarli fino alla scadenza
- Aggiornare i token prima della loro scadenza (si consiglia 60 secondi prima)
- Conservare le credenziali del client in modo sicuro (utilizzare variabili d’ambiente o un gestore di segreti)
- Non registrare né esporre mai i token di accesso nel codice
2. Includere sempre il RequestId
Includere sempre un RequestId univoco (in formato UUID) nell’intestazione per garantire la tracciabilità end-to-end. Ciò è fondamentale per la risoluzione dei problemi e l’assistenza.
3. Implementare la gestione degli errori
Implementare una gestione degli errori robusta:
- Controllare il campo Status in ogni risposta
- Registrare il RequestId per la risoluzione dei problemi
- Implementare la logica di riprova per gli errori transitori (503)
- Gestire gli errori di convalida (E0001) verificando i parametri di input
Assistenza e risorse
Assistenza tecnica
- Assistenza: Assistenza tecnica Shell
- E-mail: api@shell.com
Documentazione
Assistenza
Quando contatti l’assistenza, fornisci:
- Il proprio client_id (non condividere mai il proprio client_secret o i token di accesso)
- RequestId dalla risposta dell’API
- Timestamp della richiesta
- Ambiente (Produzione/Test)
- Codici di errore e messaggi ricevuti
Ultimo aggiornamento: 4 agosto 2026
Versione del documento: 1.0
Versione API: 1.0.0
