API za podatke o transakcijah cestnin Shell B2B Mobility – Priročnik za hiter začetek
Različica API-ja: 1.0.0 | Preverjanje pristnosti: OAuth 2.0 | Stanje: Produkcijsko
Pregled
API Shell B2B Mobility za podatke o transakcijah cestnin je API na podlagi REST, ki omogoča celovit dostop do zapisov o transakcijah cestnin in povezanih podatkov za stranke mobilnih storitev Shell. Ta API razvijalcem omogoča programsko pridobivanje, filtriranje in analizirajo podatke o transakcijah cestnin na programski način za usklajevanje računov, preverjanje zaračunavanja, upravljanje stroškov in izpolnjevanje zahtev glede skladnosti.
Ključne značilnosti
- Pridobivanje podatkov o transakcijah cestnin po številki računa
- Filtriranje transakcij po časovnem obdobju (začetni in končni datum)
- Iskanje po statusu računa in VRN (registrska številka vozila)
- Napredne možnosti razvrščanja po več poljih
- Podpora za stranjenje pri velikih zbirkah podatkov
- Prilagodljivo filtriranje po poljih za optimizacijo obsega odgovora
- Izčrpni podatki o cestninah, vključno z vstopnimi/izstopnimi točkami
- Podpora več cestninskih omrežij in operaterjev
Preverjanje pristnosti
OAuth 2.0 (standardna metoda avtentifikacije)
API za podatke o cestninskih transakcijah Shell uporablja postopek OAuth 2.0 Client Credentials za varno avtentifikacijo.
Postopek OAuth 2.0
Korak 1: Pridobite dostopni žeton
Zahtevajte dostopni žeton pri končni točki za žetone OAuth:
POST /oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=vaša-identifikacijska-številka-odjemalca&client_secret=vaša-skrivnost-odjemalca
Korak 2: Uporaba dostopnega žetona v zahtevkih API
Authorization: Bearer Content-Type: application/json RequestId: eb621f45-a543-4d9a-a934-2f223b263c42
Upravljanje žetonov
Najboljše prakse pri upravljanju žetonov:
- Dostopni žetoni imajo omejeno veljavnost (običajno 15 minut)
- Uvedite shranjevanje žetonov v predpomnilnik, da se izognete nepotrebnim zahtevkom za žetone
- Osvežite žetone pred iztekom veljavnosti, da zagotovite neprekinjeno delovanje storitve
- Nikoli ne delite svojega client_secret ali ga vstavljajte v kodo na strani odjemalca
Okolja
API je na voljo v dveh okoljih:
| Okolje | Osnovni URL | Namen |
|---|---|---|
| Proizvodno | https://api.shell.com/toll-data/v1 | Proizvodno okolje v živo |
| Testno (UAT) | https://api-test.shell.com/toll-data/v1 | Testno in razvojno okolje |
URL-ji za OAuth-token:
| Okolje | URL žetona |
|---|---|
| Proizvodno | https://api.shell.com/v2/oauth/token |
| Testno (UAT) | https://api-test.shell.com/v2/oauth/token |
Nasvet: Svojo integracijo vedno preizkusite v testnem okolju, preden preidete v produkcijo.
Hiter začetek
1. Pridobite svoje OAuth-pooblastila
- Obrnite se na tehnično podporo Shell
- Zahtevajte poverilnice OAuth 2.0 (client_id in client_secret)
- Preglejte pogoje uporabe
2. Pridobite dostopni žeton
Najprej pridobite svoj OAuth dostopni žeton:
Primer 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=vaša-ID-odjemalca&client_secret=vaša-skrivnost-odjemalca"
Odgovor:
{
"access_token": "eyJhbGciOi*******5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 899
}3. Pošljite svojo prvo zahtevo API
Primer: Iskanje transakcij cestnin
Primer 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
}'Primer odgovora:
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 150,
"SkupnoŠteviloStrani": 15,
"VelikostStrani": 10,
"Podatki": [
{
"OpisMreže": "Societa Autostradali",
"KodaZbiralcaCestnine": "410|610",
"DelcoCode": "714",
"DelcoName": "Shell Fleet Solutions Consorzio",
"NetworkCode": "TLI",
"Network": "euroShell Consortio",
"PurchasedInCountry": "Italy",
"PurchasedInCountryCode": "IT",
"CardNumber": "707737*******334272",
"CardId": 123456789,
"CardGroupName": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "KN 00000",
"CostCenter": "100",
"Datum vnosa v sistem": "20260123",
"Čas vnosa v sistem": "13:14:25",
"Datum transakcije": "20260120",
"Čas transakcije": "10:30:00",
"Datum knjiženja": "20260123",
"Čas knjiženja": "00:00:00",
"PayerNumber": "NL20016398",
"AccountNumber": "NL20027701",
"AccountName": "Ime testnega računa",
"StartDate": "20260120",
"StartTime": "06:47:41",
"EndDate": "20260120",
"EndTime": "07:30:15",
"TollGateEntry": "ROMA NORD",
"Izhod iz cestninske postaje": "BRENNERO",
"Prevožena razdalja": "71,6",
"Opis poti": "ROMA NORD – BRENNERO",
"Vrsta transakcije": "Cestnina",
"ProductCode": "14",
"ProductDescription": "Cestnina",
"TransactionNetAmount": "127,1",
"TransactionTax": "0,0",
"TransactionGrossAmount": "127,1",
"TransactionCurrencyCode": "EUR",
"TransactionStatus": "Poročanje",
"InvoiceNumber": "8600397548",
"InvoiceDate": "20260125",
"InvoiceStatus": "Izstavljeno",
"PaymentMethod": "Plačilo po prejemu",
"OBUSerialNumber": "00049000000836932426",
"Razred emisij": "Euro 6",
"ID pogodbe": "fb75eb53-46eb-450b-862e-6045002c3fa8",
"ID transakcije Shell": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
"Upravljavec cestnine": "Toll4Europe",
"Domena cestnine": "Toll4Europe",
"TariffRelevantInformation": "Razred vozila: 2, Število osi: 2, Kategorija ceste: Avtocesta",
"AdditionalTransactionInfo": "Lokacija: 1",
"TCInvoiceNumber": "12343343",
"TCInvoiceDate": "20260123"
}
]
}Referenca končnih točk API-ja
Transakcije cestnin
| Končna točka | Metoda | Opis |
|---|---|---|
| /toll-data/v1/transactions/search | POST | Pridobivanje podatkov o transakcijah cestnine s prilagodljivim filtriranjem in stranjenjem |
Pogosti primeri uporabe:
- Pridobivanje transakcij cestnin po časovnem obdobju
- Filtriranje po statusu računa (zaračunano, nezaračunano, vse)
- Iskanje po registrski številki vozila (VRN)
- Filtriraj po skupini kartic
- Razvrstite transakcije po več merilih
- Izberite določena polja za optimizacijo velikosti odziva
Pogosti primeri uporabe
V tem poglavju so pogosti poslovni scenariji povezani z vzorci uporabe API-ja, da boste lažje ugotovili, kako API uporabiti za svoje specifične potrebe.
Primer uporabe 1: Dnevno usklajevanje transakcij cestnin
Scenarij: Zaradi računovodskih namenov morate dnevno uskladiti vse transakcije cestnin iz vaše flote.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: Ta končna točka zagotavlja izčrpne podrobnosti o transakcijah cestnin z fleksibilnim filtriranjem po datumu, podpira tako zaračunane kot nezaračunane transakcije ter vključuje stranjenje za velike nize podatkov. Idealna za dnevne delovne tokove usklajevanja.
Ključni parametri:
FromDateinToDate- Za dnevno usklajevanje nastavite na včerajšnji datumSearch.InvoiceStatus– Uporabite »Vse«, da vključite tako fakturirane kot nefakturirane transakcijePageSize– Nastavite na 100 za učinkovito pridobivanje podatkovFilter– Uporabite »Vse«, da pridobite popolne podrobnosti o transakcijah
Primer uporabe 2: Preverjanje in potrjevanje računa
Scenarij: Prejeli ste račun in morate preveriti vse podrobnosti o transakcijah cestnin in zaračunanih zneskih.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: API zagotavlja podrobne informacije o transakcijah cestnin, vključno s številkami računov, datumi, zneski in podrobnostmi o cestninskem omrežju. Idealno za preverjanje računov, saj ustreza strukturi računa.
Ključni parametri:
Search.InvoiceStatus– Nastavite na »Invoiced«, da pridobite le zaračunane transakcijeFromDateinToDate– nastavite na datume obračunskega obdobjaFilter– Določite polja, kot so »InvoiceNumber, InvoiceDate, TransactionGrossAmount«, za ciljno preverjanje
Primer uporabe 3: Analiza uporabe cestnin za vozila v voznem parku
Scenarij: Analizirati morate vzorce uporabe cestnin za določena vozila v vašem voznem parku, da bi optimizirali poti in zmanjšali stroške cestnin.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: API omogoča filtriranje po registrski številki vozila (VRN) in zagotavlja podrobne informacije o poti, vključno z vstopnimi/izhodne točke, prevoženo razdaljo in cestninske stroške. Idealno za analizo na ravni vozila.
Ključni parametri:
Search.VehicleRegistrationNumber- Določite registracijsko številko vozila (VRN) za analizoFromDateinToDate- Nastavite obdobje analize (npr. zadnjih 30 dni)SortOption- Za kronološko analizo uporabite 1 (datum transakcije v naraščajočem vrstnem redu)Filter- Vključite polja, kot so »RouteDescription, DistanceDriven, TollGateEntry, TollGateExit, TransactionGrossAmount«
Primer uporabe 4: Sledenje stroškov po skupinah kartic
Scenarij: Upravljate več skupin kartic in morate spremljati stroške cestnin po skupinah kartic za dodeljevanje proračuna in poročanje po stroškovnih mestih.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: API podpira filtriranje po skupinah kartic in vključuje informacije o stroškovnih mestih, zaradi česar je idealen za spremljanje stroškov in poročanje na ravni skupin kartic.
Ključni parametri:
Search.CardGroup- Navedite ime skupine kartic ali uporabite »Vse« za vse skupineFromDateinDo datuma– Nastavite na obdobje poročanjaFilter– Vključite »CardGroupName, CostCenter, TransactionGrossAmount, TransactionNetAmount, TransactionTax«Možnost razvrščanja- Uporabi 3 (znesek transakcije po naraščajočem vrstnem redu) za analizo stroškov
Primer uporabe 5: Poročanje o cestninah za več računov
Scenarij: Upravljate več računov in morate ustvariti konsolidirana poročila o cestninah za vse račune.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: API omogoča poizvedovanje po več računih (priporočeno 2–5) v enem samem zahtevku, kar zmanjša število API-klicev in izboljša zmogljivost v scenarijih z več računi.
Ključni parametri:
AccountNumber– Navedite številke računov, ločene z vejicami (največ 2–5 za optimalno zmogljivost)FromDateinToDate- Nastavite na obdobje poročanjaPageSize– Uporabite večje velikosti strani (npr.npr. 100–500) za boljšo zmogljivost
Primer uporabe 6: Spremljanje neizstavljenih transakcij
Scenarij: Želite spremljati neizstavljene transakcije cestnin, da bi napovedali prihajajoče račune in upravljali denarni tok.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: API omogoča filtriranje po statusu računa, kar olajša prepoznavanje neizstavljenih transakcij in oceno prihajajočih stroškov.
Ključni parametri:
Search.InvoiceStatus– Nastavite na »Uninvoiced« za čakajoče zneskeFromDateinToDate– nastavite na trenutno obračunsko obdobjeFilter– Vključite »TransactionDate, TransactionGrossAmount, AccountNumber, VehicleRegistration«
Primer uporabe 7: Analiza uporabe cestninskega omrežja
Scenarij: Analizirati morate, katera cestninska omrežja in operaterje vaša flota najpogosteje uporablja, da bi se pogodili za ugodnejše tarife ali optimizirali poti.
Priporočeni API: /toll-data/v1/transactions/search
Zakaj ta API: API zagotavlja podrobne informacije o cestninskih omrežjih, vključno z opisom omrežja, upravljavcem cestnine, kodo zaračunavanja cestnine in kodo omrežja, kar je idealno za analizo uporabe omrežij.
Ključni parametri:
FromDateinToDate– nastavite na obdobje analize (npr. četrtletno)Filter– vključite »NetworkDescription, TollOperator, TollChargerCode, Network, TransactionGrossAmount«PageSize– Uporabi večjo velikost strani za celovito pridobivanje podatkov
Primeri uporabe
Primer 1: Iskanje transakcij cestnin po računu in časovnem obdobju
Zahteva:
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
}Odgovor:
{
"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",
"PurchasedInCountry": "Italy",
"PurchasedInCountryCode": "IT",
"CardNumber": "707737*******334272",
"CardId": 123456789,
"CardGroupName": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "KN 00000",
"CostCenter": "100",
"SystemEntryDate": "20260123",
"Čas vnosa v sistem": "13:14:25",
"Datum transakcije": "20260120",
"Čas transakcije": "10:30:00",
"Datum knjiženja": "20260123",
"Čas knjiženja": "00:00:00",
"Številka plačnika": "NL20016398",
"Številka računa": "NL20027701",
"Ime računa": "Ime testnega računa",
"Datum začetka": "20260120",
"Čas začetka": "06:47:41",
"DatumKonca": "20260120",
"ČasKonca": "07:30:15",
"VstopnaCestninskaPostaja": "ROMA NORD",
"Izhod iz cestninske postaje": "BRENNERO",
"Prevožena razdalja": "71,6",
"Opis poti": "ROMA NORD – BRENNERO",
"Vrsta transakcije": "Cestnina",
"Koda izdelka": "14",
"Opis izdelka": "Cestnina",
"Neto znesek transakcije": "127,1",
"Davek na transakcijo": "0,0",
"Bruto znesek transakcije": "127,1",
"TransactionCurrencyCode": "EUR",
"TransactionStatus": "Poročanje",
"InvoiceNumber": "8600397548",
"InvoiceDate": "20260125",
"InvoiceStatus": "Izstavljeno",
"PaymentMethod": "Plačilo po prejemu",
"OBUSerialNumber": "00049000000836932426",
"EmissionClass": "Euro 6",
"ID pogodbe": "fb75eb53-46eb-450b-862e-6045002c3fa8",
"ID transakcije Shell": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
"Upravljavec cestnin": "Toll4Europe",
"Domena cestnin": "Toll4Europe",
"Podatki o tarifah": "Razred vozila: 2, Število osi: 2, Kategorija ceste: Avtocesta",
"AdditionalTransactionInfo": "Lokacija: 1",
"TCInvoiceNumber": "12343343",
"TCInvoiceDate": "20260123"
}
]
}Primer 2: Filtriranje transakcij po registrski številki vozila (VRN)
Zahteva:
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
}Odgovor:
{
"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",
"Datum transakcije": "20260120"
},
{
"Registrska številka vozila": "KN 00000",
"RouteDescription": "MILANO EST - VERONA SUD",
"TransactionGrossAmount": "85,4",
"TransactionDate": "20260125"
}
]
}Primer 3: Iskanje po skupini kartic
Zahteva:
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
}Odgovor:
{
"RequestId": "5f1bded6-416d-4478-ab7f-33905d7b5d4b",
"Status": "SUCCESS",
"Page": 1,
"TotalRecords": 87,
"SkupnoŠteviloStrani": 3,
"VelikostStrani": 30,
"Podatki": [
{
"ImeSkupineKartic": "Shell Fleet Solutions Consorzio",
"RegistrskaŠtevilkaVozila": "KN 00000",
"Bruto znesek transakcije": "127,1",
"Datum transakcije": "20260120"
},
{
"Ime skupine kartic": "Shell Fleet Solutions Consorzio",
"VehicleRegistration": "LM 11111",
"TransactionGrossAmount": "95,8",
"TransactionDate": "20260122"
}
]
}Primer 4: Več računov s posebnimi polji
Zahteva:
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
}Odgovor:
{
"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",
"Registrska številka vozila": "KN 00000"
},
{
"Številka računa": "NL20027702",
"Ime računa": "Ime drugega računa",
"Datum transakcije": "20260121",
"Bruto znesek transakcije": "98,5",
"Registrska številka vozila": "PQ 22222"
}
]
}Obravnavanje napak
Pogoste kode napak
| HTTP-stanje | Koda napake | Opis | Rešitev |
|---|---|---|---|
| 200 | N/A | Stanje: USPEŠNO | N/A |
| 400 | E0001 | Napaka pri preverjanju veljavnosti | Preverite parametre zahtevka, poskrbite, da so obvezna polja izpolnjena in veljavna |
| 401 | E0003 | Neavtorizirano | Preverite, ali je OAuth-žeton veljaven in ni potekel |
| 404 | E0005 | Ni bilo najdeno | Preverite, ali URL končne točke in vir obstajata |
| 500 | E0002 | Neznana napaka / Notranja napaka strežnika | Obrnite se na podporo z ID zahtevka |
| 503 | E0012 | Storitev ni na voljo / Napaka pri povezavi | Poskusite ponovno čez nekaj časa; če težava vztraja, se obrnite na podporo |
Primer odziva z napako
Napaka pri preverjanju (E0001):
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "FAILED",
"Errors": [
{
"Code": "E0001",
"Title": "Napaka pri preverjanju veljavnosti",
"Detail": "Manjkajoče / neveljavne vrednosti za: ColCoCode",
"AdditionalInfo": null
}
]
}Napaka zaradi nepooblaščenega dostopa (E0003):
{
"RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
"Status": "NEUSPEŠNO",
"Errors": [
{
"Code": "E0003",
"Title": "Neavtorizirano",
"Detail": "Vneseni podatki za prijavo so neveljavni ali uporabnik nima dostopa do operacije",
"AdditionalInfo": null
}
]
}Najboljše prakse
1. Uporabite avtentifikacijo OAuth 2.0
POMEMBNO: Vedno uporabljajte avtentifikacijo OAuth 2.0. Zagotovite ustrezno upravljanje žetonov:
- Shranite dostopne žetone v predpomnilnik in jih ponovno uporabite do izteka veljavnosti
- Osvežite žetone, preden potečejo (priporočljivo 60 sekund pred iztekom)
- Varno shranite poverilnice odjemalca (uporabite spremenljivke okolja ali upravitelja skrivnosti)
- Nikoli ne beležite ali razkrivajte dostopnih žetonov v kodi na strani odjemalca
2. Vedno vključite RequestId
Vedno vključite edinstven RequestId (v formatu UUID) v glavo za sledljivost od začetka do konca. To je ključnega pomena za odpravljanje težav in podporo.
3. Izvedite obdelavo napak
Izvedite zanesljivo obdelavo napak:
- V vsakem odgovoru preverite polje Status
- Zabeležite RequestId za odpravljanje napak
- Vzpostavite logiko ponovnega poskusa za prehodne napake (503)
- Obravnavajte napake pri preverjanju veljavnosti (E0001) s preverjanjem vhodnih parametrov
Podpora in viri
Tehnična podpora
- Podpora: Tehnična podpora za Shell
- E-pošta: api@shell.com
Dokumentacija
Pomoč
Ko se obrnete na podporo, navedite:
- Vaš client_id (nikoli ne posredujte svojega client_secret ali dostopnih žetonov)
- RequestId iz odgovora API-ja
- Časovni žig zahtevka
- Okolje (Proizvodno/Testno)
- Prejete napake in sporočila
Zadnja posodobitev: 4. avgust 2026
Različica dokumenta: 1.0
Različica API: 1.0.0
